Learn how you can create and manage WhatsApp message templates.
WhatsApp Templates
Templates need to be registered and approved before they can be utilised by leveraging template messages to open marketing, utility, and authentication conversations with customers. Unlike free-form messages, template messages are the only type of message that can be sent to customers who are yet to message you, or who have not sent you a message in the last 24 hours.
In addition, templates may be disabled automatically based on customer feedback and engagement. Once disabled, a template cannot be sent in a template message until its quality rating has improved or it no longer violates WhatsApp business or commerce policies.
WhatsApp Template registration Best Practices
- It is important to follow WhatsApp's guidelines when submitting requests for template message approvals to avoid unintended rejections. Please follow these guidelines when registering templates for WhatsApp. Refer to this page for understanding different template category use-cases.
- You don't need to manually refresh WhatsApp template registration status. The status will be refreshed automatically on the UI as soon as WhatsApp provides an update. You can view the reason for rejection in case a WhatsApp template is rejected.
- Any edits made to the content of a message template from the WhatsApp Manager will not be synced within the platform. Please create a new template from within the platform to make use of template update requirement.
- Name of a template that was deleted in the past 30 days cannot be re-used for registering new template.
- Adding a sample to your template submission increases the chances for approval substantially.
Configuring Marketing and Utility Templates
To configure a Marketing and Utility template:
- Go to Tools > Templates.
- Click Add New Template.
- Enter a Name for the template. Only lower case letters and underscores are allowed in this field. Do not use spaces in the template name.
- Select the Channel as WhatsApp.
- Select the one of the two template options below for Category:
- Marketing: Send promotions or information about your products, services, or business.
- Utility: Send messages about an existing order or account.
- Select the required Language. The drop-down list contains all the languages that Facebook/WhatsApp supports.
- Select the WABA ID of the WhatsApp Business Account that you want to associate this template with from the drop-down list.
- Select the Header type. This is an optional step.
Provide the header text if you select Text as the type for Header. You can use at most one variable in the header text.
Select Image, Video or Document if you select Media as the Header type. In the template, you just indicate if it is an image, video or document that you would like to send in the template. The actual image, video or document is to be configured in the WhatsApp send node.
Input Parameters
Input parameters (dynamic content or variables) in templates cannot include newline characters or more than 4 consecutive spaces.
A template with a text header appears as shown below:
Here is a preview of the template that contains an image in the header, variables in the message body, and a footer:
This is a preview of the template that contains a document in the header, variables in the message body, and a footer:
- Enter the appropriate message in the Message Body. Use the formatting icons to format the text within the message. Currently, you can format the text as follows:
- Bold
- Italics
- Strikethrough
Monospace
.
You can also add variables in the message body. You will need to provide values for the configured variables while using the WhatsApp send node within the flow builder.
Variable name and its usage
You can click + Add Variable to include a variable to Header (text type), Message Body or Call-to-Action Button. By default the name of the variable will be $(variable1) however it can be customised as needed. Make sure to specify all the variable names as keys within the 'parameters' object of templates Messaging API JSON payload.
- Provide the Footer text. This is an optional step.
- In the Buttons section, select the required type of button. This is an optional step.
The buttons enable interactivity in WhatsApp messages.
- Call-To-Action (CTA) - use this button to configure a CTA button to direct user to their default dialer app to contact business number or to redirect them to website. You must configure the phone number to which the direct call is placed or the URL of the website you want to direct the users. You can only configure a maximum of two CTA buttons.
The type of action can be either Visit Website or Call Phone Number. For the Visit Website option, you need to specify the button text and the URL of the website. The URL can be dynamic or static. A placeholder is added as an extension of the URL in the case of a dynamic URL. You can add variables to the URL for a dynamic URL. For the Call Phone Number option, specify the button text and then the phone number. For this type of action, you can have a maximum of one button type of each type per message, i.e, one Call Phone Number button and one Visit Website button. - Quick Replies (QR) - use this to configure Button text of quick reply (QR) buttons. You can use a maximum of three QR buttons.
Opt-out quick reply
We recommend businesses to keep an opt-out button in their templates. Allowing customers to request to opt out of template messages can help reduce blocks from customers and increase phone number quality rating. Learn more.
The following is a preview of a message with CTA buttons:
The following is a preview of a message with QR buttons:
A message with CTA buttons appears as follows:
A message with QR buttons appears as follows:
Interactive Buttons
Within a template, you can configure either CTA buttons or QR buttons, but not a combination of these two types.
{
"appid":"a_160730369477132030",
"deliverychannel":"whatsapp",
"message":{
"template":"1024406451379326",
"parameters":{
"variable1":{
"type":"url",
"payload":"<<url_extension>>"
}
}
},
"destination":[
{
"waid":[
"9199xxxxxxxx"
]
}
]
}
{
"appid":"a_161007122569873440",
"deliverychannel":"whatsapp",
"message":{
"template":"244219340449037",
"parameters":{
"quickReply":[
{
"button_text":"Button 1",
"payload":"<<button 1 payload>>"
},
{
"button_text":"Button 2",
"payload":"<<button 2 payload>>"
},
{
"button_text":"Button 3",
"payload":"<<button 3 payload>>"
}
]
}
},
"destination":[
{
"waid":[
"9199xxxxxxxx"
]
}
]
}
- Click Configure Sample Content. This button enables you to send sample data to WhatsApp making it easier to identify the type of data being sent using this template. This button is enabled only when you have at least one variable is added in the header text, message body or CTA button or if the header is Media. Using this button you can also preview the sample content.
Note
If you want to include variables or media (optional), you must add a content example for your template by clicking the Configure Sample Content button.
- Click Save. When you click the Save button, the template is submitted for approval to Facebook/WhatsApp. Only the approved templates appear under the list of available templates on the Templates page and also within the WhatsApp send node.
Using WhatsApp Templates in Messaging API v1
If you have set-up a WhatsApp Template from within Tools ->Templates section, you need to use Template message type when trying to utilise these templates in the messaging API.
Character Limitation for Templates
The character limitation for a template is 1024 characters, this includes the message content within the header, body, footer and buttons.
Limitation on Marketing Messages
WhatsApp have enforced following limitations on Marketing messages reduce negative engagements like NFR, archive, mute and block rates.
- WhatsApp are limiting the number of marketing template messages a person can receive from all business in a given period of time, starting with a small number of conversations that are less likely to be read. This limit is based on the number of marketing template messages that a WhatsApp user has already received from businesses and may not be related to your specific business.
- Starting August 29th 2024, WhatsApp businesses globally will be limited to sending a maximum of two marketing template messages in a 24 hour conversation window without the customer responding. If the customer responds, an additional marketing template is permitted and free-form messages can be used to continue the conversation.
Template Category Change
Starting from July 2024, on the 1st of every month, Meta will be updating the category of an approved message template if they determine that its current category is not accurate as per the template category guidelines. These changes will ensure that approved templates are accurately categorised as per the template category guidelines. This will apply to marketing and utility templates, and changes can be in both directions (utility template updated to marketing and vice-versa).
If you think that a template's new category is inconsistent with Meta’s guidelines, reach out to Support Team using the details mentioned in the ‘Contact Support’ section within your Webex Connect account and raise a request.
Template Pacing
Template pacing is a mechanism that allows time for your WhatsApp end-customers to provide early feedback on templates. WhatsApp identifies and pauses templates that have received poor feedback or engagement, this will allow you enough time to adjust template content before they are sent to too many customers, thereby reducing the likelihood of negative feedback impacting your business. Template pacing is valid for marketing and utility templates. Please find more details here.
Configuring Authentication Templates
If your business mobile app offers users the option to receive one-time passwords or verification codes via WhatsApp, you should use an authentication template. Authentication templates can be configured using two code delivery methods:
- One-tap autofill authentication templates: allow you to send a one-time password or code along with a one-tap autofill button to your users. When a WhatsApp user taps the autofill button, the WhatsApp client triggers an activity which opens your app and delivers it the password or code.
- Copy code authentication templates: allow you to send a one-time password or code along with a copy code button to your WhatsApp users. When the user taps the copy code button, the WhatsApp copies the password or code to the device's clipboard. The user can then switch to your business app and paste the password or code into your business app.
To configure an Authentication template:
- Go to Tools > Templates.
- Click Add New Template.
- Enter a Name for the template. Only lower case letters and underscores are allowed in this field. Do not use spaces in the template name.
- Select the Channel as WhatsApp.
- Select the Authentication template for Category.
- Select the WABA ID of the WhatsApp Business Account that you want to associate this template with from the drop-down list.
- Select the required Language. The drop-down list contains all the languages that Facebook/WhatsApp supports.
-
Under Code Delivery Configuration, select one of the two options:
Auto-fill: Selecting this option will ensure that the code is sent to your app when a customer taps the button.
Field Description Example Button Text for Auto-Fill (Optional) One-tap Auto-Fill button label text. The maximum character limit is 25 characters.
If the values for Button Text are not provided, it will take the values based on the language selected.Autofill Button Text for Copy Code (Optional) Copy Code button label text. The authentication template message will display a Copy Code button with this text, if the message fails the eligibility check. The maximum character limit is 25 characters.
If the values for Button Text are not provided, it will take the values based on the language selected.Copy Code Package Name (Mandatory) Your Android app's package name. The package name in the message (defined in the package_name property in the components array upon template creation) should match the package name set on the intent. The match is determined through the 'getCreatorPackage' method called in the 'PendingIntent' object provided by your application. com.example.myapplication App Signature Hash (Mandatory) Your app signing key hash. It should match with your installed app's signing key hash. K8a%2FAINcGX7
Copy-Code Selecting this option will allow WhatsApp customer to copy and paste the code into your app.
Field | Description | Example |
---|---|---|
Button Text | (Optional) Copy Code button label text. The authentication template message will display a Copy Code button with this text if the message fails the eligibility check. The maximum character limit is 25 characters. If the values for the Button Text are not provided, it will take the values based on the language selected. | Copy Code |
- Under Additional Content, optionally configure one or more of the following:
- Add security recommendation: Appends the message body with a security recommendation.
- Add expiry time for the code: Adds a footer to your message conveying the expiry time.
- Lock this template to prevent other users to make changes: Adds selective edit rights to the template.
- Click Save.
Please note that you will not be able to Edit a WhatsApp Template after it has been saved (i.e., submitted for approval to WhatsApp). If you want to Lock the template (to stop other users from deleting your template), please use Lock option under the Actions dropdown.
Eligibility Check for Authentication Templates
WhatsApp performs the following checks when it receives an authentication template message. If any check fails, the one-tap autofill button will be replaced with a copy code button.
- The handshake was initiated no more than 10 minutes ago (or no more than the number of minutes indicated by the template's code_expiration_minutes property, if present).
- The package name in the message (defined in the package_name property in the components array upon template creation) matches the package name set on the intent. The match is determined through the getCreatorPackage method called in the PendingIntent object provided by your application.
- The app signing key hash in the message (defined in the signature_hash property in the components array upon template creation) matches your installed app's signing key hash.
- The message includes the one-tap autofill button text.
- Your app has defined an activity to receive the password or code.
Android Notifications
Android notifications indicating receipt of a WhatsApp authentication template message will only appear on the user's Android device if:
- The user is logged into the WhatsApp app or WhatsApp Business app with the phone number (account) that the message was sent to.
- The user is logged into your app.
- Android OS is KitKat (4.4, API 19) or above.
- Show notifications is enabled (Settings > Notifications) in the WhatsApp app or WhatsApp Business app.
- Device level notification is enabled for the WhatsApp app or WhatsApp Business app.
- Prior message threads in the WhatsApp app or WhatsApp Business app between the user and your business are not muted.
Linked device security for authentication messages
Note that as of Oct 7th, 2024, WhatsApp sends authentication messages to a user’s primary WhatsApp device alone. Authentication messages are masked on all other linked WhatsApp devices, prompting recipients to view the authentication message on their primary device. This has been done by WhatsApp as a security measure.
Updated 20 days ago