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:
  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

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. Broadcasts sent via WhatsApp Connect (rather than the Cloud API) are throttled deliberately slower — a capped rate with randomized jitter between sends — to keep the linked device’s send pattern looking natural and avoid a ban. This is automatic and not user-configurable.

A/B Testing (Variants)

Instead of committing to one template for the whole broadcast, you can add two or more variants — each its own template, with a weight controlling what share of recipients gets it. Kaanha AI assigns each contact to a variant deterministically (the same contact always lands in the same variant across re-sends, so you can compare performance cleanly) and reports delivery/read stats broken down per variant, so you can see which message actually performed better.

Delivery Stats

After a broadcast completes, you’ll see a delivery funnel:

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

Condition Branches

Condition steps have If Yes and If No paths:

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.