Skip to content
Last updated

Messaging Overview

The Messaging API allows you to communicate with customers across SMS, WhatsApp, Messenger and RCS.

You can send:

  • Text messages
  • Media messages (WhatsApp, Messenger & RCS)
  • WhatsApp template-based messages (approved by Meta)
  • Personalised messages using injected fields

SMS, WhatsApp (non-template), Messenger and RCS all support personalisation using injected_fields, allowing you to insert dynamic values into your message content.

WhatsApp Template Messages use template parameters, which correspond to the placeholders defined in your Meta-approved template. These parameters must be supplied in order and match the template structure.

Most integrations follow a simple pattern:

  1. Send a message
  2. Receive a message_id
  3. Check message status

Channel capabilities

Different channels support different message types and behaviours:

ChannelTextMediaApproval TemplatePersonalisationDelivery ReceiptsRead ReceiptsOutbound Allowed
SMS✅❌❌✅ injected fields✅ (where supported by carrier)❌✅
WhatsApp✅✅✅ (Meta-approved)✅ injected fields / template parameters✅ delivered✅ read✅ (template required)
Messenger✅✅❌✅ injected fields✅ delivered✅ read❌ inbound first
RCS✅✅ incl. rich cards❌✅ injected fields✅ delivered✅ read✅

Channel behaviours & rules

ChannelInitiation RuleNotes
SMSBusiness may send freelySupports personalisation via injected fields
WhatsAppBusiness may initiate only with an approved templateFree-form messages allowed for 24 hours after customer messages
MessengerCannot initiate outboundCustomer must message first
RCSBusiness may initiateSent from your verified RCS agent. Supports media, rich cards, carousels and suggested replies. Templates not supported

WhatsApp messaging types

WhatsApp supports two message modes, each with specific rules and personalisation options.

1. Free-form WhatsApp messages (customer-initiated)

Used when the customer messages first.

  • No template required
  • Free-form text and media allowed
  • Valid for 24 hours from the customer’s last message
  • Supports personalisation using injected_fields
  • Behaves similarly to SMS from an API perspective

Example use cases: confirmations, replies, follow-ups.


2. WhatsApp Template Messages (business-initiated)

Used when the business wants to start a conversation.

  • Must be approved by Meta
  • Categorised for billing: Marketing, Utility & Authentication
  • Required for outbound initiation
  • Personalisation is done using template parameters, not injected_fields
  • Can include structured media and interactive elements

Example:

{
  "template": {
    "name": "order_update",
    "parameters": ["Alex", "12345"]
  }
}

Once the customer replies, the session becomes free-form again for 24 hours.


WhatsApp 24-hour messaging window

WhatsApp applies different rules depending on who starts the conversation.

Customer-initiated (inbound)

Free-form messages are allowed for 24 hours after the customer’s last message.

Business-initiated (outbound)

You must use an approved WhatsApp Template.

Once the customer responds, the 24-hour window resets.


Personalisation (injected fields & template parameters)

All channels support personalised messages.

You can inject values into message text using {{placeholders}} and passing them via injected_fields.

Example:

{
  "channel": "sms",
  "to": "+447123456789",
  "message_type": "text",
  "text": "Hi {{name}}, your order {{order}} is on the way.",
  "injected_fields": {
    "name": "Alex",
    "order": "12345"
  }
}

WhatsApp Template Messages use template parameters, which must match the template placeholders exactly.


Next steps