Documentation Index
Fetch the complete documentation index at: https://docs.wittify.ai/llms.txt
Use this file to discover all available pages before exploring further.
Outbound Voice Campaigns is for Voice and Hybrid agents only. Text-only agents don’t see this sidebar item. The page lives at
/agents/{agentId}/outbound-voice-campaigns.When to use this
Place a wave of outbound calls to a list of numbers: appointment reminders, satisfaction surveys, payment-due nudges, lead qualification, retention. The agent runs the call autonomously using your voice prompt and knowledge base, with optional per-campaign script overrides. The page does not replace your agent’s normal inbound calls. It’s the outbound lane.Sub-tabs
Three sub-tabs collapse-in under the Outbound Voice Campaigns sidebar item, behind a chevron toggle:| Sub-tab | What’s in it |
|---|---|
| Campaigns | Active and historical campaigns |
| Archived | Campaigns you’ve archived |
| Deleted | Soft-deleted campaigns. Recoverable for 30 days. |
Campaigns table
The main table of campaigns. Columns:| Column | What it shows |
|---|---|
| Name | The campaign name you chose |
| Provider | One of: Twilio, Telnyx, SIP Trunk, WhatsApp Calls |
| Audience | Segment label + count |
| Status | One of: Draft, Scheduled, Dialing, Completed, Failed |
| Connected | Calls where the recipient picked up |
| Answered | Calls that reached at least 30 seconds (the agent had time to deliver the message) |
| No answer | Voicemail / busy / didn’t pick up |
| Created | Timestamp |
Status chips
| Status | Color | Meaning |
|---|---|---|
| Draft | Muted | Saved but not scheduled |
| Scheduled | Blue | Will start dialing at the scheduled time |
| Dialing | Amber + pulse | Live, the dialer is placing calls |
| Completed | Green | All calls finished |
| Failed | Red | Provider rejection or critical error |
Toolbar
Above the table:- Search box , matches campaign name. Capped at 120 chars.
- Provider filter , multi-select.
- Status filter , multi-select.
- + New Campaign button on the end.
Bulk actions
Same shape as WhatsApp Campaigns: Pause (Dialing only), Archive (with confirm), Delete (red confirm).Detail drawer
Header
- Campaign name + status pill
- Provider name and caller ID
- Created and Last updated timestamps
Live progress
For Dialing campaigns, a live progress card with:- In flight , calls currently ringing or in conversation
- Queued , calls waiting for an open slot in the concurrency window
- Completed , calls that ended (any outcome)
- Failed , provider-level rejections
Recent outcomes
A scrolling tail of the last 50 call outcomes. Each line shows:| Field | Example |
|---|---|
| Phone | +966500000000 |
| Outcome | Connected / Voicemail / No answer / Busy / Hangup / Failed |
| Duration | e.g. 1:42 |
| Sentiment | Pill (positive / neutral / negative) when transcribed |
| Recording link | Opens the call in Voice Conversations |
Footer actions
- Pause , for Dialing campaigns only
- Duplicate , clones as Draft
- Archive , confirmation
- Delete , red confirmation
Create a campaign
Click + New Campaign to open the multi-step wizard. Five steps:Pick a provider + caller ID
A list of the telephony providers you’ve connected in Deployment: Twilio, Telnyx, SIP Trunk, WhatsApp Calls. Pick one provider for this campaign (you can run multiple campaigns simultaneously, one per provider).Below the provider, a Caller ID dropdown lists your provisioned phone numbers from that provider. The number you pick will appear as the calling number on the recipient’s phone.
Goal and script overrides
Choose between two modes:
- Use the agent’s voice prompt as-is , the agent runs the call exactly like a normal inbound call.
- Layer per-campaign overrides , a textarea where you write extra context (e.g. This is a satisfaction survey call. After greeting, ask these 3 questions in order: …). The override is layered on top of the agent’s main prompt for the duration of the campaign.
Choose audience
Two options:
- Upload CSV ,
.csvfile with aphonecolumn (E.164 format) and any optional variable columns (e.g.customer_name,appointment_date) you reference in the override. Bilingual sample CSVs are linked. - Saved segment , pick from segments you’ve defined elsewhere.
Pacing rules
Four sub-fields:
| Rule | What it controls |
|---|---|
| Concurrency | Max simultaneous calls (e.g. 10). The dialer never exceeds this. |
| Calling window | Start and end hours per recipient timezone (e.g. 9 AM to 8 PM). |
| Retry rules | How many retries on no-answer / busy, with a cool-down between attempts (e.g. retry up to 2 times, 30 minutes apart). |
| Voicemail handling | Leave a recorded message (with the override script as the script) or Hang up. |
Recordings and transcripts route to Voice Conversations
Every completed call from a campaign appears in Voice Conversations under the matching provider tab, with full audio playback, click-to-seek waveform, synced transcript, and on-demand AI summary. There’s no separate recordings inbox for campaigns, the call stream is shared with inbound traffic.Compliance
- The agent honors remove-me / opt-out instructions automatically. Recipients who say “remove me” or “stop calling” are added to the do-not-call list and excluded from future campaigns.
- The dialer respects local do-not-call windows by default (e.g. 8 AM to 9 PM in the US, 9 AM to 8 PM in KSA). The Calling window in Pacing rules can narrow this further but cannot override it.
- An audio recording disclosure plays at the start of every call when required by local law.
- Audience CSV is parsed with the same UTF-8 BOM + CRLF rules as the Knowledge Base.
Common questions
My campaign launched but Status went straight to Failed.
My campaign launched but Status went straight to Failed.
Open the drawer. The most common cause is a provider rejection (e.g. caller ID not verified by Twilio for outbound, or Telnyx number doesn’t have outbound enabled). Fix the underlying provider config in Deployment, then duplicate the campaign and re-launch.
Concurrency seems lower than I set.
Concurrency seems lower than I set.
Telephony providers cap concurrency per account by default. If you set 50 but the provider’s account-level cap is 10, you’ll see at most 10 in flight. Contact your provider to raise the cap.
A recipient picked up but the agent stayed silent.
A recipient picked up but the agent stayed silent.
The recording disclosure plays first. After it finishes, the agent starts speaking. Most “silence” reports are people hanging up before the disclosure ends. Listen to the recording in Voice Conversations to confirm.
Can I pause a Dialing campaign and resume later?
Can I pause a Dialing campaign and resume later?
Yes. Open the drawer, click Pause. The campaign moves to Paused state, in-flight calls finish but no new ones get queued. Click Resume to continue. Pacing rules and audience are preserved.
The override script keeps getting ignored.
The override script keeps getting ignored.
The agent decides what to say based on the conversation context, not just the override. Make the override prescriptive: Always ask these 3 questions in this order. Don’t deviate. If the agent still goes off-script, lower its Temperature in Voice Settings to keep it more rigid.
Next
WhatsApp Campaigns
The chat equivalent for text + hybrid.
Voice Conversations
Where campaign recordings land.

