Skip to content

Message Templates

Message Templates are pre-approved SMS message bodies with variable placeholders that get resolved from CRM data at send time. Templates give administrators control over what agents can send, support compliance requirements (opt-in/opt-out), and ensure consistent messaging.

When a messaging channel has Require Templates enabled, agents can only send messages using approved templates - freeform messaging is not allowed on that channel.

Template Grid

The grid displays all templates for the current tenant with columns for name, channel type, category, status, and variable count.

Create/Edit Template

Basic Fields

FieldDescription
NameUnique template name within the tenant (required)
Channel TypeThe messaging protocol: currently SMS
CategoryOrganizational category: Marketing, Support, Billing, Reminders, Alerts, Transactional, Onboarding, Notifications, Surveys, or General
StatusActive or Inactive. Only active templates are available to agents

Message Body

The Body field contains the message text with {{source.field}} placeholders for dynamic content. You can add a default value after a pipe character: {{source.field|default}}. If the field is empty at send time, the default is used instead. For example:

Hi {{contact.first_name|Customer}}, thank you for contacting {{company.name}}.
Your appointment is confirmed for {{system.date}}. Call us at {{company.phone}}.
Reply STOP to unsubscribe.

Insert Variable

To add a variable placeholder to the message body, use the Source dropdown and Field list below it:

  1. Select a Source type to filter the available fields
  2. Click a field in the list to insert it as {{source.field}} into the body text

Available Sources

Contact - CRM contact fields:

first_name, last_name, email, phone, mobile, title, department

Account - fields from the contact’s linked account:

name, industry, website, phone, email, address_line1, city, state, postal_code, country

Lead - lead-specific fields:

first_name, last_name, email, phone, company, source, status

Custom Fields - any tenant-defined Custom Fields (inserted as {{contact.cf.field_name}} or {{account.cf.field_name}})

Company - your organization’s identity (from tenant settings):

VariableDescriptionExample
company.nameCompany display nameAcme Corp
company.phoneCompany phone number+15551234567
company.urlCompany website URLhttps://acme.com

System - runtime context (date and time use your tenant’s configured timezone):

VariableDescriptionExample
system.agent_nameThe user sending the messageJohn Smith
system.dateCurrent date in your timezoneMar 7, 2026
system.timeCurrent time in your timezone (12-hour)2:45 PM

Default Values

Add a pipe and fallback text after any variable to handle empty fields:

  • {{contact.first_name|Customer}} - uses “Customer” if first name is blank
  • {{company.phone|our office}} - uses “our office” if no phone is set

If no default is specified and the field is empty, the placeholder resolves to an empty string.

Compliance Options

FieldDescription
Require Opt-InWhen enabled, the system checks the contact’s opt-in status before sending. Messages are blocked if the contact has not opted in for the channel type
Include Opt-OutWhen enabled, the opt-out text is automatically appended to the message
Opt-Out TextThe opt-out instruction appended to messages (default: “Reply STOP to unsubscribe.”). Only shown when Include Opt-Out is enabled

Notes

Free-text field for internal notes about the template’s purpose, approval status, or usage guidelines.

Worked example: build and ship an appointment-reminder template

Goal: agents (and campaigns) can send a personalized SMS reminder, but only to consented contacts, with an opt-out line - and no freeform edits.

  1. Create the template. Click Add. Name Appointment Reminder, Channel Type SMS, Category Reminders, Status Inactive for now (so no one uses it before you have tested it).
  2. Write the body with variables. Use the Source/Field picker to insert placeholders, and add pipe defaults so blanks read naturally:
Hi {{contact.first_name|there}}, this is a reminder of your appointment with {{company.name}} on {{system.date}}. Questions? Call {{company.phone|our office}}.
  1. Turn on compliance. Enable Require Opt-In (blocks sending to anyone who has not opted in to SMS) and Include Opt-Out, leaving the default Opt-Out Text “Reply STOP to unsubscribe.” appended automatically.
  2. Test. Save, then from a channel that has this template assigned, send it to your own mobile. Confirm your first name, the date, and company details resolve correctly and the STOP line appears.
  3. Activate. Set Status to Active. It now appears to agents on any channel with Require Templates enabled, and can be selected as the message in an SMS campaign.

Because the channel enforces templates, agents choose Appointment Reminder and the variables fill from each contact’s CRM record at send time - they cannot alter the wording or message someone who has not consented.

Best practices

  • Always provide default values for personalization. {{contact.first_name|Customer}} keeps the message reading naturally even when a field is blank; without a default it resolves to an empty string.
  • Include opt-out on marketing messages. Enable Include Opt-Out (and pair it with Require Opt-In) to stay compliant with SMS regulations and carrier rules.
  • Keep SMS bodies concise. Long messages split into multiple segments; short, single-segment messages cost less and arrive more reliably.
  • Test before activating. Send a template to yourself first to confirm the variables resolve correctly, then set the status to Active.
  • Name templates by intent. “Appointment Reminder” is easier for an agent to pick than “Template 4.”

Default Templates

New tenants are created with 8 starter templates covering common use cases:

  • Appointment Reminder - appointment confirmation with callback number
  • Welcome New Customer - onboarding greeting with company name
  • Order Confirmation - order and delivery details
  • Payment Reminder - invoice and payment link
  • Support Follow-up - ticket status check-in
  • Promotion Announcement - marketing offer with expiry
  • Service Outage Notification - disruption alert
  • Feedback Request - post-interaction rating

These templates demonstrate the variable and default value syntax and can be customized or removed as needed.

  • Messaging Channels - assign templates to channels and configure the Require Templates policy.
  • WhatsApp Accounts - manage Meta-approved WhatsApp templates and their variable mappings.
  • CRM Contacts - contact data used for variable resolution.
  • Custom Fields - define additional fields available as template variables.
  • Campaigns - send templated messages in bulk to a list.