---
title: "WhatsApp Messaging"
canonical: "https://red-ant-documentation.refined.site/space/RET/294158367/WhatsApp%20Messaging"
format: markdown
---
> Macro (toc)

## Overview

The Messaging app can support the sending and receiving of WhatsApp messages to and from customers.

We have a direct integration with the WhatsApp for Business Cloud API which has the following benefits;

- No dependencies or additional costs from external providers (besides Twilio for setting up your business telephone number)
- Ability to leverage full WhatsApp feature support
- Long-term API support (Meta’s graph API version is LTS for 2 years)

> ℹ️ WhatsApp set-up and onboarding guide can be found [here](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/268599322).

> ⚠️ It is recommended that WhatsApp messaging is used in a 1-2-1 setting, i.e. one sales associate per customer, to avoid users experiencing unexpected behaviour when multiple sales associates are messaging a single customer.

## Opt-in for WhatsApp communications

Before you can start sending proactive business-initiated messages, you must first obtain opt-in from your customers to be contacted via this communication channel.

There is an option to opt customers in and out of receiving WhatsApp communications when registering them as a new customer or via the full profile of existing customers.

![image](media://6d2fbc4e-cf45-4f5c-8577-d04819eba933)

> ℹ️ By default, new and existing customers are opted-out of WhatsApp.

#### Opting out

If a customer wishes to stop receiving messages from the business, they can reply ‘STOP’. This will automatically opt them out of WhatsApp communications and update their communication preferences on their customer profile.

> 📝 It is recommended to provide clear instructions to the customer on how to opt out of receiving messages within the body of your message templates to help prevent spamming and maintain quality rating - this is especially important to be included in the first message sent by the store associate.

#### Opting back in

Customers who have opted out of receiving WhatsApp marketing messages can still send messages to the business in the event they wish to opt back in, have a question about a product/service or would like to request an update on a recently placed order.

> ⚠️ Before a sales associate can respond, the customer must first be re-subscribed via the communication preferences section on their full customer profile. The associate should also inform the customer that they have been opted back in.

## Compose Message

There are a few different routes into the message composer, but the most common is via the ‘Messaging’ app, where the sales associate can select to create a new message, select a recipient and choose from the customer's available communication channels.

In addition to the communication channels, sales associates can also view which types of marketing the customer has opted out of.

> ℹ️ If you have selected to create a message via the customers profile they will be pre-selected as the recipient within the message composer.

> ⚠️ The available communication channels are derived from the customers communication opt-ins. Only channels they have explicitly opted-in for will be available to the sales associate. In the event the selected customer has opted-out of all available communication channels or hasn’t provided an email address / phone number, a message will be displayed informing the sales associate of this.

### Messaging Types

WhatsApp for business supports two types of messages - depending on who initiated the conversation and whether the messaging window is open you will need to use both message types interchangeably.

- **Templates** - Pre-formatted messages approved by Meta
- ***Free-form messages**** - *Standard, free-flowing messages

### Messaging Window

WhatsApp regulates when and how you can send messages to your customers. When a customer sends a business (either by responding, or initiating a conversation) a WhatsApp message, it kicks off a 24-hour messaging window during which you can send free-form (non-templated) messages to the customer. 

> ℹ️ The message window lasts for 24 hours after the last inbound message you receive from a customer.

### Message Templates

*A message template is required to start a business-initiated conversation. These conversations can be customer care messages or appointment reminders, payment or shipping updates, alerts, and more.*

As above, a message template contains pre-defined, pre-formatted text that must be pre-approved by Meta before it can be used to start a conversation. The customer must also be opted-in to receive messages from your business. 

Templates can be created in different languages within your WhatsApp Business Platform. The templates are then grouped by language within the template dropdown. Sales associates can refer to the customer’s preferred language when composing a message to help aid selection.

![image](media://acf0cc11-e58c-4968-9999-51e09a77d759)

> ℹ️ Information on how to set-up and manage your message templates, including how to adhere to WhatsApp guidelines can be found [here](https://www.facebook.com/business/help/2055875911147364?id=2129163877102343).
> ℹ️ 
> ℹ️ Note that the reference to needing a developer to implement the message templates into your WhatsApp Business platform can be disregarded, they will automatically appear in the app once approved.
> ℹ️ 
> ℹ️ Please ensure you consider Red Ant’s current limitations below when creating message templates, as this will ensure the templates you create are supported by our app.

> ⚠️ Currently WhatsApp template limitations do not allow for attachments to be included.

#### Template Examples

##### Text-based

- Header is optional but must be text-based (maximum 60 characters)
- Body is mandatory and must be text-based (maximum of 1,024 characters)
  - Must not contain newlines, tabs, or more than 4 consecutive spaces
  - Can be formatted if necessary e.g. bold, italics, monospace and strikethrough
- Footer is optional but must be text-based (maximum of 60 characters)

![image](media://c3ac76f7-7efb-419e-b331-1e2ea7b44576)

![image](media://29034ac4-60f9-4eb2-b57f-9679a2c2eb78)

##### Interactive

Interactive templates allow you to ask your customers to take a certain action like visiting your website, calling a number, or selecting from predefined replies.

If a customer responds using one of the predefined replies, this will appear to the sales associate as a reply to the originating message. 

<u>**Call-to-action**</u>

- Maximum of two call-to-action buttons, with each button requiring a different action (e.g. call a number / visit a website)
- Maximum of 20 characters for each accompanying button label

![image](media://de06b739-9393-4bb0-bc96-05b07404a992)

![image](media://24e49446-2e7f-484d-bdf2-d7b3142ae61a)

<u>**Quick replies**</u>

- Maximum of three quick reply buttons in a message
- Maximum of 20 characters for each accompanying button label

![image](media://9bde99bd-da03-4403-a85d-3fd758c5ccca)

> ⚠️ **Template limitations**
> ⚠️ 
> ⚠️ - We do not currently support templates with media headers i.e. when selecting an optional header for your template you will need to select ‘none’ or ‘text'
> ⚠️ - When sending message templates sales associates may notice that formatting such as bold, italics, monospace and strikethrough are not displayed as rich text within the RetailOS app, but will be displayed as expected to the customer
> ⚠️ - Interactive buttons associated with a message template will not be displayed to the sales associate within the RetailOS app (i.e. they will only see the header and body content), but will be displayed as expected to the customer

##### Template variables

The message composer also supports the use of variables within WhatsApp Business templates, providing a personalised messaging experience for store associates communicating with customers. 

Here's how it works:

- **Variable Indication**: Within the message composer, variables are clearly denoted when they are part of the template’s header and/or body. This allows the user to easily identify which sections require dynamic input.

> ⚠️ The message body, including any variables cannot exceed 1,024 characters.

- **Required Input**: Users must enter content for all variables before sending a templated message. This applies both to creating new messages and replying within existing threads.
- **Preview Feature**: Users can preview messages before sending them to ensure that all variables are correctly filled and the message appears as intended.
- **Content Checks**: Our [text moderation](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/1021935617) feature automatically checks the content entered for each variable to ensure it does not include any prohibited words or phrases. This ensures compliance with company policies and WhatsApp guidelines.

> 📝 **Naming Recommendations**: To streamline the selection process, it is recommended to name templates according to their intended use, such as "Multi-Customer - Event Invite" or "Personal - Event Invite." This naming convention helps users easily identify the appropriate template for their communication needs.

> ⚠️ **Use of Variables in Multi Messaging**: Templates that require personal customer information, such as a first name, should not be used for messages sent to multiple recipients. When sending messages to multiple recipients, the user can only input one specific value per variable, which would lead to inaccurate personalization (e.g., addressing all recipients as "Joe").

#### Quality rating

It is important for businesses to monitor the quality rating of message templates within the WhatsApp Manager dashboard, as this can affect the business' overall account health and ongoing ability to send WhatsApp messages. More information about message template quality rating can be found [here](https://www.facebook.com/business/help/766346674749731), and information about phone number quality rating can be found [here](https://www.facebook.com/business/help/896873687365001).

### Rollout of new templates & updates

As you will have a WhatsApp account per environment (QA, UAT & PROD) connected to the equivalent RetailOS environment, we would recommend that creating new templates or making changes to existing templates are made within your UAT WhatsApp account first, to assure that these are approved by Meta, and so that you can test them within the RetailOS UAT environment.

This is because new templates and updates will be reflected immediately within the RetailOS app without the need for an app release, so should not require any involvement from Red Ant.

Once you are happy with the updates on UAT, you may make the same changes on your PROD WhatsApp account so that they appear for use within the RetailOS PROD environment following Meta approval.

If you encounter any issues please do reach out to us so that we can assist.

### Save Draft

While composing a message, users have the option to save the message as a draft. Selecting **“Save Draft”** will close the message composer and store the message within the **Drafts** tab of the message listing. Draft messages are clearly marked with a red `[Draft]:` label prepended to the message body to distinguish them from sent or received messages.

> ⚠️ Draft messages are stored locally on the device where they were created. This means that if a user logs into the platform from a different device, their drafts will not be visible. Likewise, if multiple users share the same device, any saved drafts will be visible to all users accessing the platform on that device. Drafts saved in a desktop browser may also be lost if the browser’s local storage is cleared.

To continue composing a draft, users can simply select the draft message from the Drafts tab. This will reopen the message composer with all previously entered information retained, including:

- The selected recipient (recipients cannot be changed once the draft has been saved)
- Chosen message template
- Message body
- Any attached files

> 📝 If the template used when saving the draft is no longer available, the subject line and message body will still be preserved, but the user will be required to select a new template before sending.

Users can then review and make final edits before sending the message. Sending the draft will convert it into a standard outbound message. Alternatively, the draft can be **discarded** directly from the message composer if it's no longer needed.

> ❌ If the customer opts out of the selected communication channel (e.g., WhatsApp) between the time the draft is saved and when it’s sent, RetailOS will trigger a notification to the sales associate informing them that the message could not be delivered.

### Contact Frequency Warning

When a user selects to send a message to a customer who was last contacted within the past 7 days, a warning modal will appear. This modal displays the customer’s name and the number of days since their last contact, prompting the user to confirm they still wish to proceed. The warning is not blocking - the user can dismiss it and continue sending if required. 

> 📝 This feature is controlled by a feature flag and can be enabled based on retailer needs.

### Retrying Failed Messages

In the event that a message sent by a sales associate fails to deliver (this is determined asynchronously), the platform will trigger a notification to inform the user of the failure. Selecting this notification will take the user directly to the message thread where the failure occurred. The failed message will be clearly marked, along with the reason for the failure where available.

From here, the user is given the option to retry sending the original message. This is particularly useful in cases where the failure may have been caused by a temporary issue with a third-party provider (e.g., Meta). It’s important to note that the failed message cannot be edited—retrying simply re-attempts sending the original message content.

The error message shown typically originates from the third-party provider responsible for delivering the message, providing context to help users understand the nature of the failure.

### Free-form Messages

When the messaging window is open, sales associates can reply to a customer with free-form (non-templated) messages from within the message thread.

Sales associates can attach products, inspiration and upload images to a free-form message reply.

![image](media://e16c49dc-1d61-4dd3-bfe4-fd382cc0370f)

![image](media://29ddd3f6-ac7c-4151-9fe2-182583b18aa5)

> ℹ️ If a sales associate attempts to reply to a customer when the messaging window is closed they will be informed that they can only reply using one of the pre-approved message templates.

## Message Reactions

Customers are able to send message reactions as a reply to a sales associate's message. Sales associates will receive a notification of this reply and the reaction will be logged as a new message in the associated thread.

![image](media://61e88f0b-6d4c-488f-9245-b6889227c8c5)

## Message SLA

The platform offers an optional message SLA feature to help sales associates manage timely responses. When enabled, a configurable SLA countdown starts for each incoming WhatsApp message. 

A reminder notification is triggered before the SLA is breached, with the timing of the reminder also configurable. If the associate replies before the reminder is delivered, the notification will not be sent. When the SLA countdown reaches zero, the WhatsApp message is flagged as having breached the SLA, ensuring customer conversations receive timely attention.

> 📝 **Default configuration:**
> 📝 
> 📝 - **WhatsApp SLA:** 24 hours
> 📝 - **Reminder notification:** 10 hours before SLA breach

## Message Threads

#### Message Thread List

All messages sent (by sales associates) and received by a specific customer are grouped into a single conversation thread.

#### Message Thread Details

From within the message thread, you will see all WhatsApp messages sent and received, ordered chronologically, from most recent at the top to oldest at the bottom.

By default, only the latest message in the thread is fully expanded (with the option to collapse), and all previous messages are partially collapsed (with the option to expand).

The name of the sender and the date and time on which the message was sent/received are situated against each message in the thread.

![image](media://c2a9c5a2-54bb-4979-b0e5-92fa5bc76f61)

> ℹ️ Sales associates are only able to view the history of WhatsApp messages sent (by other sales associates) and received from a specific customer after they have sent them a message.

> ℹ️ Sales associates may notice irregular ordering of messages if multiple users are messaging the same customer.

##### Message Attachments

Messages from or to a customer containing attachments will have an option to ‘View Attachment(s)’. Selecting this will open a modal listing all attachments with the option to view each attachment individually, allowing the sales associate to download the attachments to their device.

> ℹ️ When a sales associate sends a product from the catalogue to a customer (assuming we’ve been provided it in the catalogue data) it will include a link to the brand's ecom site. We’re able to append predefined UTM parameters to the product links, so in the event the customer goes onto purchase the product online we can attribute the order back to the sales associate who originally sent them the product(s).

##### Report Message as Inappropriate

In the event a customer or sales associate sends an inappropriate message, there is an option within the thread to report it as inappropriate. This will flag the thread and the specific message within the thread so that appropriate action can be taken.

## Message Notifications

Sales associates are automatically notified each time a customer replies to their message, regardless of the type of reply (i.e. text, media, reaction).

Selecting the notification will automatically direct the sales associate to the associate thread to view the new message.

> ℹ️ If multiple sales associates have been messaging the same customer, only the sales associate who last messaged the customer will receive a notification when the customer next sends a message.

## Error Handling

#### Handling unsupported inbound media

If a customer sends unsupported media to a sales associate, a notification will be sent to the sales associate to inform them that an inbound message containing unsupported media has been received. A new message will be logged in the associated thread detailing the error.

> ℹ️ Unsupported media includes video, audio, stickers, documents, location and contacts.

> ⚠️ WhatsApp is a third-party service managed by Meta and as such Red Ant are not liable for failures / fluctuations in service, or for any complications that may arise during the complex onboarding process imposed by Meta.

## FAQs

<details>
<summary>How does pricing work for WhatsApp for Business messaging?</summary>

This is based on conversation types, more information can be found [here](https://developers.facebook.com/docs/whatsapp/pricing).
</details>

<details>
<summary>Is there a limit to how many WhatsApp messages can be sent to a customer?</summary>

Business phone numbers are initially limited to 250 business-initiated conversations in a 24-hour moving period, but this limit can be increased.

WhatsApp are looking at introducing per-customer marketing template message limits, which will limit the number of marketing template messages a person receives from any business in a given period of time - more information can be found [here](https://developers.facebook.com/docs/whatsapp/cloud-api/guides/send-message-templates#per-user-marketing-template-message-limits).
</details>

<details>
<summary>What happens if a customer who isn't registered in the system sends a message to the retailers WhatsApp business telephone number?</summary>

The customer will receive an automated response informing them that they will need to reach out to customer support. With the customer’s consent, customer support should register the customer and opt them into receiving WhatsApp communications. The contents of the auto-reply can be configured and can include a pre-defined customer support telephone number.
</details>

<details>
<summary>If a registered customer who has never previously been sent a message by a sales associate sends a WhatsApp message, who receives the notification?</summary>

Typically the sales associate who last messaged the customer will receive a notification when the customer next sends a message. However, in this scenario, the message won’t be assigned to an individual, instead, it will appear as ‘Unassigned’ within the message list for all sales associates. 

The sales associate who replies to the message will become the assigned recipient, and the thread will automatically move out of the ‘Unassigned’ tab.

![image](media://be1a23a2-1817-4a79-ae3b-816b3b4a5019)
</details>

<details>
<summary>If a customer replies to a specific message in the coversation thread, how will I know which message they are referencing?</summary>

The customer's reply will reference the message that they were replying to within the message thread.

![image](media://c2a9c5a2-54bb-4979-b0e5-92fa5bc76f61)
</details>

<details>
<summary>What types of media can customers send to sales associates?</summary>

Customers can send image attachments via WhatsApp - when a reply contains an image, the sales associate will see a ‘View Attachment(s)’ CTA next to the message within the message thread.

Unsupported media includes video, audio, stickers, documents, location, and contacts.
</details>

<details>
<summary>Can you support templates translated into different languages?</summary>

Yes - as part of creating and managing your templates you’re able to define the language of the template. Once the template has been approved for use it will appear within the template dropdown, including an indication of the template language.

![Screenshot 2024-04-08 at 16.29.05.png](media://44b979c4-46fc-482b-bd8e-957f367450a9)

The messaging composer also supports RTL (right-to-left) languages. When a template in an RTL language—such as Arabic—is selected, the composer will automatically:

- Render the message body in a right-to-left format.
- Display the message preview in RTL, ensuring the sales associate can see exactly how the message will appear to the customer before sending.
</details>

## Future Support

- Media-based message templates
- Sending message reactions to customers

## Learn More

- [Template categorisation](https://developers.facebook.com/docs/whatsapp/updates-to-pricing/new-template-guidelines)
- [Creating message templates](https://www.facebook.com/business/help/2055875911147364?id=2129163877102343)
- [Edit message templates for your WhatsApp Business account](https://www.facebook.com/business/help/287011426725347)
- [Delete message templates from your WhatsApp Business account](https://www.facebook.com/help/2047376461998278)
- [About your WhatsApp Business message template's quality rating](https://www.facebook.com/business/help/766346674749731)