➕ Bypassing the 24-hour rule for WhatsApp in Zendesk

➕ Bypassing the 24-hour rule for WhatsApp in Zendesk

In this article we'll show you how to bypass the 24-hour WhatsApp limit in Zendesk by leveraging the included Sunshine Conversations API.

One of the benefits of Zendesk's Omnichannel approach is that you can connect with customers across a myriad of channels from one centralised tool. Where Zendesk used to be focussed mainly on email, and later Facebook and Twitter, Zendesk Messaging now allows you to interact with customers across web, Facebook, Instagram, Twitter and WhatsApp easily.

Even though Zendesk provides a unified experience for your agents, and a native experience for your end-users on whatever platform they decide to use, some channels have specific limitations defined by their vendor to prevent spam or other bad behaviour on their platform.

WhatsApp for example has a 24-hour rule which prevents business integrations from replying to customers that haven't interacted with your business for over 24 hours. Example: If a customer sends a ticket at 10AM, you need to make sure your agent replies AND you get a reply from the customer before 10AM the next day. If those 24h pass without a customer reply to your agents' remark, you can't send any reminder or more info to that customer anymore.

Working with WhatsApp tickets and the 24-hour rule
What’s my plan? If your WhatsApp account has been added to Zendesk Support, you can communicate with end users about support requests using…

Bypassing the 24-hour rule

Luckily, there is a way to work around this limitation by leveraging the WhatsApp Business API and Notification feature. If you use the WhatsApp Business API you can send outbound messages to customers regardless of the expired time.

If a customer replies, their messages gets added to your existing conversation, and your agents can reply to them within a new 24h window.

Sending Outbound notifications to WhatsApp users requires you to have a Sunshine Conversations license. This used to be an additional add-on you needed to buy for your Zendesk environment,

Sunshine Conversations in Zendesk Suite

Starting this month every Zendesk Professional or Enterprise Suite user gets access to Sunshine Conversations. You get full Platform and API access with an included limit of 1,000 Monthly Active Users (MAU) and 1,000 outbound notifications.

For larger use cases you can purchase additional users and notifications.

About Sunshine Conversations platform access and support
What’s my plan? Sunshine Conversations is a messaging platform that unlocks the conversations API for customers who want advanced customizations. It is designed to help businesses build interactiv…

What's nice about this is that, where previously there was no way to work around the 24-hour limit, now every Zendesk customer can solve this limitation for free and native within Zendesk.

How does this work?

The setup is rather easy:

  1. A customer contacts you over WhatsApp
  2. Their conversation gets picked up by a Zendesk Conversation Bot to allow for self service and ticket deflection
  3. If needed, the Bot forwards the message to an Agent
  4. The Agent replies to the ticket and puts the ticket on Pending once the customer stops interacting
  5. An automation monitors the WhatsApp conversations and sends out a reminder to customers after 24 hours
  6. If the customer reacts before the 24-hour limit, or reacts to the outbound message, the conversation re-opens and we have a new 24h window to handle the conversation.

Requirements

In order to enable automatic notifications to your customers there are a few requirements. Most of these are probably already setup when you first enabled WhatsApp for Zendesk Messaging:

  • You need a verified Facebook Business Account - link
  • It's best to also verify your WhatsApp for Business account - link
  • You need to have WhatsApp linked to Zendesk Messaging - link
  • Your templates (see later) need to be validated by Meta. This takes ~2-3 days.

A word about cost

Sending out outbound messages over Sunshine Conversations has two costs involved:

  1. You need to pay for MAU in Sunshine Conversations. You get a certain amount (1,000 Monthly Active Users (MAU) and 1,000 outbound notifications) included for free. If you go over you need to buy a Sunshine Conversations add-on.
  2. Outbound WhatsApp messages have a cost charged by Meta. You get a 250-1000 depending on your verification status

Setup

To setup this flow we need to do four things:

  1. Create a Sunshine Conversations API integration
  2. Create a Template in Facebook Business Manager
  3. Setup a webhook in Zendesk
  4. Setup an automation in Zendesk

The next part of this article will show you how.

Create a Sunshine Conversations API integration

The first step in this setup requires the creation of a new Conversation API key.

