Documentation Index
Fetch the complete documentation index at: https://docs.kaanha.ai/llms.txt
Use this file to discover all available pages before exploring further.
Broadcasts & Campaigns
Broadcasts let you send a WhatsApp template message to multiple contacts at once. They’re perfect for promotions, announcements, order updates, and re-engagement campaigns.
Creating a Broadcast
- Go to Broadcasts → Create Broadcast
- Configure the broadcast:
| Field | Description |
|---|
| Name | Internal reference name |
| Template | A pre-approved Meta template |
| Target Tags | Send to all contacts with these tags |
| Schedule | Send now, save as draft, or schedule for a future time |
- Click Preview Recipients to see the first 10 matching contacts and total count
- Confirm and click Send
Recipient Targeting
Broadcasts target contacts by tags. All contacts matching any of the selected tags will receive the broadcast (OR logic).
Only contacts with:
optedIn: true
- Active status (not deleted)
…will receive messages. Opted-out contacts are automatically excluded.
Scheduling
| Option | Behavior |
|---|
| Send Now | Starts immediately |
| Draft | Saved, not sent. Edit and send later. |
| Scheduled | Queued for a specific date + time (timezone shown) |
Scheduled broadcasts use the BullMQ queue backed by Redis. A per-org Redis lock (lock:broadcast:org:<id>, 30-min TTL) ensures one org’s large broadcast cannot monopolise the worker pool.
Delivery Stats
After a broadcast completes, you’ll see a delivery funnel:
| Metric | Description |
|---|
| Total Sent | Number of messages dispatched |
| Delivered | Confirmed delivered to device |
| Read | Opened by the recipient |
| Failed | Could not be delivered |
Frequency Cap
To prevent spam, Kaanha AI enforces a frequency cap:
- MARKETING category templates: max 1 per contact per 24 hours
- UTILITY and AUTHENTICATION templates: no cap
Contacts who have already received a marketing message in the last 24 hours are automatically skipped.
Drip Campaigns (Sequences)
Sequences are automated multi-step message flows triggered by contact events.
Creating a Sequence
- Go to Sequences → Create Sequence
- Configure:
- Trigger:
tag_added, contact_created, or manual
- Steps: Add message steps with delay between each
- Save and activate
Step Types
| Step | Description |
|---|
| Message | Send a template to the contact |
| Delay | Wait N hours/days before the next step |
| Condition | Branch based on contact tag or message status |
Condition Branches
Condition steps have If Yes and If No paths:
Step 3: Condition — Does contact have tag "purchased"?
├── If Yes → Send "Thank you" template
└── If No → Send "Last chance" template
Enrollment
Contacts are enrolled in a sequence via:
- Manual enrollment: Contacts → [Contact] → Enroll in Sequence
- API:
POST /api/sequences/enroll
- Automatic: when trigger condition is met
Each contact can only be enrolled once per sequence (duplicate enrollments are rejected).
Templates
All broadcast and sequence messages require pre-approved Meta templates.
See Messaging & Templates for template creation and approval.