WhatsApp Templates

Create, manage, and submit WhatsApp message templates for use across Notifications, Workflows, and other product modules

WhatsApp Templates aims to provide dashboard users an easy and effective way to create rich-media WhatsApp message templates that can be utilized by any Leena AI module — most commonly Notifications and Workflows. WhatsApp templates are required by the WhatsApp Business API for any message sent outside an active 24-hour user session, and must be approved by Meta before they can be used. The dashboard handles end-to-end template lifecycle — creation, submission to Infobip/Meta for approval, status sync, and ongoing edits. It supports the following features:

  • Creating, editing, and deleting WhatsApp message templates with rich content (header, body, footer, and CTA buttons)
  • Searching and filtering templates by name, category, language, or Meta approval status
  • Real-time mobile preview of how the template will render to end users on WhatsApp
  • Inserting custom variables (merge tags) from the selected modules for personalization
  • Automatic synchronisation of Meta approval status (Approved, Pending, Rejected) from the WhatsApp Business API provider
📘

Prerequisites

WhatsApp template management is gated by an enablement check that verifies the WhatsApp Business API provider (Infobip) is configured for the current bot. If WhatsApp is not enabled for your bot, you will see a fallback screen. Reach out to your Leena AI implementation contact to enable the WhatsApp channel.

WhatsApp Templates List View Page

Once the user lands on the "WhatsApp Templates" page (under the Notifications module or Admin Dashboard), they will be able to see all existing WhatsApp templates created for the bot, along with their current Meta approval status.

[Screenshot: WhatsApp Templates list view — table with columns Name, Category, Language, Status, Last Modified]

The user can search for a specific WhatsApp template by entering partial keywords in the table search bar. The table can also be filtered using the filter icon, which provides options to filter by:

  • Category (Marketing, Utility, Authentication)
  • Language
  • Meta approval status (Approved, Pending, Rejected)
  • Created by

Each row displays the template name, category, language, and current Meta approval status. The status is synced automatically from Infobip via webhook — there is no need to manually refresh. Clicking on any row opens the read-only Template Details view, where the user can inspect the template content and metadata.

If the user wishes to create a new WhatsApp template, they can click the "Create New" button to be redirected to a blank "Edit Page" where they can build the template from scratch.

WhatsApp Template Edit Page

Once the user lands on the "Edit Page" — either by clicking "Create New" or selecting an existing template to edit — they will see a multi-section form covering Template Details, Content, and Call-to-Action Buttons. A live mobile preview is shown alongside the form, rendering the template exactly as it would appear on a recipient's WhatsApp.

1. Template Details

The Template Details section captures core metadata about the template:

FieldDescription
Template TitleInternal name of the template (this is also the name submitted to Meta — must be lowercase, with underscores instead of spaces, and unique within your WhatsApp Business Account).
CategoryDetermines the type of message and Meta approval rules. Three options: Marketing, Utility, Authentication. See the "Categories" section below for details.
LanguageLocale of the template content (e.g., en_US, en_GB, es, fr, hi). Each locale variant must be created as a separate template.
ModuleProduct modules where this template can be used (e.g., Notifications, Workflows). The merge tags available in the Body and Header are determined by the modules selected here.

2. Content

The Content section is structured into four blocks — Header, Body, Footer, and Call-to-Action Buttons — matching WhatsApp's native template structure. A live mobile preview updates as you make changes.

Header (Optional)

The Header is the topmost element of the message and supports either text or media:

  • Text Header — A short text string up to 60 characters. Supports a single merge tag (e.g., Hi \{\{user.name\}\}!).
  • Media Header — Image, video, or document attachment. Useful for invoices, ID cards, marketing visuals.

Body (Required)

