Skip to main content

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

  1. Go to Broadcasts → Create Broadcast
  2. Configure the broadcast:
FieldDescription
NameInternal reference name
TemplateA pre-approved Meta template
Target TagsSend to all contacts with these tags
ScheduleSend now, save as draft, or schedule for a future time
  1. Click Preview Recipients to see the first 10 matching contacts and total count
  2. 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

OptionBehavior
Send NowStarts immediately
DraftSaved, not sent. Edit and send later.
ScheduledQueued for a specific date + time (timezone shown)
Scheduled broadcasts use the BullMQ queue backed by Redis. If Redis is unavailable, scheduled broadcasts fall back to direct processing.

Delivery Stats

After a broadcast completes, you’ll see a delivery funnel:
MetricDescription
Total SentNumber of messages dispatched
DeliveredConfirmed delivered to device
ReadOpened by the recipient
FailedCould 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

  1. Go to Sequences → Create Sequence
  2. Configure:
    • Trigger: tag_added, contact_created, or manual
    • Steps: Add message steps with delay between each
  3. Save and activate

Step Types

StepDescription
MessageSend a template to the contact
DelayWait N hours/days before the next step
ConditionBranch 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.