For unions and member organisations

Talk to the whole membership, one delegate at a time

uprise gives a branch one record per member, a text bank your delegates claim and send themselves, and a canvassing app that keeps working in a car park with no reception. Built in Australia, on Australian address and electoral geography.

Trusted by progressive Australian campaigns, nonprofits, and causes

Australian Progress
Common Threads
Why uprise

Why unions choose uprise

Delegates do the sending

A text bank hands a delegate a batch of members to message, ten at a time by default, and the delegate presses send on each one. Not a broadcast with a first name merged into it.

One record per member, not one per import

Contacts deduplicate on exact phone and on a normalised address, held by partial unique indexes rather than a nightly clean-up job, so the same mobile cannot land twice however many branch exports it appears in. What an index cannot do is recognise a member who arrives once as a mobile and once as a street address – that stays two rows, and the deep dive below says what it costs and who fixes it.

Saved searches that re-check themselves

A search is a definition, not a stored list: before a run uprise re-materialises it whenever the last evaluation is more than fifteen minutes old. The count in the builder and the recipients of the send come out of the same filter tree, the same compliance floor and the same deterministic order.

Opt-out is a hard stop

A member whose SMS consent is opted out is skipped at send, counted and logged. Suppression sits underneath the filter builder as a floor the author of a search cannot remove.

What a delegate can reach, listed rather than assumed

Volunteer permissions are an explicit list of grants, never a whole-domain wildcard, so a newly built part of the product cannot quietly appear in a delegate's access. Their texting session reads and writes only their own conversations, and the branch-wide inbox, blasts, audiences and telephony are not on the list at all. One grant is deliberately wide, and it is better said here than found later: reading contact records, which every role holds, so a delegate can look up any member in the workspace.

Australian geography, in the product

Cut turf from real federal divisions, state upper and lower house electorates, LGAs, wards and statistical areas, with an address count already computed for every one of them from the national geocoded address file. Nothing to license or upload first.

The platform

What you get on day one

Every one of these is built and shipping today. Nothing on this page is a roadmap item.

Peer-to-peer text banks

Delegates claim a batch of unsent messages or a batch of unread replies, send one at a time, reply inside the threads they own, log a disposition against the member and mark the conversation resolved. The script and the branch's canned replies sit in the send window.

SMS blasts, proofed before they go

Draft, proof against a rendered preview, schedule, send, then retry the failed set with one action that names its own count before you press it. Every edit to the body appends an immutable numbered version, each recipient row keeps the exact text rendered for that person, and send progress streams live.

Turf, walk lists and an offline canvassing app

Cut turf on a map or generate it from an electoral division, then push route-ordered door lists to the installable field app. Knocks, photos and added household members queue on the phone and sync when reception returns.

One survey for the door and the phone

A branching survey where each answer option can set a disposition, a five-point support level and the canned reply the delegate sends next. The same instrument runs at a member's front door and inside an SMS thread, so a worksite visit and a text bank asking the same question return one set of numbers to the branch rather than two.

Shifts, meetings and RSVPs

Roster a worksite visit or a members' meeting with a time, a place, a seat count and the turf it covers, let volunteers sign up or release themselves, approve requests on a campaign that requires approval, and check people in at the door against capacity with a waitlist.

Delegates text their own members, and only their own members

Member-to-member contact works because the message comes from someone the member knows and the reply goes back to that same person. uprise builds the text bank around that rather than around a send button. A bank is an SMS canvass campaign with peer-to-peer blasts attached; a delegate signs in, sees the banks they can work and their own outstanding workload, and takes a batch.

  • A claim takes the next unsent messages, or the next unowned unread replies, with a SELECT ... FOR UPDATE SKIP LOCKED behind it – ten by default, twenty-five at most – so two delegates working the same bank at the same moment are never handed the same member.
  • Every read and write in a texting session is scoped to the signed-in user inside the service rather than hidden in the interface, so a delegate cannot reach the branch-wide inbox. Organisers and owners deliberately bypass that scoping, for oversight.
  • The delegate presses send on each message themselves. The script, the canned reply library and the disposition list are all in the send window, so a hard reply gets a considered answer instead of the next template.
  • A conversation a delegate owns stays theirs until they resolve it, and the disposition they log lands on the member rather than on the thread. Handing a hard one back is an organiser action, not the delegate's: releasing a conversation takes the shared-inbox permission, which the volunteer role does not carry.
  • An inbound STOP writes an opt-out to the consent ledger the moment it lands, whoever owned the conversation at the time.
  1. 1A claim takes the next unsent messages, or the next unowned unread replies, with a SELECT ... FOR UPDATE SKIP LOCKED behind it – ten by default, twenty-five at most – so two delegates working the same bank at the same moment are never handed the same member.
  2. 2Every read and write in a texting session is scoped to the signed-in user inside the service rather than hidden in the interface, so a delegate cannot reach the branch-wide inbox. Organisers and owners deliberately bypass that scoping, for oversight.
  3. 3The delegate presses send on each message themselves. The script, the canned reply library and the disposition list are all in the send window, so a hard reply gets a considered answer instead of the next template.