Go to the Admin Center > Apps and Integrations > APIs > Conversations API and click Create API Key. Give it a name and copy the 3 values Zendesk shows somewhere safe. You'll need this App ID, Key ID and Secret Key in the next steps.

🤔
Zendesk has both a Conversation Integrations and Conversations API option in the Admin Panel. The former is used for ChatBots (like Ultimate, the latter for these kind of custom integrations.

Create a Template in Facebook Business Manager

You need to go to your Facebook Business Manager to create a new Template for your WhatsApp account. Go to WhatsApp Manager >> Account Tools >> Templates.

⁉️
Meta is quite strict about using the right type for the right message. Marketing Messages can be send to more people but are a lot more expensive and are ideal for outbound sales campaigns.
Since we only need to alert an existing user about an existing interaction, we can use the Utility category.
  1. Create a new Utility template for your message.
  2. Give the template a clear name like 24h_reminder
  3. Leave the language to English for now.
  4. Add a body text like the one below.
  5. I added a Quick Reply button with a "Keep ticket open" option, so customers can reply even faster.
  6. Submit your template
Hey,
Our agent are awaiting your reply. Please respond to keep your ticket open, or ignore to automatically close your ticket within 24 hours

The review process will take 2-3 days and you will get an email once your template is approved. Only when the template is approved will you be able to send out notifications.

Webhook

Create a trigger or automation based Webhook URL.

The Endpoint URL should be to the following URL. Note the app_id value needs to be replaced with your App ID.

https://api.smooch.io/v1.1/apps/app_id/notifications

Leave the Type to POST and the Request Type to JSON.

Choose Basic Authentication with: Username: key_id and Password: secret_key

Setting up the Automation

Integration ID

You will need an Integration ID to get the automation to work. This will tell Sunshine Conversations via which channel they should send out the notification.

You can find your Integration ID by going to Admin Panel > Messaging > WhatsApp and copying the last part of the URL shown.

https://subdomain.com/admin/channels/messaging_and_social/channels_list/edit/646b411abc0c536ba1a98263

Replace [integration_id] in the payload below with the ID of your WhatsApp integration.

Conditions

We only want to send out a notification for tickets that match the following conditions:

  • Channel is WhatsApp
  • Ticket Status is Pending
  • Tags does not contain 24h_reminder
    This makes sure we only send out the notification once.
  • Ticket hours since update is more than 10
⁉️
Notifications allow you to send a message to the customer without keeping the 24h rule in mind. But to keep conversations fresh I prefer sending out a messages rather quickly. 

Actions

As a first action choose Add tag: 24h_reminder to let the automation know it has run.

Now choose Notifications - Webhook: Sunshine Conversations Notifications as the action, and add the following in the JSON body field. Make sure to replace the [integration_id] with yours.

🌎
The payload below contains a "code":"en" value. If your template has no English translation, make sure to replace en with your language. Eg. fr or nl
{
	"destination": {
		"integrationId": "[integration_id]",
		"destinationId": "{{ticket.requester.phone}}"
	},
	"author": {
		"role": "appMaker"
	},
	"messageSchema": "whatsapp",
	"message": {
		"type": "template",
		"template": {
			"namespace": "XXXXXXXX_XXXX_XXXX_XXXX_XXXXXXXXXXXX",
			"name": "24h_reminder",
			"language": {
                "policy": "deterministic",
                "code": "en"
            }
		}
	}
}

The Result

As shown in the screenshot at the start of this article, each time a ticket passes the 24h limit while we're waiting for the customer, that customer will get an automated message, and if they reply, we can extend the 24h limit.

This is only one use case where the new Sunshine Conversations API inside of Zendes Suite becomes useful. Following a similar flow like the one above we could easily use this API to send out appointment confirmations, activation messages, shipping updates or any other kind of utility or marketing based notification to customers.

These interactions don't even need to be based on an existing conversation. If you send out a reminder for a reservation, and the customer replies to your message to make a change, this will create a new conversation with your CX team.

You can find a full overview of the API capabilities here:

Outbound Messaging
🥳
Thanks for reading this article and the blog. If you liked this content, please consider subscribing and share this article to your colleagues.