Business messaging
Business messaging is the most-used channel in our India-first deployments. Saaya speaks the business-messaging API on your behalf, you bring a sender, we handle templates, sessions, and the 24-hour window rules.
Sender setup
Provide a verified business-messaging sender (a business-messaging account + a phone number). Saaya supports both on-premise messaging providers and the cloud messaging API directly. Add the credentials in `Settings → Channels → Messaging` and bind them to an agent.
Templates
Outside of an active 24-hour session, business messaging requires a pre-approved template message. Saaya stores your templates with their approval status and renders the right one based on locale and intent. Templates with placeholders are filled at send time.
// Send a template to open a session, this can be done outside the 24h window.
await saaya.sessions.dispatch({
agentId: "agt_2N3rH...",
channel: "messaging",
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
