Skip to main content
Templates

Creating templates

What templates are, the formats, how to create one, variables, and how they adapt across channels.

Written By Bram Haenraets

Last updated About 1 month ago

Templates are the reusable messages you send. They're used by both Guest Journeys (sent automatically across the stay) and Campaigns (one-off broadcasts) — build a template once, use it in either.

Templates are used and sent in Guest Journey and Campaigns

How to create a template

Finding templates

Open Templates from the sidebar. The library lists your templates, grouped into tabs: Active, Drafts, Pending approval, Rejected and Archived. Search and filter to find one quickly.

In the top right you can choose "use a preset"or "Start from blank"

Templates are the reusable messages your AI and your team send to guests. You can start from a preset in the library, or build your own from scratch. This article covers building your own.

Creating a template

The template editor walks you from format to finished message, with a live preview as you go.

Start from a preset or from blank

Select New template, then choose how to begin:

  • Use a preset — opens the Template library. Filter by purpose (Welcome, Pre-arrival, Check-in, Upsell, In-stay, Check-out, Post-stay) and by channel, then click a preset to clone it into your Drafts and edit.

  • Start from blank — opens the editor with an empty template.

The preset template library opens

Step 1: Pick a format

The format decides the layout of your message. There are nine, grouped into three sets.

Basic — text, photo, or file, the everyday formats:

  • Plain message — text only, the simplest way to reach a guest

  • Photo + message — a JPG or PNG up to 5 MB, with a caption

  • File attachment — a PDF or document with a caption

Interactive — guests can tap, swipe, or fill in:

  • Card — a message with an optional image or file, plus tappable buttons

  • Carousel — 2 to 10 cards, each with an image, text, and a button

  • List picker — a short list of tappable options

  • Interactive form — guests fill in a form directly in WhatsApp

Other — specialised formats:

  • Location pin — a map pin with an address that opens in Maps

  • Login code (OTP) — a one-time passcode with a copy-code button

Creating a new or amending a preset template

List picker and Location pin only send inside an active 24-hour conversation. In a Guest Journey or campaign, place them after a step where the guest taps a button — never as the opening message to a guest who isn't already chatting. Viqal won't block you, so sequence them correctly.

Every business-initiated format needs WhatsApp approval first — see Template approval and why Meta rejects templates.

Choose the format at the top (see the table above). The content blocks below change to match it. A preset already has a format chosen — change it here if you need to.

Step 2: Write the content

Add the message body guests will receive.

Use variables for anything guest-specific. Click Add variable to insert live booking details, and they fill in automatically for each guest. There is a long list to choose from, including:

  • {{guest.name}}

  • {{reservation.number}}

  • {{venue.name}} and {{venue.city}}

  • {{reservation.start_date}} and {{reservation.end_date}}

Open Add variable in the editor to see everything available.

A body might read:

Hi {{guest.name}}, thank you for your booking {{reservation.number}} at {{venue.name}} in {{venue.city}} from {{reservation.start_date}} until {{reservation.end_date}}.

Depending on the format you chose, you may also see:

  • Subtitle — optional, shown under the message

  • Image or file — optional, drag and drop or click to upload

Step 3: Add buttons

Buttons make a message tappable. A template can have at least 1, and up to 5 quick replies, 2 link buttons and 1 call button:

  • Quick reply — a tappable canned reply; when the guest taps it, the button's text is sent back as their reply (handy for "Yes" / "No" or "Tell me more").

  • Link button — opens a URL when tapped (your booking page, a menu, directions).

  • Call button — dials a phone number when tapped.

  • Template connector — a button for your workflows that triggers another template when tapped (for example, a "Leave feedback" button that sends your feedback template). The connector ID shown next to it is for developers.

Step 4: Choose how it will be used

When you click Create template, Viqal asks how the message will be sent:

  • Broadcast is the first message to a guest. It is required to send from a Campaign or a Guest Journey step, and it must be approved by WhatsApp.

  • Follow-up is triggered by a guest reply or by another template. It does not need WhatsApp approval.

Step 5: Choose a message category

WhatsApp requires a category for every approved template:

  • Utility — transactional messages tied to a specific action, such as booking confirmations, check-in reminders, and receipts

  • Marketing — promotional or relationship messages, such as offers, upsells, re-engagement, and post-stay reviews

Choose the one that genuinely describes your message. Then click Generate and review.

What happens after you submit

When it's ready, select Submit for approval and choose the template's category — Utility or Marketing (some formats are automatically classed as Marketing). Depending on what needs checking, this either opens a short review (see Reviewing and translating messages) or submits straight to WhatsApp for approval (see Template approval and why Meta rejects templates).

Your template appears in the list with a status:

  • Pending — waiting for WhatsApp approval

  • Active — approved and ready to use

  • Failed or Rejected — WhatsApp did not approve it. Open it, adjust the content, and submit a new version.

Once a template is Active, you can use it in a Guest Journey step or a Campaign.

Inserting variables

Variables are placeholders you drop into a template that automatically fill with each guest's own details when the message sends. Write {{guest.name}} once, and every guest sees their own name. They're what makes an automated message feel personal — and accurate, because the details come straight from the booking instead of being typed by hand.

There are two kinds: guest & reservation variables (name, email, phone, reservation number, check-in/out dates — filled per guest from the booking, read-only) and property variables (Wi-Fi, breakfast hours, your check-in policy — which you configure in Property → Variables). To insert one, use the personalisation picker in the editor — look for Add personalisation — and it's dropped in at your cursor, so you don't type the exact name by hand.

If a guest doesn't have a value for a variable — say there's no email on file — it renders as blank, so write your message to read cleanly if a variable comes out empty. For the full list of variables and to create your own, see Property → Variables.