New templates are reviewed by Meta before they can be sent, and sending also requires an approved display name and a payment method. See Templates for the full picture.
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.
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.
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).
Smart actions aren’t available on marketing templates — those must use a plain website link.
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_nameguest_nameguest_emailguest_phonereservation_datereservation_timegroup_sizetotal_paidtotal_refundedtotal_pendingpayment_details
product_list
restaurant_namerestaurant_slugguest_nameguest_emailguest_phonecustomer_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.