Member records that survive a branch export, and the duplicate that does not

Union data is messy in specific ways: the same person sits in a branch export and on a campaign sign-up sheet, mobiles are typed with spaces and leading zeros, and a third of the addresses are three years stale. uprise deduplicates on the two identifiers it can actually normalise, and is explicit about the ones it cannot.

  • One contact row per person per workspace, deduplicated on exact E.164 phone and on a normalised address string, held by hand-maintained partial unique indexes rather than a nightly clean-up job.
  • Where a phone row and an address row turn out to be one member, nothing joins them for you. The merge routine exists – audience membership, blast recipients, conversations and the whole inbound and outbound message history re-point onto the surviving row, and the two metadata bags are unioned, with the phone row winning any key both carry – and it is wired to no screen and no automatic path today, so it is an operation you ask us to run rather than a duplicate queue an organiser works through.
  • CSV imports are cursor-batched and resumable, and report errors per row instead of rejecting the file, which is what you want when forty mobiles in a branch export came out of a spreadsheet as numbers.
  • Twenty-eight savable filter conditions, including tags, the domain of a member's work email address, support level, whether they answered a specific survey question, and whether they replied to a blast. Age band and gender sit in the builder marked coming soon and are refused when you save.
  • Three limits worth knowing before you plan a migration: email is stored but is not a deduplication key; there are no user-defined custom fields, so anything beyond the fixed columns goes into an untyped metadata bag the filter builder cannot read; and a merge, when we run one, carries the message history but not the losing row's door knocks, dispositions or survey answers, so get the duplicates out of a branch export before the doors go in rather than after.
  1. 1One contact row per person per workspace, deduplicated on exact E.164 phone and on a normalised address string, held by hand-maintained partial unique indexes rather than a nightly clean-up job.
  2. 2Where a phone row and an address row turn out to be one member, nothing joins them for you. The merge routine exists – audience membership, blast recipients, conversations and the whole inbound and outbound message history re-point onto the surviving row, and the two metadata bags are unioned, with the phone row winning any key both carry – and it is wired to no screen and no automatic path today, so it is an operation you ask us to run rather than a duplicate queue an organiser works through.
  3. 3CSV imports are cursor-batched and resumable, and report errors per row instead of rejecting the file, which is what you want when forty mobiles in a branch export came out of a spreadsheet as numbers.

Opt-outs are enforced. Your authorisation statement is not.

There is a real difference between a rule the software applies and a reminder it prints, and a union carries the consequences of the second one being sold as the first. So here is the line, drawn where the code draws it.

  • Enforced: a contact whose SMS consent is opted out is skipped at send, counted and logged. The tenant suppression list is a system floor inside search evaluation, below the filters an author can edit, and cannot be filtered away.
  • Recorded: consent is one row per member per channel, carrying the current state, the source that set it and when it last moved, and there is an opt-out register you can page through with per-channel counts. What it is not is a history. The row is overwritten in place, so the register answers "are they opted out, from what source, since when" and not "what was it before that".
  • Consistent: an inbound STOP keyword, a star-press on an automated call and an opt-out arriving from a connected CRM all write the same opted-out state, and the star-press writes voice and SMS consent in a single transaction.
  • Advisory only: the pre-send check warns when the body carries no "Reply STOP" wording and when the send falls inside the quiet window, 9pm to 8am. That window is platform-wide and set by us rather than per branch, and both findings come back as warnings that do not block the send.
  • Absent: there is no authorisation-statement field, no automatic insertion and no check for one anywhere in the product. uprise will not tell you your wording is compliant, because it has no way to know. That text stays your responsibility.
  1. 1Enforced: a contact whose SMS consent is opted out is skipped at send, counted and logged. The tenant suppression list is a system floor inside search evaluation, below the filters an author can edit, and cannot be filtered away.
  2. 2Recorded: consent is one row per member per channel, carrying the current state, the source that set it and when it last moved, and there is an opt-out register you can page through with per-channel counts. What it is not is a history. The row is overwritten in place, so the register answers "are they opted out, from what source, since when" and not "what was it before that".
  3. 3Consistent: an inbound STOP keyword, a star-press on an automated call and an opt-out arriving from a connected CRM all write the same opted-out state, and the star-press writes voice and SMS consent in a single transaction.
Use cases

Built for every union model

A branch with delegates in worksites

