Before you begin creating your WhatsApp message templates and proactively reach out to your customers, first make sure you learn more about getting started with WhatsApp message templates. We will now go over the technical aspects of setting up WhatsApp message templates.


How to create WhatsApp message templates and get them approved?

To create WhatsApp message templates, you will need to 

  1. Set up your templates according to the Message Template Guidelines. With these pointers in mind, draft your WhatsApp message templates, put them on a spreadsheet, and send them to us. 
  2. We will submit these templates with WhatsApp for approval. 
  3. While we wait for this, you can begin setting up the APIs from your end to use these message templates. In these APIs that you will define how your message templates will be used, such as the values for each variable you use in your APIs.

Step 1: Share your Message Template with us

Start working out your message templates keeping in mind the template guidelines from WhatsApp. You need to share the message templates as a document/spreadsheet. Make sure to include the template names, template content, template languages, and template categories. This should be in a tabular format, as shown in the example below.

Example template 

Template Name

English Content

Template Category

Attachment Type
(If any)


Hi {{1}}, your order no. {{2}} has been placed. To track your order, please visit {{3}}.

Alert Update

No Attachment


Hi {{1}}, we apologize for the inconvenience caused. We have initiated a refund of {{2}} for order {{3}}. Please find your invoice in the document attached.

Payment Update



Hi {{1}}! We have an update on your issue about {{2}}. If you would like to continue having this conversation, please reply with "YES".

Issue Resolution

No Attachment

Hi {{1}}! Your travel itinerary for trip {{2}} is now ready. Please refer to the attached image for more info.
Alert Update


Thanks for purchasing {{1}}. If you need assistance to activate your account, please send us a message or refer to the self-service video available below.

Account Update

Dear {{1}},

Your order # {{2}} is ready to be shipped by the seller. The estimated delivery date for your order is June 10th, 2021.

Button 1: Pay online

Button 2: Change address

Button 3: Cancel order

shipping update


  • In these examples, the variables are {{1}}, {{2}}, and {{3}}. Note how they are all in the same format, with a numerical placeholder starting at {{1}} and with two sets of curly braces.

  • If you would like to display the same variable twice, please use the same label for both instances.

  • For templates with attachments, you need not share the content that you are going to attach. It will be sufficient if the attachment type is mentioned in the table.

  • You can also mention using buttons for quick replies and calls-to-action. Learn more about using interactive messages here.

Step 2: Submit the Templates for approval to WhatsApp

We will submit these templates to WhatsApp for approval. While we wait for this, you can begin setting up the API from your end. Click here for the API documentation.

Once a message template is approved, we will share the template id and the namespace. These are unique identifiers for your WhatsApp account. You can start using the API with the unique identifiers, and to access the API, you should generate an API token from your Freshchat account.

While you can start building your API now, you can only begin testing your APIs only after the message template is approved.

Step 3: Building your API and sending the message template

Your customer experience with these messages is defined by how you set up your APIs. These include how variables are dynamically filled or what your agents see of this interaction. This is defined based on the attributes you use for your APIs.

Example: You need to send the following WhatsApp message template proactively to your customer after making a payment to inform them of the post-payment process. 

When triggering this message, you will need to configure the API with the request payload as follows. Notice the rich_template_data.body has the value for the {{1}} variable:

"from": {
"phone_number": "+919999999999"
"provider": "whatsapp",
"to": {
"phone_number": "+919999999999"
"data": {
"message_template": {
"template_name": "hello_world",
"language": {
"policy": "deterministic",
"code": "en_US"
"rich_template_data": {
"header": {
"type": "video",
"media_url": ""
"body": {
"params": [
{"data": "John Doe"}

  • In this example, the variable {{1}} will be replaced by "John Doe" from rich_template_data.body. If you need to use a dynamic placeholder, use a variable instead of "John Doe".

  • If you're using multiple placeholders, include many "data" parameters under "rich_template_data" as follows.

For the following message template

"Hi {{1}}, your order no. {{2}} has been placed"

the rich_template_data.body will be:

"params": [
{"data": "John Doe"},
{"data": "IDxyz"}

and the templated message that is received will be 

"Hi John Doe, your order no. IDxyz has been placed."

Offering context to your agents

You can even choose to set up your APIs so that you can help your agents with more context.  When you set up your API, the storage attribute can be used to help your agents identify if your customers have replied to a templated message or if they reached out on their own. Two values that can be passed to the storage attribute:

  • "storage":"None"
    This will not reconstruct the templated message but will show "Proactive message was sent to the user" in the conversation. This can be used if the customer is expected to share any confidential information.

  • "storage":"conversation"
    This will reconstruct your templated message and any applicable replies to help your agents with enough context in the agent view.

    • Customer view:

    • Reconstructed message in the agent view

There are three ways to send templated messages when you use Freshchat:

  1. Within your product/website code
    Depending on how you've set up your website, you can directly call the API you have set up and send the templated messages, as seen in the examples above.

  2. By using the API library in the Freshchat bot builder
    You can configure the API action in the API library of the Freshchat bot builder. Learn more about configuring API actions in the bot builder.

  3. With the WhatsApp Proactive Messaging custom app
    With this app, your agents can send templated messages to your customers directly from the agent inbox. Learn more about using the WhatsApp proactive messaging app.


For Template messaging, there are restrictions imposed by WhatsApp that regulates outreach through pre-approved message templates. Each business starts off in Tier 1, which allows you to reach out to 1,000 unique phone numbers in a rolling 24-hour window. To know more about this, click here.