> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eat-now.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Templates

> Build your own WhatsApp templates on EatNow — text, images, videos, carousels, smart buttons and dynamic booking variables.

<Note>
  New templates are reviewed by Meta before they can be sent, and sending also requires an [approved display name and a payment method](/whatsapp/verification). See [Templates](/whatsapp/templates) for the full picture.
</Note>

## Interface Overview

The template editor mirrors Meta's own, and builds a message from these blocks:

* **Header** *(optional)* — choose **None**, **Text**, **Image** or **Video**.
* **Body** — the main message, where you insert dynamic variables.
* **Footer** *(optional)* — a small note at the bottom.
* **Buttons** *(optional)* — links, a call button, quick replies, or EatNow smart actions (below).
* **Carousel** *(optional)* — a swipeable series of cards, each with its own image/video, text and buttons.

A **live preview** on the right shows the message exactly as your customers will see it, updating as you type.

## Header: text, image or video

Pick the header format at the top of the editor:

* **Text** — a short title, which can include a variable.
* **Image** / **Video** — upload the file directly; EatNow hosts it and sends it to Meta with the template.

<Warning>
  Once a template is approved, Meta **doesn't allow changing the header format** (Text ↔ Image/Video). To switch formats, create a new template.
</Warning>

## Buttons

You can add:

* **Visit website (URL)** — opens a link.
* **Call** — dials a phone number.
* **Quick reply** — a tappable canned response.

### EatNow smart actions

On a URL button you can pick an **EatNow action** instead of typing a link — EatNow then points the button to the right page automatically, per customer. Available actions depend on the template type:

* **View reservation** — opens the booking.
* **Pay** — opens the payment page (payment templates).
* **New reservation** — starts a new booking (e.g. booking requests, expired holds).
* **Confirm** — confirms the booking (double-confirmation).
* **Feedback** — opens the review/feedback page (follow-ups).

<Note>Smart actions aren't available on **marketing** templates — those must use a plain website link.</Note>

## Carousel templates

A carousel sends **2 to 10 swipeable cards**. Each card has an **image or video**, a short body (up to 160 characters) and **1–2 buttons** — great for showcasing menus, offers or rooms.

A few rules Meta enforces:

* A carousel can't be combined with a top-level **header** or **footer**.
* **All cards must use the same header format** (all image, or all video).
* **All cards must have the same number and types of buttons.**

## Dynamic variables

Insert variables in the body (and text header) by wrapping them in double curly braces — e.g. `{{guest_name}}` becomes the customer's name. Available variables depend on the template type.

**Booking templates**

* `restaurant_name`
* `guest_name`
* `guest_email`
* `guest_phone`
* `reservation_date`
* `reservation_time`
* `group_size`
* `total_paid`
* `total_refunded`
* `total_pending`
* `payment_details`

**Activity templates** also include:

* `product_list`

**Marketing templates** use a different set:

* `restaurant_name`
* `restaurant_slug`
* `guest_name`
* `guest_email`
* `guest_phone`
* `customer_id`

## Meta approval

Once created, a template is submitted to Meta for review (usually a few minutes). It may be rejected for:

* **Prohibited promotional content** in non-marketing templates.
* **Vague or unclear** wording.
* **Incorrectly used variables** — make sure they're wrapped as `{{variable}}` and relevant.
* **Policy violations** — offensive, misleading or non-compliant content.

If rejected, edit and resubmit. Note that an existing template can be edited **once every 24 hours**.