Tag members by worksite, save a search per tag, and stand a text bank up against it, so the delegates on that bank are handed only their own people. Shifts cover the site visits with a time, a place and a seat count; check-in at a members' meeting runs against capacity with a waitlist.

A national office working through branches

A hub workspace publishes one of its surveys or message templates as a fixed version and pushes it into named branch workspaces, each push recorded as its own auditable event. A branch can install a version itself, or detach to keep its copy and stop tracking updates. Each branch keeps its own members, team and settings, and reporting stays inside the workspace that did the work.

A political campaign in a handful of seats

Where the work is seats rather than worksites: cut turf from federal divisions or state upper and lower house electorates, score every SA1 inside the boundary on a persuasion, turnout or coverage preset – nine factors, six of them carrying weight until you move a slider – and, if you want to know whether the doors moved anything, randomise pair-matched SA1 clusters into treatment and a real holdout before the first shift goes out.

Questions we get asked

The things unions ask before they switch. If yours is not here, ask us directly.

No. There is no voting, ballot, petition or general form builder in the product, and no plan to pass one off as one: public action pages come in exactly two kinds, a click-to-call page and an event RSVP page. Run a protected action ballot or an EBA vote through your registered provider. What uprise is for is telling every member the ballot is open, over SMS from delegates or as a proofed blast, and recording who was actually reached.

For members uprise created from the national address file, yes, down to SA1, ward, LGA and state upper or lower house electorate. For a list you imported, no, and this is the caveat to take seriously: every geographic filter, postcode and suburb included, resolves by joining a contact to an address in that file, and nothing in the CSV import or the CRM pull address-matches an imported row to it. Plan on tags, work email domain, support level and engagement history for imported members, and treat electorate targeting as something that applies to address-universe doors.

Through a CSV export, yes, with per-row error reporting and a resumable import. Through an API, only if you also run NationBuilder or Action Network: those are the two connectors that exist, one NationBuilder nation and one connection per Action Network group, and today they read into uprise rather than write back to it. A pull re-runs on its own schedule, daily as it comes and hourly at the tightest. There is no connector for the Australian membership platforms, and nothing schedules an export or mirrors the data into a warehouse, so what the delegates learn sits in uprise until a person downloads it: an audience's contacts, or an event's RSVPs, which are the two files the product will hand you.

Four things, plainly. There are no email broadcasts: the message channels are SMS, voice and WhatsApp, with no email channel at all, and only transactional mail such as verifications and invitations goes out. WhatsApp is a paid-plan entitlement and needs Twilio's WhatsApp sender configured, so on a philanthropic licence the working channels are SMS and voice. There are no petitions, sign-up forms or letter-to-the-minister pages. There is no member-facing payment surface of any kind, for dues or anything else, and the Stripe code in the product bills your organisation for its own uprise subscription. And there is no website builder or CMS. If a member newsletter is the centre of your program, uprise is the wrong half of the stack and we will tell you that on the first call.

Yes, two ways, with three limits. An organiser can place and take calls in the browser, with history, per-call stats and recordings; the caller ID is a number the branch owns on the paid plans, and the platform's number otherwise. On the paid plans an autodialer runs voice broadcasts with recorded or synthesised audio, robo-polls on a validated question graph with keypad branching, and transfers that patch a member through to their own federal MP or senator, or their state lower-house member, inside calling windows set in your timezone. The limits: that transfer lookup resolves from the member's postcode rather than their full address, and offers a menu when a postcode straddles two seats; there is no predictive dialling; and volunteers cannot call at all, because the softphone is organiser and owner only. A delegate can text; a delegate cannot dial.

Partly, and honestly, less well than a union would want. There is no worksite or employer object and no user-defined custom fields, so worksite structure lives in tags, in the untyped metadata bag, and in the work email domain filter. Delegates are the volunteer role: three roles are assignable in all, owner, organiser and volunteer, plus a platform administrator, and volunteer grants are an explicit list rather than a wildcard. One number to have in front of you on that call, because it is the wall a delegate-heavy branch hits first: a delegate occupies a workspace seat exactly as an organiser does, the check runs the moment somebody joins, and the philanthropically funded licence carries two seats as it stands – so how many delegates you want sending is what the licence has to be sized around. If your structure needs to be first-class data rather than a tag, say so early and we will show you exactly where it pinches.

Each workspace is an isolated tenant with its own members, team and settings, grouped under a network, and every workspace answers on its own uprise.org.au subdomain with your logos, colours and custom CSS on the volunteer, action and event pages. Your own domain is not shipped: the settings panel shows the intended flow with the controls disabled, because the verification backend does not exist yet. There is also no SAML, OpenID Connect or Google sign-in, so if your IT team requires federated identity, uprise cannot meet that today.

Try it against a real branch list

Bring an export from your membership system and a worksite you have been struggling to reach. We would rather show you where uprise stops than sell you past it.