Docs / Templates & communication / The message template studio

The message template studio

Creating and editing templates per trigger, per channel, per locale. Placeholders and preview.

The template studio lives at Owner → Templates. It shows every automated message your tenant sends, organized by trigger and channel.

How templates are organized

A template is a unique combination of four keys:

  • Trigger — the event that fires it (e.g., visit.on_the_way)
  • Channelemail or sms
  • Localeen, es, or any language you support
  • Subject and body — the content

The system looks up the right template when a trigger fires: requested locale → tenant default → English fallback. If no template exists for the channel+trigger combination, the message is silently skipped (no error — just no send).

Editing a template

  1. Click any template in the list to open the editor.
  2. Edit subject (email only) and body.
  3. The sidebar shows every placeholder available for this trigger.
  4. Click Save. The template is live for the next message.

Placeholders

Every template supports a fixed vocabulary of placeholders per trigger. The full list lives in the editor sidebar. Common ones:

  • {{client.first_name}} — client first name
  • {{visit.date}} — scheduled date of the visit
  • {{visit.time}} — scheduled time
  • {{company.name}} — your shop's name
  • {{property.address}} — the service address
  • {{invoice.amount_due}} — on invoice-related triggers
  • {{invoice.pay_url}} — direct pay link
  • {{magic_link}} — single-use portal login
Typos in placeholder names are silently scrubbed at render time — the message goes out with the bad placeholder stripped. Always verify your placeholders using the preview before saving.

Preview with real client data

Click "Preview" in the editor. Pick a client. The template renders with that client's real data. Use this to catch placeholder mistakes before they hit a real send.

Creating a new template

Click "New template." Pick trigger, channel, locale. Write subject + body using placeholders. Save. The template joins the rotation for that trigger combination.

Was this article helpful?

Contact support