The Body is the main message content. It is the only required content block (excluding the Authentication category, which has a fixed body — see below).

  • Supports rich text formatting — bold, italic, strikethrough, monospace.
  • Supports merge tags via the "Insert Variable" picker (more on this below).
  • Maximum length is 1024 characters (subject to WhatsApp's policy).

Footer (Optional)

The Footer is a short text line that appears at the very bottom of the message — typically used for legal disclaimers, opt-out instructions, or sign-offs. Maximum 60 characters. Merge tags are not supported in the Footer.

Call-to-Action Buttons (Optional)

Up to 10 interactive buttons can be added to a template. The dashboard supports two button types:

  • Quick Reply — A predefined response option that, when tapped, sends the button text back to the bot as a user message. Useful for surveys, polls, or guided flows.
  • URL — An external link button. Tapping the button opens the URL in the user's browser. URLs can include a single merge tag at the end of the URL for personalization (e.g., https://leena.ai/track/\{\{requestId\}\}).

Categories

WhatsApp enforces strict category-based policies on what kind of messages can be sent. Picking the correct category at template creation time is critical — Meta will reject templates that don't match their declared category, and the category cannot be changed once a template is approved.

CategoryUse Case & Constraints
MarketingPromotional content — product launches, discounts, festive offers. Subject to user opt-in and frequency caps. Recipients must have explicitly opted in to marketing communication.
UtilityTransactional updates — order confirmations, appointment reminders, ticket status, account alerts. The most commonly used category for HR/IT/Finance workflows on Leena AI.
AuthenticationOTP and verification code delivery only. Uses a fixed body content: \{\{token\}\} is your verification code. For your security, do not share this code. Header and Footer are disabled. Only a single merge tag for the OTP/token is allowed.
🚧

Category cannot be changed after approval

Once a template is approved by Meta, its category cannot be edited. If you need to change the category, you must create a new template with the desired category and submit it for approval separately.

Merge Tags (Variables)

Merge tags allow you to personalize template content with dynamic values that are filled in at send time. They can be inserted in the Header (text-only header) and the Body using the "Insert Variable" picker. The available tags are determined by the Modules selected in the Template Details section.

Tags follow the format \{\{tag.name\}\} (e.g., \{\{user.name\}\}, \{\{user.employeeId\}\}, \{\{request.id\}\}). When the template is sent via a Notification or Workflow, the tags are replaced with actual values for each recipient. WhatsApp also requires you to provide example values for each variable at submission time, so Meta can review the template in context.

📘

Example values are mandatory for Meta review

When submitting a template with merge tags, you must provide example values (e.g., for \{\{user.name\}\}, an example like "John"). Templates submitted without example values will be rejected by Meta.

Template Approval Lifecycle

Every WhatsApp template goes through Meta approval before it can be used to send messages. The dashboard handles submission and status sync automatically.

  1. Draft → Pending: When you click "Save" on a new template, it is submitted to Infobip, which forwards it to Meta. The initial status is "Pending".
  2. Pending → Approved / Rejected: Meta reviews the template (usually within minutes to a few hours, occasionally up to 24 hours). The dashboard receives the status update via webhook and reflects it in the table.
  3. Approved: The template is now ready to be used in Notifications, Workflows, and other modules. Approved templates can still be edited (except for category), but edits trigger a new approval cycle.
  4. Rejected: Meta provides a rejection reason. Common reasons: missing example values for variables, mismatched category (e.g., promotional content in a Utility template), or non-compliant content. Edit and resubmit.

Live Preview

A high-fidelity mobile preview is rendered alongside the template editor at all times. It shows the template exactly as it would appear in WhatsApp on a recipient's device — including the green chat bubble, header media, body text formatting, footer, and CTA buttons. The preview updates in real time as you edit, so you can validate spacing, length, and formatting before submitting for approval.

Frequently Asked Questions

How long does Meta approval take?

Meta typically approves or rejects templates within a few minutes to a few hours, though it can occasionally take up to 24 hours during peak periods. The dashboard receives the status update via webhook and reflects it on the templates list — no manual refresh is needed.

Why was my template rejected?

Click into the rejected template to see the rejection reason from Meta. The most common causes are: (1) missing example values for merge-tag variables, (2) the content doesn't match the declared category (e.g., promotional content submitted under Utility), (3) policy violations such as misleading content or unsupported language. Fix the issue and resubmit.

Can I edit an approved template?

Yes — you can edit the body, header, footer, and CTA buttons of an approved template. However, you cannot change its category. Editing an approved template triggers a fresh Meta approval cycle, and the status returns to "Pending" until Meta re-approves it.

Can I send a free-form message instead of using a template?

Yes — but only within an active 24-hour session. Once a user has messaged your bot on WhatsApp, you have a 24-hour window to respond with free-form text, media, or quick replies without needing an approved template. Outside this window, you must use an approved template.

Why don't I see Header and Footer options for my Authentication template?

Authentication templates are restricted by Meta to a fixed payload structure designed specifically for OTP delivery. Headers, Footers, and arbitrary body content are not allowed — only the standard verification message format and a single token variable.

Can I use the same template across languages?

No. Each language variant of a template must be created and approved separately. For example, an English version and a Spanish version of the same announcement are two separate templates from Meta's perspective. Most modules in Leena AI automatically pick the right language variant based on the recipient's preferred language.