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.
WhatsApp Campaigns is for Text and Hybrid agents only. Voice-only agents don’t see this sidebar item. The page lives at
/agents/{agentId}/whatsapp-campaigns.When to use this
This is the surface for one-off WhatsApp blasts to lists of customers: order-shipped notifications, appointment reminders, end-of-month promos, abandoned-cart nudges, retention pushes. Every message uses a WhatsApp Business template that Meta has already approved. The page does not replace your agent’s normal inbound flow, it complements it. The agent still answers customers who write in. This is the outbound lane.Sub-tabs
Three sub-tabs collapse-in under the WhatsApp 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 |
| Template | The approved Meta template the campaign sends |
| Audience | Segment label + count (e.g. VIP customers, 1,247) |
| Status | One of: Draft, Scheduled, Sending, Completed, Failed |
| Sent | How many messages went out (with percent of audience) |
| Read | How many were opened (delivery + read receipt) |
| Replied | How many recipients responded |
| Created | When the campaign was created |
Status chips
| Status | Color | Meaning |
|---|---|---|
| Draft | Muted | Saved but not yet scheduled |
| Scheduled | Blue | Scheduled to send at a future time |
| Sending | Amber + pulse | Currently delivering |
| Completed | Green | Send finished |
| Failed | Red | Something went wrong, see drawer for details |
Toolbar
Above the table:- Search box , matches campaign name and template name. Capped at 120 chars.
- Status filter , multi-select pills.
- + New Campaign button on the end.
Bulk actions
Tick rows in the table to enter bulk mode. Bulk actions: Pause (only on Sending campaigns), Archive (with confirm), Delete (red confirm).Detail drawer
Click any campaign row to slide a drawer in from the end edge.Header
- Campaign name
- Status pill
- Template name in monospace
- Created and Last updated timestamps
Progress section
Real-time progress bar with counts: Sent / Audience size, Delivered, Read, Replied, Failed. Each metric has a percentage. The progress bar is live for Sending campaigns, frozen for Completed.Recipients table
A paginated table of every recipient with their delivery state:| Column | Content |
|---|---|
| Phone | The recipient’s phone number |
| Status | Pending / Sent / Delivered / Read / Failed |
| Mapped variables | Each template variable’s resolved value for that recipient |
| Reply | First reply preview, with a button to open the full conversation |
Replies stream
A scrollable card showing the recent replies as they come in. Each reply has a View Conversation button that deep-links into Chat Conversations with the conversation pre-selected.Footer actions
- Pause , for Sending campaigns only
- Duplicate , clones the campaign as a new Draft
- Archive , confirmation, moves to Archived
- Delete , red confirmation, moves to Deleted
Create a campaign
Click + New Campaign to open the multi-step wizard. Five steps:Pick a template
A list of every approved WhatsApp Business template on your account. Each template card shows the template name, language, category (Marketing / Utility / Authentication), preview of the body text, and the list of variables it expects.Only templates that Meta has explicitly approved can be sent. Pending or rejected templates are excluded.
Map variables
The template’s variables (e.g.
{{1}} {{customer_name}}, {{order_id}}) are listed as input fields. For each variable you can:- Map to a column in your audience CSV.
- Pick from saved segments’ columns.
- Hardcode a single value used for everyone.
Choose audience
Two ways to pick recipients:
- Upload CSV , drop a
.csvfile with aphonecolumn plus any variable columns you mapped in step 2. Bilingual sample CSVs are linked under the upload zone for reference. - Saved segment , pick from segments you’ve defined elsewhere in Wittify.
Schedule
- Send now , the campaign starts as soon as you confirm in step 5.
- Schedule for later , pick a date and time. The time is relative to the recipient’s timezone (when known) or your account’s default timezone.
Review and launch
A preview card shows the rendered template against the first row of the audience. Confirm the variables resolved correctly, click Launch Campaign.A toast reads Campaign scheduled (if you picked a future time) or Campaign launched (if Send now). The campaign joins the table with its initial status.
Replies route to Chat Conversations
When a recipient replies to a campaign message, the conversation opens in Chat Conversations under the WhatsApp tab. The agent picks up the thread automatically using the same prompt and knowledge base it uses for inbound traffic. There’s nothing to wire here, just open the conversation in the inbox.Compliance and limits
- Only approved Meta templates can be sent. Free-form messages are not allowed by Meta outside the 24-hour customer service window.
- The agent honors STOP / opt-out keywords automatically. A recipient who replies STOP gets removed from future campaign audiences.
- Audience CSV uses UTF-8 with BOM for Arabic compatibility, same rules as the Knowledge Base CSVs.
- Meta’s pacing rules apply, large campaigns are spread across hours per Meta’s per-account limits.
Common questions
My template doesn't appear in the picker.
My template doesn't appear in the picker.
Two checks: (1) it’s approved by Meta (Pending and Rejected templates don’t show), (2) it’s in the same WABA you connected in Deployment. Templates are scoped to the WhatsApp Business Account.
My audience CSV upload says '5 invalid phone numbers'.
My audience CSV upload says '5 invalid phone numbers'.
The phone column must be in E.164 format (e.g.
+966500000000). Edit the rows in your spreadsheet and re-upload. Invalid rows are skipped on launch, they don’t stop the rest of the campaign.A recipient replied but the conversation didn't show up in Chat Conversations.
A recipient replied but the conversation didn't show up in Chat Conversations.
Two checks: (1) WhatsApp is connected in Deployment with the same number you sent the campaign from, (2) the agent is Active. If both are true, the conversation should appear within seconds. If it doesn’t, refresh the inbox.
Can I edit a Scheduled campaign?
Can I edit a Scheduled campaign?
Yes. Open its drawer, click Edit, you’ll re-enter the wizard with all your settings preserved. Save to return to Scheduled. You can’t edit a Sending or Completed campaign.
The Sending status froze at 60%.
The Sending status froze at 60%.
Meta paces large campaigns to protect inboxes. The campaign hasn’t failed, it’s spreading the send across the platform’s allowed window. Check back in an hour or two.
Next
Outbound Voice Campaigns
The voice equivalent for voice + hybrid agents.
Chat Conversations
Where campaign replies land.

