WhatsApp API Platform

Templates

Create and manage WhatsApp message templates — types, categories, variables, approval process, and best practices.

WhatsApp requires businesses to use pre-approved message templates when initiating conversations. Templates define the structure of your message — text, media headers, buttons, and variables. Once Meta approves a template, you can use it in Campaigns and Chatbot flows.

Templates page showing a list of templates with name, category, status (Approved/Pending/Rejected), language, and last updated date

In the app: Dashboard → Campaigns → Templates


Why Templates?

WhatsApp has a 24-hour messaging window rule: you can only send free-form messages to a customer within 24 hours of their last message. To start a new conversation (or re-engage after 24 hours), you must use an approved template. This ensures businesses follow WhatsApp's quality and anti-spam guidelines.


Template Types

Standard Templates

The most common type. Used for text messages, notifications, promotions, and transactional updates.

Structure:

ComponentRequiredOptions
HeaderOptionalNone, Text, Image, Video, Document, or Location
BodyRequiredMain message text with optional variables
FooterOptionalShort text (e.g., "Reply STOP to unsubscribe")
ButtonsOptionalQuick Reply, URL (with optional variable), or Call — up to 3 buttons

Standard template editor showing header type selector, body text area with variable buttons, footer field, and button configuration


Template Categories

Choose the right category when creating a template — it affects approval rules and pricing:

CategoryUse forExamples
MarketingPromotions, offers, re-engagement"Flash sale this weekend!", "We miss you — here's 20% off"
UtilityTransactional, account updates"Your order #{{1}} has shipped", "Payment received: ₹{{1}}"
AuthenticationOTP, verification codes"Your verification code is {{1}}"

Category impacts cost

Marketing templates typically cost more per message than Utility or Authentication templates. Choose the right category to optimize your messaging spend.


Creating a Standard Template

Steps: Basic InformationHeaderBodyFooterButtonsSubmit for Approval.

Basic Information

  • Name — Lowercase letters, numbers, and underscores only (e.g., welcome_message, order_shipped). Cannot be changed after creation.
  • Language — The language of your template. You can create the same template in multiple languages.
  • Category — Marketing, Utility, or Authentication.
  • Template type — Standard or Carousel (Carousel only when category is Marketing).

Template creation basic info showing name input, language dropdown, and category selector

Meta official rules & validations (Basic Information):

FieldMeta ruleImportant
NameLowercase letters, numbers, underscores only; no spaces or special charactersMax 512 characters. Name cannot be changed after creation.
LanguageMust match the language of the template contentRequired. Same template can exist in multiple languages.
CategoryMarketing, Utility, or AuthenticationRequired. Determines approval criteria and pricing. Carousel only with Marketing.

Header (optional)

Choose the header type:

  • None — No header
  • Text — A short text headline (supports variables)
  • Image / Video / Document — A media file from your Media Library or uploaded directly
  • Location — A map pin (latitude/longitude, optional name and address)

Template header configuration with type selector and preview panel showing how the header appears in WhatsApp

Meta official rules & validations (Header):

Header typeMeta ruleImportant
TextMax 60 charactersSupports exactly 1 variable. No duplicate variables. Provide sample value for variable — required for Meta review.
Image / Video / DocumentFile chosen at send timeImage max 5 MB; Video max 16 MB; Document max 100 MB (WhatsApp limits).
LocationLatitude and longitudeOptional name and address. Supported for Utility and Marketing.

From Meta

Variables cannot be at the very start or end of text. Variable numbers must be sequential. No wa.me or direct WhatsApp links in template content.

Body

Write your main message text. Use variables for personalization:

  • Variables use the format {{1}}, {{2}}, etc. (positional)
  • You must provide sample values for each variable — Meta uses these during the review process
  • Keep the body clear, professional, and within WhatsApp's character limits

Template body editor with text area, variable insert buttons, and sample value fields shown below each variable

Meta official rules & validations (Body):

Meta ruleDetail
RequiredBody is the only required component in a template.
Max length1024 characters.
VariablesUse {{1}}, {{2}}, etc. No duplicate variables; numbers must be sequential. Variables cannot be adjacent (e.g. not {{1}}{{2}} with nothing between).
FormattingNo newlines, tabs, or more than four consecutive spaces in a row (per Meta guidelines).
Sample valuesYou must provide example values for every variable — Meta uses these during review.

Variable best practice

Use meaningful sample values (e.g., "John" for a name variable, "₹1,500" for an amount) rather than generic placeholders. Good samples help Meta understand your template's intent and speed up approval.

Add a short footer text. Common uses:

  • Opt-out instruction: "Reply STOP to unsubscribe"
  • Branding: "Sent via YourBrand"
  • Disclaimer text

Meta official rules & validations (Footer):

Meta ruleDetail
OptionalFooter can be omitted.
Max length60 characters.
ContentText only — no variables allowed in footer. Use for opt-out text (e.g. "Reply STOP to unsubscribe"), branding, or disclaimers.

Buttons (optional)

