Skip to main content
Templates are built in Galantis and submitted to Meta for review from the same interface. The template builder walks through each structural component — header, body, footer, and buttons — and lets you preview the assembled message before submitting. Once submitted, Meta reviews the template and returns an approval or rejection, typically within minutes to a few hours.

What this covers

  • The four template components and their options
  • How to create and submit a template
  • Variable placeholder syntax
  • Component requirements and limits
  • Submission behavior and what happens after

Creating a template

1

Open the template builder

Go to Templates → New Template in the Galantis dashboard.
2

Set the category

Select Marketing or Utility. This must be set before building the template content — it is a declaration of intent that Meta evaluates against your message. See Template Categories if you are unsure which applies.
3

Set the language

Select the language code for this template (e.g., en, es, pt_BR). Each template is tied to a single language. If you need the same message in multiple languages, create separate template records — one per language.
4

Build the template components

Configure the header, body, footer, and buttons as described below.
5

Preview and submit

Review the assembled template in the preview panel. When ready, click Submit to send it to Meta for review. The status changes to PENDING_APPROVAL immediately.

Template components

Header (optional)

The header appears above the body text. It is optional but strongly recommended for templates that use image or product formats — a text-only template without a header is valid but may perform less well visually.
A single line of plain text. Supports one optional variable placeholder ({{1}}).Use for: subject-line-style context above the body — store name, offer headline, or a personalized greeting that would feel redundant in the body.

Body (required)

The body is the main text of the message. It is the only required component — a template with only a body and no header, footer, or buttons is valid. Variable placeholders are defined in the body using positional syntax: {{1}}, {{2}}, {{3}}. Each placeholder is mapped to a customer or order data field when the template is used in a campaign or automation. Variable positions must be sequential starting from {{1}} — gaps in the sequence (e.g., using {{1}} and {{3}} without {{2}}) will cause submission to fail. Rich text — the body supports bold (*text*), italic (_text_), and strikethrough (~text~) formatting.
Meta requires that all variable placeholders in a submitted template include example values — concrete sample text that demonstrates what the variable will contain at send time. Submitting a template with empty variable examples is a common rejection cause. Fill in realistic example values for every {{N}} placeholder before submitting.

A short line of static text below the body. Does not support variables. Character limit applies — keep it brief. Common uses:
  • Opt-out instruction: Reply STOP to unsubscribe
  • Brand tagline
  • Legal or compliance notice

Buttons (optional, up to 3)

Buttons appear below the footer and give the customer a tappable action. Up to three buttons can be added per template, but all buttons must be of compatible types — not all button type combinations are supported by Meta.
A tappable reply button that sends a predefined text response back to your WhatsApp number when the customer taps it.Use for: simple binary responses (“Yes, I’m interested” / “No thanks”), feedback collection, or opt-in confirmation flows.The reply text is defined at template creation time and is fixed — it cannot be personalized per recipient.

Submission and what happens next

When you click Submit, Galantis sends the template to Meta’s Template API. The template status changes to PENDING_APPROVAL and Meta begins its review. Meta reviews templates for:
  • Category accuracy — does the content match the declared category?
  • Variable example completeness — are all {{N}} placeholders accompanied by example values?
  • Content policy compliance — does the message contain prohibited content?
  • Button configuration validity — are the button types and values correctly formed?
Approval is typically returned within minutes to a few hours. The template status updates automatically in Galantis when Meta responds — you do not need to manually check or refresh. See Approval Lifecycle for the full status reference.

Best practices

  • Write the body copy first, then set variables. Decide what the message says before deciding what to personalize — over-using variables produces awkward, robotic-feeling messages.
  • Always include example values for every variable placeholder. Empty examples are a rejection trigger. Use realistic values that reflect actual customer data — Sarah for customer.first_name, $89.00 for order.total_price.
  • Keep footer text genuinely brief. The footer competes with the body for the customer’s attention. Reply STOP to unsubscribe is ideal — anything longer reduces the clarity of the main message.
  • Test button URLs before submitting. A URL button linking to a broken or redirecting URL is a poor first impression and may affect quality signals. Verify all URLs are live and landing on the intended destination.
  • Do not resubmit a rejected template without addressing the rejection reason. Repeated submissions of the same rejected content signals disregard for Meta’s policies and may affect your account standing.