Add or edit message template
This page is where you write a message template — the text (and, for Telegram, the attachments and buttons) that workflows send to clients over SMS, Viber, or Telegram.
You reach it from Settings → Bookings → Message templates by clicking Add template, the empty-state button, or the edit pencil on a template card. Workflows also link here through their Create a template shortcut.
The form is split in two: the fields on the left, and a sticky Preview card on the right that renders the message in a chat bubble using sample booking data.
Add vs. edit
| Mode | What happens |
|---|---|
| Add | Creates a new template. Saving returns you to the Message templates list — or back to the workflow you came from, when you arrived via Create a template. |
| Edit | Loads the saved template, shows its name as the page heading, and adds a Delete action. If the template cannot be loaded, or belongs to another organization, you get an error toast and are sent back to the list. |
Fields
Name
Required. Up to 120 characters. This is what workflow pickers and the client's message log show, so name it after what the message does — Booking reminder, Payment follow-up — not after the channel.
Format
Required, defaults to Text. A three-way picker: Text, Telegram, Viber. The hint under the picker explains what the selected format supports, and the rest of the form changes with it:
| Format | Extra fields shown |
|---|---|
| Text | None — just the message body. |
| Telegram | Editor / Markdown toggle, Attach invoice PDF, Attach documents, Link buttons. |
| Viber | Character counter, Image URL, Action button. |
Attachments and buttons are only saved for the format that supports them: switching a Telegram template to Text before saving drops its attachments and buttons.
Message text
Required in practice — an empty body is simply not sent.
- Text and Viber — a plain multi-line box. Viber shows a live character counter against the 1000-character limit, which turns red when you go over.
- Telegram — two ways to write the same message, switched with the Editor / Markdown toggle:
- Editor — a rich-text toolbar with bold, italic, underline, strikethrough, link, and code block.
- Markdown — a monospace box where style symbols are converted to Telegram formatting:
**bold**,_italic_,__underline__,~~strikethrough~~,`code`and[link text](https://...).
Switching between the two converts the body, so you can start in the editor and fine-tune in Markdown.
An Insert variable dropdown sits above the body and appends the chosen token at the end of the message.
Attach invoice PDF (Telegram only)
A toggle. When on, Requiply generates the triggering booking's invoice at send time and delivers it as a PDF file after the message. The preview shows it as an invoice.pdf chip inside the bubble.
Attach documents (Telegram only)
A multi-select of your custom export templates. Each selected template is rendered for the triggering booking and sent as its own PDF file — a rental agreement, a handover act, a packing list.
Link buttons (Telegram only)
Up to six buttons, each with a caption and a URL, added with the + button and removed with the trash icon. Buttons appear under the message in Telegram and open the link when tapped.
Variables are allowed in both parts, which is what makes them useful — a Pay now button pointing at {{paymentIntegrationLink}}, or View booking pointing at {{reservationLink}}. A button whose caption or URL is empty is dropped when saving, and at send time a button is only included if its resolved URL starts with http:// or https://.
Image URL and Action button (Viber only)
- Image URL — an optional public image shown above the message text.
- Action button — a single caption plus link, shown under the message. Captions are limited by Viber to about 25 Latin or 12 Cyrillic characters. Variables are allowed in the link.
Variables
Message templates use the same variable engine as email templates and export templates — booking, client, and organization tokens such as {{clientName}}, {{bookingStartDateTime}}, {{bookingTotal}}, {{paymentIntegrationLink}}, plus every custom field defined on the Client, Booking, or Organization level.
A few are worth calling out for messaging:
| Variable | Replaced with |
|---|---|
{{telegramConnectLink}} | The client's personal invite link to your Telegram bot (https://t.me/yourbot?start=…). Resolved only when the organization has an active Telegram integration; otherwise it renders as nothing. |
{{paymentIntegrationLink}} | A payment link for the booking — the usual target for a Telegram or Viber button. |
{{bookingItems}} | A numbered list of the booked items, for example 1. Rode Procaster × 2 — $90.00, with names in bold on Telegram. Each booked bundle adds an unnumbered line at the end, for example Podcast duo kit: bundle discount 10% — -$19.20. |
{{bookingBundleDiscount}} | What the booked bundles save in total, for example $19.20. Empty without a bundle, so it works well inside {{#if bookingBundleDiscount}}…{{/if}}. |
Conditional blocks
Message bodies support {{#if variable}}…{{/if}} blocks, exactly like export templates. The block is kept when the variable has a non-empty value and removed when it does not, and blocks can be nested. Use it for anything optional:
{{#if paymentIntegrationLink}}Pay here: {{paymentIntegrationLink}}{{/if}}
Conditionals are resolved in the live preview too, so a block whose variable has no sample value disappears there as well.
The preview
The right-hand card renders the message as a chat bubble filled with sample data — sample booking values, your organization name, email, phone, and currency.
- Telegram templates render their formatting; Text and Viber render as plain text.
- A Viber Image URL is shown above the text.
- Attachments appear as file chips (
invoice.pdf, then one chip per selected document template). - Buttons appear under the bubble.
Drafting with AI
Above the body sits a row of AI actions, the same set the email and document editors offer:
| Action | What it does |
|---|---|
| Create with Requiply Assistant | Opens the Requiply Assistant in Message designer mode, aware of the current format and of the variables available here. Drafts come back as a card with Apply to editor, which fills in the name and body. |
| Open prompt in ChatGPT / Open prompt in Claude | Opens the external assistant with a prepared prompt. |
| Copy AI prompt | Copies that prompt to the clipboard. |
The assistant is told which format is selected, so it writes Markdown for Telegram, plain text under 1000 characters for Viber, and the shortest possible text for SMS.
Saving, cancelling, deleting
- Save validates the name and stores the template. A toast confirms "Template {name} was created/updated" and you return to the list.
- Cancel returns to the list without saving.
- Delete (edit mode only) opens a confirmation dialog.
Deleting a template
Requiply loads every workflow before allowing deletion:
- If no workflow uses the template, the dialog asks "Are you sure you want to delete the template {name}?" and Yes removes it.
- If any workflow uses it, the dialog switches to "The template {name} is used by these workflows. Point them to another template before deleting:" and lists them. The confirm button stays disabled until you repoint or delete those workflows.
Common scenarios
A booking reminder for every channel
Keep the format on Text, write two or three short lines with {{clientName}} and {{bookingStartDateTime}}, and save. The template is now selectable on any channel.
A Telegram message with the contract attached
Switch the format to Telegram, write the message in the editor, select your rental agreement under Attach documents, and add a Sign button. The client gets the message and the rendered agreement as a PDF in the same chat.
Translating an existing template
Open the template, click Create with Requiply Assistant, and use the Translate into Ukrainian starter. The assistant returns the full name and body with every token preserved; Apply to editor, review, and save.