Using WhatsApp template messages to bypass the 24-hour rule

What's my plan?

All Suites | Team, Growth, Professional, Enterprise, or Enterprise Plus

Support with | Social Messaging add-on

Customers without Zendesk Suite must have Support and Chat with the Social Messaging add-on to use this feature.

If you want to bypass the 24-hour rule by WhatsApp, you can send WhatsApp template messages to your end users, as long as they have already reached out to your business by opening a ticket via WhatsApp.

Before you can set this up, you must have at least one phone number connected to the WhatsApp Business API. If you haven't already done so, complete the process to add WhatsApp channels to the Zendesk Agent workspace.

This article covers the following topics:

About the 24-hour rule

Creating and submitting WhatsApp template messages via the WhatsApp Business account UI

Using shorthand syntax to send WhatsApp template messages

Using Sunshine Conversations API to send WhatsApp template messages

Troubleshooting WhatsApp templates

About the 24-hour rule

The starting point for the 24-hour window is when the end user sent the message from WhatsApp. It’s not when the message was received by Support and the ticket was created, for example. If you fail to reply within the 24-hour window, you can’t reply to the end user until the end user sends another message, reopening the 24-hour window. The 24-hour period restarts every time the end user sends a message.

If you reply after 24 hours, the reply is still added to the ticket and appears in the ticket interface, but the end user doesn’t actually receive the reply (meaning a reply in WhatsApp or an email ticket notification). Error messages about the failure appear in the upper-right portion of the agent interface and in the Events log.

Messages sent automatically through the auto-responder meet the criteria for WhatsApp's 24-hour response times.

Creating and submitting WhatsApp template messages via the WhatsApp business account UI

After you've connected your phone number to the WhatsApp Business API, you can create and submit WhatsApp template messages within the WhatsApp Business account UI. For more information about the process, see Create message templates for your WhatsApp Business account in the Meta documentation.

If you submit a WhatsApp template message with a variable, parameter, and/or media, you must submit the actual content as a sample, otherwise WhatsApp will reject it.

The sample of a variable must be clear, general, and understood by all, for example:
“Hi {{1}},
Welcome to the {{2}}, we wish you a great stay. If you need anything, feel free to reach out to {{3}} and they’ll be happy to assist you.
Have a great day,”

In this example, the variables are:

{{1}} The end user name

{{2}} The hotel name

{{3}} The team name

WhatsApp can take anywhere from one minute - five business days to provide an update.
Important: Only Meta can approve or reject WhatsApp template messages, Zendesk does not control this approval process.

Using shorthand syntax to send WhatsApp template messages

Important: WhatsApp has recently deprecated the namespace parameter for new accounts. If you do not have a namespace, use an empty string in the parameter: namespace=[[""]].

Use shorthand syntax to bypass the 24-hour rule by WhatsApp when a WhatsApp end user has reached out to your WhatsApp Business number and a ticket has been created.
Note: You cannot use shorthand syntax to send proactive WhatsApp templates to end users who have never reached out to your business. You need to use the Sunshine Conversations Notification API for this.

Bypassing the WhatsApp 24 hour rule

If you can't reply to a message sent via WhatsApp within 24 hours, consider bypassing the WhatsApp 24 hour rule so you can still reply later.

To bypass the WhatsApp 24 hour rule

An end user has messaged your business and opened a ticket.

Use Sunshine Conversations shorthand syntax (see Sunshine conversations WhatsApp).

After the WhatsApp template message is approved, create a macro to send the WhatsApp template message to end users who have already opened a ticket.
Here are two examples of how to create the content of the macro:
&((namespace=[[namespace]] template=[[template]] fallback=[[text_fallback]] language=[[language]] body_text=[[param_1]]))&

or

&((
namespace=[[namespace]]
template=[[template]]
fallback=[[fallback]]
language=[[language]]
body_text=[[param_1]]
))&

namespace - the unique ID for your WhatsApp Business account. You can find your namespace on the toolbar of your WhatsApp Business account by clicking Namespace.

template - enter a name for your template.

language - for the language code, see Supported languages in the Meta for developers documentation.

Thoroughly test the functionality of each WhatsApp template message macro, before deploying to production.

Note: WhatsApp template message content is not reconstructed within the ticket after you have sent it (it appears only as shorthand syntax to the agent). However, your end users will see the content of the WhatsApp template message.

Testing your macro functionality

To test text without variables

Create a macro.

Under Actions, paste the following example in the Rich content field and insert the relevant information for your namespace, template, fallback text, and language.
&((namespace=[[namespace]] template=[[template]] fallback=[[text_fallback]] language=[[language]]))&

To test text with variables

Create a macro.

Under Actions, paste the following example in the Rich content field and insert the relevant information for your namespace, template, fallback text, language, and for example the ticket requester’s first name.
&((namespace=[[namespace]] template=[[template]] fallback=[[text_fallback]] language=[[language]] body_text=[[ticket.requester.first_name]]))&

To test text with variables and a media image

Create a macro.

Under Actions, paste the following example in the Rich content field and insert the relevant information for your namespace, template, fallback text, language, and for example the URL location of the header image.
&((namespace=[[namespace]] template=[[template]] fallback=[[text_fallback]] language=[[language]] header_image=[[image_location]]
body_text=[[param_1]] body_text=[[param_2]]))&

To test text with variables, media, and buttons

Create a macro.

Under Actions, paste the following example in the Rich content field and insert the relevant information for your namespace, template, fallback text, language, and for example the URL location of the header image, two different types of body text, the button index, and the URL location of the button.
&((namespace=[[namespace]] template=[[two_variable_media_buttons]] fallback=[[text_fallback]] language=[[language]]
header_document=[[document_location]] body_text=[[param_1]] body_text=[[param_2]] button_index=[[1]] button_url=[[url]]))&

Using Sunshine conversations API to send WhatsApp template messages

If the end user has not yet messaged your business, you can still send an outbound message to them by using the Notifications API feature, see the How to start conversations section of Sunshine Conversations: WhatsApp. You or your Engineering team can do this by using the Sunshine Conversations API.

Troubleshooting WhatsApp templates

WhatsApp rejected my WhatsApp template

To find out why your template was rejected, click the template. Depending on the reason for rejection, you can either edit the body, the variable, and the media of your WhatsApp template message, or appeal the decision. However, if your template keeps being rejected, you must create a new one with a new name and content. For more information, see Message template guidelines in the Meta for developers documentation.