Add up to 10 buttons total, with type limits: Quick Reply (max 10), URL (max 2), Phone Number (max 1), Copy Code (max 1).

Button typeWhat it doesExample
Quick ReplyCustomer taps to send a preset reply"Yes, I'm interested", "No thanks"
URLOpens a link (supports variables in the URL)"View order: https://example.com/order/{{1}}"
Phone NumberOpens the phone dialer with a preset number"Call support: +91-XXXXXXXXXX"
Copy CodeCopies a code to clipboard"Copy code"

Template button configuration showing button type dropdown, label input, and URL/phone fields

Meta official rules & validations (Buttons):

Meta ruleDetail
Button textRequired. Max 25 characters per button.
URLRequired for URL buttons. No duplicate variables in URL; provide sample values for each URL variable. No direct wa.me links.
PhoneRequired for Call buttons. Full number with country code.
LimitsQuick Reply (up to 10), URL (up to 2), Phone Number (1), Copy Code (1). Max 10 buttons total. Templates with 4+ buttons may have limited desktop display.

Submit for Approval

Review your template preview and submit. Meta reviews the template and responds with one of:

  • Approved — Ready to use in campaigns and chatbots
  • Rejected — Includes a rejection reason. Edit and resubmit.
  • Pending — Still under review

Carousel steps: Basic InformationBodyCard (Header + Cards). Carousel is only available when Category is Marketing.

Same fields as Standard. Template type must be Carousel; Category must be Marketing. Name, language, and category are required.

Carousel template — Basic Information step with Template type set to Carousel and Category Marketing

Meta official rules & validations (Carousel — Basic Information):

Meta ruleDetail
Template typeCarousel is only available when Category = Marketing.
CategoryMust be Marketing for carousel templates.

Introductory text shown above the carousel cards. This is the main message body; cards appear below it.

Carousel template — Body step with introductory message text and variable example fields

Meta official rules & validations (Carousel — Body):

Meta ruleDetail
RequiredIntroductory body text is required; it appears above the carousel cards.
Max length1024 characters.
VariablesNo duplicate variables; sequential numbering; provide sample values for each variable for Meta review.

Card (Header + Cards)

  • Header (per card) — Image or Video only. Optional. Same choice applies to all cards.
  • Cards — Add 2–10 cards. Each card has:
    • Body — Required text (max 1024 characters).
    • Buttons — At least one button per card; max 2 buttons per card. Types: Quick Reply, URL, Phone Number. Button structure (types) is set on the first card and mirrored to all other cards; only labels and URLs/phone numbers differ per card.

Use Add Card to create cards, Copy to duplicate a card, and Previous/Next or the dots to switch between cards.

Carousel template — Card step showing header type (Image/Video), card list with body and buttons, and Add Card / Copy / Delete

Carousel template — Single card editor with body text, button type, button text, URL/phone fields, and variable examples

Meta official rules & validations (Carousel — Card):

Meta ruleDetail
HeaderOptional. Image or Video only; same type for all cards. Image: PNG/JPEG; Video: MP4. All cards use the same header type.
Number of cards2–10 cards per carousel (Meta requirement).
Card bodyRequired per card. Max 1024 characters per card body.
ButtonsAt least 1, max 2 buttons per card. Types: Quick Reply, URL, Phone Number. All cards must have the same button structure (same types in same order).
Button textRequired. Max 25 characters per button.
URLIf button type is URL: URL required; provide sample values for any variables in the URL.
PhoneIf button type is Phone Number: full number with country code required.

Carousel button structure (Meta)

The first card defines which button types exist. All other cards get the same button types; you only change label, URL, or phone number per card. Content must comply with WhatsApp Business and Commerce policies.

Review the WhatsApp preview and click Create Template. Meta will approve, reject, or leave the template pending. All carousel templates must be approved by WhatsApp before use.


Approval Process

StageTypical timingWhat to do
SubmittedInstantWait for Meta review
Under reviewMinutes to 24 hoursNo action needed
ApprovedTemplate is ready to use
RejectedRead the rejection reason, edit, and resubmit

Common rejection reasons

  • Unclear variable usage — Sample values don't make sense or are missing
  • Policy violation — Content violates WhatsApp Commerce or Business policies
  • Wrong category — Template classified as Utility but contains promotional content
  • Formatting issues — Special characters, excessive caps, or misleading buttons

Syncing Templates from Meta

If you've created templates directly in the Meta Business Suite, you can sync them into the platform:

  1. Go to Templates and click Sync Templates
  2. The platform fetches all templates from your WABA
  3. Synced templates appear in your list with their current approval status

This is useful when migrating from another provider or when templates were created outside the platform.


Naming Conventions

Consistent naming helps you find templates quickly as your library grows:

ConventionExample
purpose_audiencewelcome_new_customers
category_namemarketing_flash_sale
flow_steponboarding_step1_greeting

Remember

Template names are permanent — you can't rename them after creation. Pick a clear, descriptive name upfront.


Best Practices

How is this guide?

On this page