Skip to main content
Peer-to-peer (P2P) texting is a volunteer having real one-on-one conversations with voters. Every message is typed (or approved) and sent by a person, one voter at a time. There is no “send to all” button — that is what makes it P2P, and it is also what keeps it on the right side of the law.
Texting works the same on the phone app and the web. A texter can start on their phone and finish at a desk — it is the same queue.

For texters

Find your queue

  • Phone app: open your campaign and tap Texts in the bottom bar.
  • Web: open Outreach → P2P in the sidebar. If you are staff, click Send texts.
The tab appears whenever your campaign has an active texting campaign. If you see “you’re not on this texting list yet,” ask an organizer to add you — the queue appears the moment they do.

Work the queue

Your queue is sorted so the person waiting on you comes first:
  1. Unread replies — someone answered you
  2. Waiting — you texted, no reply yet
  3. New — voters you haven’t opened yet
Tap a name to open the conversation.

Send your first message

  1. Open a new contact. Tap Use campaign script to load the campaign’s opener.
  2. Make it sound like you. Voters answer people, not scripts.
  3. Press send.
The first message to any voter must carry opt-out language. If you forget, Culper adds “Reply STOP to opt out.” automatically — you never send a non-compliant opener.
Messages are capped at 480 characters. Past 160 characters, the counter shows how many texts the carrier will split it into.

Attach the campaign flyer

If your campaign has set an attachment, a checkbox appears under the composer: Attach [filename]. Tick it and your next message goes out with the flyer (as an MMS). The box unticks itself after each send — attaching is a choice per message, not a mode. You cannot attach your own photos or files. The flyer is set by the campaign, so every voter receives the same approved material.

Replies

When a voter texts back, it lands in the same conversation, your queue shows an unread badge, and the app sends you a notification. Reply from the thread like any messaging app.

Mark how it went

When a conversation reaches a natural end, set a disposition — Supporter, Undecided, Opposed, Wrong number, and so on. This is the entire point of the conversation: it is what the campaign can act on later.
Do not contact is honored globally, immediately, and permanently. So is any STOP reply — the voter is added to a suppression list no campaign can override. Never try to work around an opt-out.

A few rules the app enforces for you

  • Texting hours. Sends outside the campaign’s texting window are held — the app tells you to try later. This is a legal requirement, not a preference.
  • No offline sending. Unlike walk data, texts never queue for later. A message that fails tells you immediately, and pressing send again retries the same message — it can never double-text a voter.
  • Opted-out voters are locked. The composer disappears and that is final.

For admins

Create a texting campaign

  1. Go to Outreach → P2P and click New campaign.
  2. Pick a saved voter list. Culper keeps only voters with a usable mobile number, drops duplicates, and keeps one contact per phone number so a household never gets the same message twice.
  3. Write the script — the opener your texters start from.
  4. Set texting hours.

Assign texters

Open the campaign and click Assign texters. Contacts are split evenly across everyone you pick. Adding a texter later rebalances the unworked contacts; conversations that have already started never move. Anyone on the campaign can be a texter — volunteers, precinct chairs, staff, the candidate.

Set the attachment

On the campaign page, use the Campaign attachment card. One file per campaign — JPG, PNG, GIF, or PDF, under 4MB.
Attached messages send as MMS, which costs roughly three times an SMS. Texters choose per message whether to include it, so the flyer goes where it earns its cost.

Monitor

The management view shows the campaign’s numbers — contacts, sent, replies, opt-outs — and every conversation as it happens. Sending still happens one texter, one voter at a time.

How numbers work

Each voter always hears from the same phone number for the life of their conversation, even if their contact is reassigned to a different texter. A thread that changes numbers reads as spam, and a voter cannot reply to a number that stopped writing to them.

Compliance in one paragraph

P2P texting is human-initiated: a person reviews and sends every message individually, which is why it does not require the same prior-consent machinery as automated texting. Culper enforces the rest — opt-out language on openers, texting hours, immediate and global STOP handling, and A2P-registered numbers. Your job is simpler: be a person, respect every “no,” and log the disposition.