//Outreach
Phone banks
Facts checked against official sources · September 9, 2026
A phone bank in Culper is a saved list turned into a call queue, a script that branches on the voter’s answers, and a console where a volunteer takes one call at a time from a browser or from their own phone. Every answer captured on a call lands on the voter record, and every do-not-call goes to a global suppression list.
Phone banking runs on your campaign’s own Twilio account and number, so calls bill to your Twilio balance and no campaign shares a line with another. It is available to every campaign; the only thing standing between you and the first call is a short voice setup under Settings → Voice.
What it is
Phone Banks sits in the sidebar for every role, volunteers included. Managers and staff create banks and read results; any campaign member assigned to a bank can open the console and call. Under the hood a bank is a list of targets (one per unique phone number, grouped by household), a script, a calling window in the contact’s local time, retry rules, and an optional voicemail drop.
There is no predictive or automated dialer. The volunteer presses Next contact, sees who they are about to call, and presses Call. That human-initiated, one-call-at-a-time design is the compliance posture as much as the user interface.
Setting up voice
Settings → Voice is a three-step, self-serve setup. Step 1 stores your Twilio Account SID and Auth Token in a per-campaign vault. Step 2 lists the voice-capable numbers on that account and lets you pick one as the campaign’s calling number (if there are none, you buy one in the Twilio console and reload). Step 3 places a verification call so you know the line works before a volunteer does; the page also warns if the account still caps calls at four hours and tells you where to raise it.
An optional inbound section handles voters who call the number back: upload a greeting, set a forward-to number, and enable inbound handling. A caller hears the greeting, presses 1 to be forwarded to your team, or presses 9 to opt out, which writes their number to the suppression list. If you would rather not do any of this yourself, the page links to a one-time paid setup where Culper configures the account, number, caller ID, and scripts; you keep ownership of the Twilio account either way.
Each volunteer who wants to call from their own phone instead of a browser verifies a personal callback number once, under Settings → Callback phone, with a four-digit code texted to them. Any member can do this, including volunteers.
Building a phone bank
New phone bank asks for a name, a saved list, and a script. The quick path is a text box: blank lines separate sections, and {{first_name}}, {{last_name}}, {{city}}, and {{agent_first_name}} are merged at call time. The first section should say who the call is on behalf of, because some states require it. The other path is a saved script from the Script builder: paragraphs and questions in order, where a question is multiple choice, multi-select, free text, or numeric; a choice can jump to any later section and can apply a tag to the voter when selected; and a question can save its answer under a named annotation key so it becomes queryable. Scripts are versioned on every save, validated for dead links and loops, and previewable with a sample voter.
The wizard then takes the calling window (contact-local; 8am to 9pm is enforced regardless of what you enter), the days of the week, and retry rules: for no answer, busy, and failed, how many attempts (0 to 5) and how long to wait between them (5 minutes to 24 hours). A voicemail toggle enables drops for this bank; the audio is uploaded afterward on the bank page. The wizard assigns every current campaign member to the bank.
Create & build queue hands the list to a background build. It works in chunks of up to 5,000 voters, keeps only voters on the current county roll, makes one target per unique phone number, groups everyone at the same address into a household with the eldest registered voter as the primary, and resolves each target’s time zone twice, from coordinates or ZIP and from the phone’s area code. A target whose zones cannot be resolved is excluded rather than guessed. Every number is checked against the voice suppression list, and when voicemail is on, up to 5,000 targets have their line type verified with Twilio. The bank flips from building to active when the queue is ready.
The calling console
A volunteer opens the bank and chooses Call from this browser (the console asks for the microphone and parks their audio in a conference for the session) or Call my phone (Culper rings their verified number; they answer and press 1). From then on the loop is: Next contact, preview, Call, talk, wrap up.
The preview shows the primary contact’s name, city, age bracket, and party, plus the other household members on that number, and the first section of the script. The volunteer can Skip or Call. While dialing they hear real ringback; on connect the console reveals the script as they go. Answering a question reveals the next section (or the branch that choice points to), and answers are captured inline with buttons, checkboxes, a text box, or a number field. No answer, busy, and failed calls are dispositioned automatically and the console moves on.
After a connect the console enters wrap-up: notes (required on connected calls if the bank says so), an optional callback time entered in the contact’s local clock with a warning outside 8am to 9pm, and a row of disposition buttons. Saving writes the disposition, the survey answers, and any tags in one transaction; answers mirror onto the voter record as annotations, connected calls count toward the volunteer leaderboard, and a do-not-call disposition writes the number to the global suppression list for both voice and SMS. If a retry rule applies, the target goes back into the queue after the interval; otherwise it is completed or exhausted.
- The console heartbeats every 30 seconds. A session that goes silent for two minutes is swept: its claimed target is released, unless the volunteer’s own phone leg is still live, in which case the claim is kept.
- When the queue is empty the console says why: everyone remaining is outside calling hours, waiting on a retry timer, a scheduled callback, or the list is done.
- A verified landline with voicemail enabled shows Drop voicemail & next on connect; the server re-checks every eligibility rule before it plays the audio.
Managing a live bank
The bank page shows targets, dialed, connected, and completed, with chips for how many targets are waiting on a retry and how many callbacks are scheduled. Managers can pause and resume. A live-agents panel lists who is on the console, whether they are on browser or phone, whether they are on a call, and how many calls they have made. A leaderboard ranks connected calls with each volunteer’s privacy settings respected. An estimated-spend card sums the logged call and session minutes at Twilio’s published rates and links to your Twilio console for the real bill.
Listen lets a manager join an agent’s call silently, gated by wiretap law. Without a monitoring disclosure, listening is blocked for any contact in an all-party-consent state and for any contact whose state is unknown. Turning on the bank’s monitoring-disclosure toggle permits listening everywhere, on the understanding that the script actually says calls may be monitored. If an agent advances to a contact the listener is no longer allowed to hear, the listener is dropped automatically, and every join and leave is logged.
The voicemail card is where the drop audio is uploaded, with two attestations you must check first: the message states the sponsor’s identity, and it includes a callback number. You can test-drop it to your own phone. Drops go only to a verified landline, or to a cell phone with voice consent on file; the bank also carries a drop-to-cell switch behind a TCPA warning that only the candidate or a campaign manager can turn on. Any number is capped at three drops in 30 days, and drops are blocked entirely for contacts in states that prohibit them.
Results
The results page lists every target with its latest disposition, attempt count, and state, and flags anyone who called back in. A call log shows the last 500 outbound calls with duration, status, disposition, and notes, and a separate tab shows inbound calls to the campaign number. Below that, each script question gets a bar chart of answers, and every answer bucket has a Save as list button that turns those respondents into a saved voter list. Staff and above can view results; the CSV export is limited to the candidate and campaign managers.
How a local campaign uses it
City council, voter ID. You build a bank from 1,500 likely voters with phones, a four-section script that ends in a single-choice ballot question, and the default retry rules. Eight volunteers call from their laptops over two evenings. About a third connect on the first pass; no-answers cycle back after four hours. On night two the queue is mostly retries. The ballot question’s “undecided” bucket becomes a 210-person list for a persuasion mailer.
School board, callbacks. Parents ask to be called back after work. Volunteers schedule callbacks in the contact’s local time from wrap-up, and those targets surface only at the scheduled time, ideally to the same caller. The bank page shows how many are pending so the manager knows to staff Thursday at 6pm.
County party, persuasion with tags. The party’s script asks a top-issue question whose choices apply tags (taxes, roads, schools) when selected. After a weekend of calling, each tag is a segment: the roads people get the roads mailer, and the answers are queryable on the voter record for every candidate on the slate.
Why it matters
Calls are the second-highest-contact channel a local campaign has after the door, and the one that scales to volunteers who cannot walk. The math of how many conversations a win number requires is in How many votes does it take to win a local election; the field side of the same loop is in the door-knocking guide.
They are also regulated: calling hours, do-not-call, prerecorded messages to cell phones, and state monitoring laws. Culper enforces the hours, honors do-not-call globally, gates voicemail drops, and gates listening, so a volunteer cannot accidentally do the expensive thing. The texting side of the same rules is in Political texting rules: TCPA and 10DLC. In vote-by-mail states, a phone bank aimed only at voters whose ballot has not come back is the final-week play described in Ballot chase in vote-by-mail states.
What it does not do
Phone banking is built around one human, one call, on the campaign’s own line. The boundaries below follow from that.
- No predictive, power, or auto dialer. Each call is placed by a volunteer pressing Call.
- No Culper-provided numbers or minutes. Calls run on your Twilio account and bill to it; the spend card is an estimate and the Twilio console is the bill.
- No call recording. Listening is live-only, gated by consent law, and logged.
- Voicemail to a cell phone requires voice consent on file; a verified landline is the only other basis. Unknown line types are never eligible.
- The wizard assigns every current campaign member; there is no per-volunteer assignment picker in the web wizard today.
- Line-type verification runs only when voicemail is enabled and stops at 5,000 targets per build.
- The same calling operations are exposed to the volunteer mobile app through a dedicated API, but the web console is the primary place to call today.
Works with
A phone bank starts from a list and ends in annotations, tags, and new lists, so it plugs into the same loop as the door program.
- Search, lists, and tags to build the queue and to use the tags calls apply.
- Scripts and surveys for the annotation keys that make call answers queryable.
- Volunteer coordination for the leaderboard and getting callers onto the campaign.
- Volunteer mobile app for the mobile calling API.
- SMS outreach, which shares the do-not-call suppression list.
- Compliance and data security for the credential vault and suppression list.
Frequently asked questions
Is phone banking enabled for my campaign?
Yes for every campaign. The only off switch is a platform-wide emergency setting. What actually gates calling is your own voice setup: store your Twilio credentials, pick a voice-capable number, and place the verification call under Settings → Voice. Until that is done the Phone Banks page nudges you to set up voice.
Do I need my own Twilio account?
Yes. Each campaign brings its own Twilio account and number so calls bill to that campaign and no two campaigns share a line. If you would rather not set it up yourself, Culper offers a one-time paid setup that configures the account, number, caller ID, and scripts; you keep full ownership of the account.
Can volunteers call from their own phones?
Yes. A volunteer verifies a personal callback number once with a texted code, then chooses Call my phone in the console. Culper rings them, they press 1, and the calls flow through their phone while the script and answer capture stay on screen. Their number is never shown to the voter; the campaign number is the caller ID.
What are the calling hours?
8am to 9pm in the contact’s local time, enforced no matter what window the bank sets, and the window must hold in both the zone from their address and the zone from their area code. Contacts whose time zone cannot be resolved are excluded from the queue rather than called on a guess.
What happens when someone says do not call?
The do-not-call disposition writes the number to the global suppression list for both voice and SMS, across every campaign on the platform, and the target is excluded from the bank. A caller who presses 9 on the inbound greeting gets the same treatment.
Can a manager listen to calls?
Live only, and only where the law allows. Without a monitoring disclosure in the script, listening is blocked for contacts in all-party-consent states and for contacts whose state is unknown. With the bank’s disclosure switch on, listening is permitted, and the listener is dropped automatically if the agent moves to a contact they may not hear. Every join and leave is logged.
Give every volunteer a script and a queue
Keep reading