WhatsApp Business API

WhatsApp is the most-used channel in our India-first deployments. Saaya speaks the WhatsApp Business API on your behalf, you bring a sender, we handle templates, sessions, and the 24-hour window rules.

Sender setup

Provide a verified WhatsApp Business sender (a Meta WABA + a phone number). Saaya supports both on-premise BSPs (Karix, Gupshup, Twilio for WhatsApp) and the Cloud API directly. Add the credentials in `Settings → Channels → WhatsApp` and bind them to an agent.

Templates

Outside of an active 24-hour session, WhatsApp requires a pre-approved template message. Saaya stores your templates with their Meta status and renders the right one based on locale and intent. Templates with placeholders are filled at send time.

open-session.ts
// Send a template to open a session, this can be done outside the 24h window.
await saaya.sessions.dispatch({
  agentId: "agt_2N3rH...",
  channel: "whatsapp",
  to:      "+919876543210",
  template: {
    name: "lead_followup_v2",
    locale: "en_IN",
    variables: { firstName: "Anu", company: "Acme" },
  },
});

The 24-hour window

Once the user replies, you have a 24-hour window in which the agent can send freeform messages. Saaya tracks the window per contact and refuses freeform sends outside it (suggesting a template instead).

Opt-in and opt-out

Saaya enforces opt-in lists per agent and respects "STOP" / "UNSUBSCRIBE" replies automatically, opted-out contacts cannot be re-engaged from the API. Opt-out events are streamed to your webhook so your CRM can stay in sync.

Template approval is slow

Meta can take 24–48 hours to approve a new template. Plan launches accordingly. Saaya stores rejected templates with the reason so you can iterate without re-uploading.
Was this page helpful?