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

## Overview

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

## Opt-in for Email 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 Email communications when registering them as a new customer or via the full profile of existing customers.

#### Opting out

Customers can choose to ‘Unsubscribe’ from email communications by selecting the option in the footer of the email they receive. This directs them to a dedicated landing page where they must confirm their choice to unsubscribe. Once confirmed, their communication preferences will be updated in their customer profile.

> ℹ️ Customers who have opted out of receiving marketing-based email communications will still receive transactional emails (e.g. order confirmation, e-receipt, etc.) as these communications do not explicitly require consent.

> ⚠️ An unsubscribe link is required in all 1-2-1 templates.

#### Opting back in

Customers who have opted out of receiving Email marketing messages can still send emails 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.

Note that the sales associate will need to opt the customer back in via the communications preferences on the full customer profile before they can reply to the customer, and will need to 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.

![image](media://571b675f-2602-47e9-9248-03003ec6a098)

Sales associates can attach products, inspiration and upload images to their message.

> ℹ️ Maximum upload file size for image attachments is 5MB.

### Message Templates

#### Template Content

When composing a new message, sales associates can choose from a list of pre-defined, pre-formatted templates to help initiate a conversation with a customer. They can also refer to the customer's preferred language to help aid selection.

> ℹ️ Email and SMS communication channels share the same list of templates.

Each template can consist of:

- Name (the display name shown within the template dropdown)
- Pre-defined subject line
- Pre-defined message body (text displayed within the ‘Communication Message’ field)
- Language

> 📝 Whilst the name of the template is always required, you can choose whether to supply a pre-defined subject line and message body. Where the message body is pre-defined, sales associates can still choose to overtype the message body to aid personalisation.

##### Dynamic placeholders

Templates support the use of **dynamic placeholders**, allowing parts of the message to be automatically populated with relevant customer, user, or store information at the time the message is sent. This helps ensure each message feels more personal and context-aware, without requiring manual entry.

The following placeholders are supported:

- `{{customer.title}}` – e.g., *Ms, Mr, Dr*
- `{{customer.firstName}}` – the customer's first name
- `{{customer.lastName}}` – the customer's last name
- `{{customer.email}}` – the customer's email address
- `{{user.firstName}}` – the sales associate's first name
- `{{user.lastName}}` – the sales associate's last name
- `{{store.name}}` – the name of the store the user is logged into
- `{{store.contactEmail}}` – the store’s contact email address

These placeholders can be inserted into the body of the template — when the message is sent, each placeholder is replaced with the appropriate value from the system.

#### Template Branding & Examples

Messaging templates can be styled to suit your brand and are relatively simple for us to do if you’re able to provide us with the HTML.

> ℹ️ More information including examples can be found [here](https://redantdigital.atlassian.net/wiki/spaces/RET/pages/284688486).

> 📝 Depending on the route into the message composer, a specified template can be pre-selected from the dropdown. For example, if the sales associate initiated a new message from the Waitlist, a template that is specifically designed to be used to contact customers when a product becomes available can be pre-populated into the message composer.

### Preview Message

After selecting a template, entering a subject line and communication message the sales associate will have the option to ‘Preview’ the message before sending it to the customer.

Selecting ‘Preview’ from the message composer will display an HTML-rendered preview of the email, including any media that they have attached.

![image](media://ebad9939-e46c-455e-83af-c6d5525e33be)

### 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
- Email subject line
- 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., email) 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., Amazon SES). 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.

## Reply to Message

### Free-form Messages

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.

> ℹ️ The maximum upload file size for image attachments is 5MB.

![image](media://a6b4b23c-5296-4942-9cfa-78166a8655a8)

> ℹ️ As replies to email threads do not allow template selection, a default ‘reply’ template can be set via the `externalTemplateId` field within the messageTemplates table which will be used for all replies.
> ℹ️ 
> ℹ️ The default reply template is typically unbranded as the communication shifts to a more personal and efficient exchange between the sales associate and the customer, however, if required a dedicated branded template can be provided.

## 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 customer email. 

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 is not sent. When the SLA countdown reaches zero, the email is flagged as having breached the SLA, helping ensure important conversations are not overlooked.

> 📝 **Default configuration:**
> 📝 
> 📝 - **Email SLA:** 48 hours
> 📝 - **Reminder notification:** 10 hours before SLA breach

## Message Threads

In a similar way to most email clients, each outbound message and any subsequent replies are grouped into a single conversation thread.

#### Message Thread List

Conversations that consist of a single email are depicted by a single email icon:

![image](media://cdec2556-e1dd-448b-856e-74fad5233a3c)

Conversations that contain more than one email are depicted by a stacked email icon:

![image](media://f72a87e1-07a1-416a-af64-2dc78808f418)

#### Message Thread Details

From within the message thread you will see all emails 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, the date and time on which the message was sent/received is situated against each message in the thread.

When receiving a customer reply, the body of the last message sent from the sales associate will appear within the reply, beneath the body of the customer’s message. This is because the last sales associate’s email in the customer's response email is part of the email body itself, which is sent from Amazon SQS. This doesn’t occur when the sales associate sends a message to the customer because this is directly entered within the RetailOS app, so this is used as the message body instead.

> ℹ️ In the unlikely event that a customer changes the subject when replying to a message, the newly updated subject line will be displayed against the thread on the messaging list and at the top of thread details.

> ⚠️ If a customer with a Yahoo Mail account responds to an email and changes the subject line, Yahoo changes the Message ID (including its format) and thus results in the reply displaying as a new thread within the messaging list, rather than grouping the reply under its original thread.

##### Message Attachments

Where a message to a customer contains attachments there will be an option to ‘View Attachment(s)’. Selecting this will open an HTML-rendered preview of the email, including any media that was attached.

Where a message from a customer contains an image attachment there will be the option to ‘View Attachment(s)’. Selecting this will open a modal listing all attachments with the option to view/download the attachment to your 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 starts a new email conversation or replies to an existing thread.

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

## Custom Email Addresses

With the retailer's permission, RetailOS can support the sending of outgoing emails on behalf of the brand's domain by configuring specific DNS settings (e.g. @examplebrand.com).

Details on how to set up custom email address can be found [here](https://redantdigital.atlassian.net/wiki/spaces/DD/pages/40632321).

## FAQs

<details>
<summary>What happens if a customer who isn't registered in the system sends an email to one of the sales associates?</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 Email communications. The contents of the auto-reply can be configured and can include a pre-defined customer support telephone number.
</details>