Real Messaging Engine

WhatsApp

WhatsApp Business messaging for international customer conversations, with template approval, session windows, and Salesforce-native history.

Concepts

ConceptMeaning
Template messagePre-approved content required to start a conversation
Session window24 hours after the customer's last inbound message; free-form replies allowed
CategoryUTILITY, AUTHENTICATION, or MARKETING — affects approval and pricing
WABAWhatsApp Business Account holding your phone numbers and templates

Template registration

WhatsApp templates are authored in RME and submitted for approval from the template record. Approval status syncs back onto Template__c.WhatsApp_Status__c (PENDING, APPROVED, REJECTED).

{
  "name": "appointment_reminder",
  "language": "en_US",
  "category": "UTILITY",
  "components": [
    { "type": "BODY", "text": "Hi {{1}}, your appointment is on {{2}} at {{3}}." },
    { "type": "BUTTONS", "buttons": [{ "type": "QUICK_REPLY", "text": "Reschedule" }] }
  ]
}

Sending

RME_Message.builder()
    .channel('WHATSAPP')
    .templateName('appointment_reminder')
    .templateLanguage('en_US')
    .parameters(new List<String>{ contact.FirstName, '6 August', '2:00 PM' })
    .toContact(contact.Id)
    .send();

Inside an open session window you may send free-form content:

RME_Message.builder()
    .channel('WHATSAPP')
    .toContact(contact.Id)
    .body('Rescheduled to Friday at 10:00 AM. Anything else?')
    .requireOpenSession(true)   // fails fast outside the 24h window
    .send();

Session state

RME tracks the session window on the Contact and exposes RME_WhatsApp.isSessionOpen(contactId) for Flow and Apex, so automation can choose between a template and a free-form reply without guessing.

Continue to Voice Messaging.

Was this helpful?

Last updated 1 month ago