WhatsApp Business API & Cloud API

How to Create WhatsApp Message Templates

Learn how WhatsApp message templates are structured, how variables and media work, and what to prepare before using templates in your application.

Practical Guide7 min read

Step 1

What WhatsApp Message Templates Are

WhatsApp message templates are preconfigured message structures that businesses create in WhatsApp Manager and submit for review. They are designed for business initiated messaging and other situations where an approved template is required instead of a free form message.

A template has a name, language, category, body, and optional header, footer, or buttons. Your application does not send the draft text directly. It sends the approved template name and language together with values for any variables used by the template.

Implementation Checklist

  • Use the exact approved template name and language code in API requests.
  • Validate every dynamic value before building the template payload.
  • Keep template purpose and category aligned with the actual customer communication.
  • Test a simple approved template before adding media, dynamic URLs, or multiple variables.

Step 2

When Templates Are Required

Templates should be designed around a clear business purpose and stable variable structure. Decide what part of the message is fixed, what data is dynamic, and which actions the recipient needs before creating the template in WhatsApp Manager.

Keep names predictable and use a consistent internal naming convention. Your backend will refer to the template name and language exactly, so clear names make deployments, debugging, and CRM mappings easier.

Implementation Checklist

  • Use the exact approved template name and language code in API requests.
  • Validate every dynamic value before building the template payload.
  • Keep template purpose and category aligned with the actual customer communication.
  • Test a simple approved template before adding media, dynamic URLs, or multiple variables.

Step 3

Template Categories

Choose the template category based on the actual purpose of the message, not the category that seems easiest to approve. Meta uses template categories to distinguish marketing content from utility and authentication use cases, and a mismatch between purpose and category can create review or delivery problems.

Write the template around one clear job. Order updates, appointment reminders, account updates, offers, and verification codes have different user expectations. Keeping the purpose narrow also makes variable design and later campaign reporting easier.

Implementation Checklist

  • Use the exact approved template name and language code in API requests.
  • Validate every dynamic value before building the template payload.
  • Keep template purpose and category aligned with the actual customer communication.
  • Test a simple approved template before adding media, dynamic URLs, or multiple variables.

Step 4

Create a New Template

Templates should be designed around a clear business purpose and stable variable structure. Decide what part of the message is fixed, what data is dynamic, and which actions the recipient needs before creating the template in WhatsApp Manager.

Keep names predictable and use a consistent internal naming convention. Your backend will refer to the template name and language exactly, so clear names make deployments, debugging, and CRM mappings easier.

Implementation Checklist

  • Use the exact approved template name and language code in API requests.
  • Validate every dynamic value before building the template payload.
  • Keep template purpose and category aligned with the actual customer communication.
  • Test a simple approved template before adding media, dynamic URLs, or multiple variables.

Step 5

Add Variables

Add Variables should be decided while you are still designing the template, not after the API integration is finished. The approved template becomes a contract between WhatsApp Manager and your backend, so names, language, variables, headers, and buttons should all have a stable purpose.

Build the template from the recipient's point of view. Keep the message clear even when variables are replaced with real data, avoid hiding the purpose behind placeholders, and use only dynamic fields that your backend can reliably provide at send time.

Implementation Checklist

  • Use a predictable template naming convention that your backend can reference exactly.
  • Keep each variable tied to one well defined business field.
  • Preview the message with realistic sample values before submitting it.
  • After approval, record the exact template name and language used by the API integration.

Step 6

Add Header Content

Add Header Content should be decided while you are still designing the template, not after the API integration is finished. The approved template becomes a contract between WhatsApp Manager and your backend, so names, language, variables, headers, and buttons should all have a stable purpose.

Build the template from the recipient's point of view. Keep the message clear even when variables are replaced with real data, avoid hiding the purpose behind placeholders, and use only dynamic fields that your backend can reliably provide at send time.

Implementation Checklist

  • Use a predictable template naming convention that your backend can reference exactly.
  • Keep each variable tied to one well defined business field.
  • Preview the message with realistic sample values before submitting it.
  • After approval, record the exact template name and language used by the API integration.

Step 7

Add Buttons

Add Buttons should be decided while you are still designing the template, not after the API integration is finished. The approved template becomes a contract between WhatsApp Manager and your backend, so names, language, variables, headers, and buttons should all have a stable purpose.

Build the template from the recipient's point of view. Keep the message clear even when variables are replaced with real data, avoid hiding the purpose behind placeholders, and use only dynamic fields that your backend can reliably provide at send time.

Implementation Checklist

  • Use a predictable template naming convention that your backend can reference exactly.
  • Keep each variable tied to one well defined business field.
  • Preview the message with realistic sample values before submitting it.
  • After approval, record the exact template name and language used by the API integration.

Step 8

Choose Language

Choose Language should be decided while you are still designing the template, not after the API integration is finished. The approved template becomes a contract between WhatsApp Manager and your backend, so names, language, variables, headers, and buttons should all have a stable purpose.

Build the template from the recipient's point of view. Keep the message clear even when variables are replaced with real data, avoid hiding the purpose behind placeholders, and use only dynamic fields that your backend can reliably provide at send time.

Implementation Checklist

  • Use a predictable template naming convention that your backend can reference exactly.
  • Keep each variable tied to one well defined business field.
  • Preview the message with realistic sample values before submitting it.
  • After approval, record the exact template name and language used by the API integration.

Step 9

Submit For Review

Submit For Review should be decided while you are still designing the template, not after the API integration is finished. The approved template becomes a contract between WhatsApp Manager and your backend, so names, language, variables, headers, and buttons should all have a stable purpose.

Build the template from the recipient's point of view. Keep the message clear even when variables are replaced with real data, avoid hiding the purpose behind placeholders, and use only dynamic fields that your backend can reliably provide at send time.

Implementation Checklist

  • Use a predictable template naming convention that your backend can reference exactly.
  • Keep each variable tied to one well defined business field.
  • Preview the message with realistic sample values before submitting it.
  • After approval, record the exact template name and language used by the API integration.

Step 10

Understand Template Status

A template moves through review and lifecycle states in WhatsApp Manager. Your application should only try to send a template that is available for the target language and usable for the intended business account.

Before blaming your API code, check the template's current status, exact name, and language in WhatsApp Manager. A technically correct request can still fail when the referenced template is not available in the expected state.

Implementation Checklist

  • Use the exact approved template name and language code in API requests.
  • Validate every dynamic value before building the template payload.
  • Keep template purpose and category aligned with the actual customer communication.
  • Test a simple approved template before adding media, dynamic URLs, or multiple variables.

Step 11

Common Rejection Reasons

Common Rejection Reasons should be decided while you are still designing the template, not after the API integration is finished. The approved template becomes a contract between WhatsApp Manager and your backend, so names, language, variables, headers, and buttons should all have a stable purpose.

Build the template from the recipient's point of view. Keep the message clear even when variables are replaced with real data, avoid hiding the purpose behind placeholders, and use only dynamic fields that your backend can reliably provide at send time.

Implementation Checklist

  • Use a predictable template naming convention that your backend can reference exactly.
  • Keep each variable tied to one well defined business field.
  • Preview the message with realistic sample values before submitting it.
  • After approval, record the exact template name and language used by the API integration.

Need Implementation Help?

Need Help With Your WhatsApp or Automation Project?

If you need help building, integrating, troubleshooting, or improving a production system, you can discuss the project with me directly.