Unsubscribes can be a natural part of managing your email subscribers. Ensuring a straightforward unsubscribe process for your users is essential for your brand.
While all promotional emails legally require an unsubscribe link in the email body, the easiest way to help users find this option is by implementing List-Unsubscribe. This feature became a compliance requirement as of 2024.
What Is List-Unsubscribe?
List-Unsubscribe is a one-click method provided by Internet Service Providers (ISPs) that allows users to unsubscribe directly from your emails. This option is embedded in your email's header. Your mailbox providers decide whether to display this option to recipients based on sender reputation, email volume, and user engagement.
Clicking the ISP-provided native unsubscribe option can unsubscribe your users in two ways:
-
One-Click Unsubscribe (RFC 8058)
This method automatically unsubscribes the user because it invokes a Uniform Resource Identifier (URI), which automatically unsubscribes the user by directly triggering a dedicated MoEngage URL provided in the email header. -
Mail-to Unsubscribe
This method initiates an email on behalf of the user to a specified email address within the email header. You must parse these emails and unsubscribe the users within 48 hours of the request
How Does This Look in a User's Inbox?
| info |
Information While bulk senders are mandated to add List-Unsubscribe to their promotional emails, displaying the Unsubscribe button is at the discretion of the mailbox provider, and no one can influence it. |
Why Implement List-Unsubscribe?
Previously, List-Unsubscribe was considered a deliverability best practice. Since June 2024, however, both Gmail and Yahoo have made it a mandatory requirement for all bulk senders in their deliverability practices.
Following this mandatory process helps you remain compliant with the rules and also provides the following benefits:
- Minimize your spam complaint rate
- Optimize engagement and performance by sending emails only to interested subscribers
- Potentially reduce email marketing costs by routinely cleaning your email lists.
- End subscriber relationships on a positive note
MoEngage Managed vs Self-Managed
MoEngage helps you adhere to these practices in two ways:
MoEngage Managed: This option allows you to use MoEngage capabilities to seamlessly capture and update a user's subscription status within MoEngage. If you use other systems (third-party tools or in-house systems), you can forward this information from MoEngage to those systems.
Brand or Self Managed: This option allows you to use your own system to handle user unsubscribes. This is generally used when brands prefer to manage user preferences on their side. In such cases, brands must capture user unsubscribes and update both their systems and MoEngage.
How to Configure This in MoEngage?
You can use either of the two options based on your requirements:
MoEngage Managed
MoEngage adds its unsubscribe URL and an email ID in the email header under the HTTPS URL section and the mail-to section, respectively. The unsubscribe URL helps users unsubscribe with a click, while the email ID unsubscribes the user via the mail-to method of list-unsubscribe. Also, MoEngage processes all requests and updates the preferences of the users in your workspace.
To configure the list-unsubscribe via the MoEngage-managed approach:
- Log in to your MoEngage dashboard.
- Navigate to Settings > Channels > Email settings > Sender Configuration tab.
- Click the email connector.
- Click the ellipsis icon and click Edit.
- Under One-click unsubscribe, click MoEngage Managed.
How Does This Work?
As mentioned above, MoEngage adds its unsubscribe URL and email ID to the email headers when sending any promotional emails. When a user clicks Unsubscribe shown in the inbox, one of the following will happen:
- One-click approach: When the user clicks Unsubscribe and confirms, the request is directly sent to the MoEngage API. MoEngage immediately processes the request and updates the user's profile.
- Mail-to approach: When the user selects Unsubscribe and confirms, the ISP sends an email to a MoEngage inbox. MoEngage processes this request and updates the user's profile within 48 hours.
How to Pass Unsubscribe Data to Your Systems?
If you want to pass these user preference changes to your in-house or third-party systems, perform one of the following:
- Set up an event-triggered connector campaign. Configure it to trigger when Email Unsubscribed event is triggered to hit your or the third-party system's API and update the value. For more information, refer to Create a Connector Campaign.
- Set up MoEngage Streams to pass the Email Unsubscribed event to your endpoint. You can then further process this data or forward it to other systems. For more information, refer to MoEngage Streams.
Self Managed
Under Self-Managed, you must provide an unsubscribe URL and an email ID. MoEngage adds these to the HTTPS URL and mail-to sections of the email header while sending any email. However, you are responsible for the further processing of unsubscribe requests. To ensure compliance, you must process un-subscriptions within 48 hours. You must also pass the updated preference back to MoEngage so that we automatically exclude these unsubscribed users from future campaigns.
To configure the list-unsubscribe via the self-managed approach:
- Log in to your MoEngage dashboard.
- Navigate to Settings > Channels > Email settings > Sender Configuration tab.
- Click the email connector.
- Click the ellipsis icon and click Edit.
- Under One-click unsubscribe, click Self Managed.
Then, you must provide the following:
-
One-click unsubscribe URL: Provide a link that directly unsubscribes the user with a click. Make sure to add the parameters using JINJA to this URL to identify the unsubscribing user and act accordingly. Also, ensure that this link directly unsubscribes the user without redirection or requiring a landing page for further input or confirmation.
Note that if the added identifier contains special characters like "@", standard URL encoding applies. For more information, refer here.
For example, if the provided link is https://www.abc.com/unsubscribe?emailAddress={{UserAttribute['Email (Standard)']|default('email')}}, then, along with this, a parameter from Moengage will be added to the HTTPS section of the email header, which then looks like this:
https://www.abc.com/unsubscribe?emailAddress=bob@bob.com&qmoe=abc123
Here,
- https://www.abc.com/unsubscribe?emailAddress is the URL that you have entered within One-click unsubscribe URL & emailAddress is the parameter used to identify your users to manage preferences.
- bob@bob.com is the value of the Jinja provided as the value for the parameter
- The qmoe is the parameter MoEngage appends to the URL to identify the user & the campaign from which this request originated.
info Information
Make sure to include a default value while adding the parameters to the link and the identifier as well. For example, the value should be like:
https://www.abc.com/unsubscribe?emailAddress={{UserAttribute['Email (Standard)']|default('email')}}
-
One-click unsubscribe email: Provide an email ID to be added to the mail-to section of the email header.
When you provide an email ID, the User Identifier field appears for identification purposes. MoEngage customizes the email's subject line, sent from the ISP, to include this information in Base64-encrypted format. This allows you to parse the subject line, decode it, and securely identify the user who needs to be unsubscribed.
The value for the User identifier depends on how you identify your users. Examples of values that you can use are below. You must add these using Jinja, the templating language used by MoEngage:
User Identifier Example JINJA Format ID {{UserAttribute['ID']|default('ID')}} Email ID {{UserAttribute['Email (Standard)']|default('email')}}
| info |
Information
|
How to process the received request?
| info |
Information It is critical that you return these un-subscriptions to MoEngage after processing. This ensures that MoEngage can prevent sending future emails to target users who have unsubscribed via this method can be dropped before sending. If you do not update MoEngage, these users might still receive emails because MoEngage was not aware of the preference change. |
Whenever the user unsubscribes via the List unsubscribe method, you need to do the following:
-
If the request was handled by the ISP through the One-click URL:
- Identify the unsubscribing user using the parameters you added. In our above example provided, the emailAddress parameter should help you identify the user and process the same.
- Execute the following public API by passing the qmoe parameter to help MoEngage update the subscription status of the user:
https://api-0x.moengage.com/v1/emailunsubscribe?qmoe=<qmoe_parameter>
- The 'X' in the API Endpoint URL refers to the MoEngage Data Center (DC). MoEngage hosts each customer in a different DC. You can find your DC number (value of X) and replace the value of 'X' in the URL by referring to the DC and API endpoint mapping here.
- <qmoe_parameter>, as mentioned above, is a parameter that will be appended to the URL by MoEngage to identify the user & the campaign. In the above example, qmoe_parameter is abc123.
-
If the request was handled by the ISP through the Mail-to Approach:
- Parse the subject line of the email sent by the ISP to the inbox you mentioned to identify the user and unsubscribe them from the list you manage. A sample subject line would look like below:
Unsubscribe | cattr:YzlhZjVkYzUtYWRkMi00MTZkLTg4OTQtNWNlZmRkYTJjNDYw-WTRv4uSIgrZTVV5fJSvAZkS2smalAXvg8qX_0qz3AXdXNRHz.AwCwAo2OsppN0DGt2qd0R4qSg-5YLB5qTvuHp.2EIBfDrKmDauXjQXySNcGHo0w__OdsmU2_LAzK1aAynsczTVn.yuaRa.4MGgjQ-lq_KXmK.l7mgq17UL1WOZsjqPOJGzcrHTW3iZYOXt2O5Ikgwk9CJgO0Hg7Z8ZO3OewvzeED8BFN4fuAwyvkCV7yPQtHTMZ_coK_Yu42TPeysvhhgr0yFlLvrXIMsEolDk64xtNx8Ie76YcE
- In the subject line above, you must parse through to find the sub-text that’s between cattr: and the first hyphen; that is, in this example, the sub-text you'll find is
YzlhZjVkYzUtYWRkMi00MTZkLTg4OTQtNWNlZmRkYTJjNDYw. - Then, decode this via the Base64 method to find the user who must be unsubscribed.
- In the subject line above, you must parse through to find the sub-text that’s between cattr: and the first hyphen; that is, in this example, the sub-text you'll find is
- To help MoEngage update the subscription status of the user, forward the email to the inbox,
unsubscribe-DC0X@moengage.com.
- Here, the 'X' in the email ID refers to the MoEngage Data Center (DC). MoEngage hosts each customer in a different DC. You can find your DC number (value of X) and replace the value of 'X' in the URL by referring to the DC and API endpoint mapping here.
- You can always set up auto-forward of emails received in your inbox to make this easier. To set up the same, please refer below:
- Parse the subject line of the email sent by the ISP to the inbox you mentioned to identify the user and unsubscribe them from the list you manage. A sample subject line would look like below:
How to Find Users who Unsubscribed via this
MoEngage will raise Email Unsubscribed event with the attribute source as List Unsubscribe whenever a request is received from a user to unsubscribe themselves. This applies to both MoEngage and Self-Managed approaches. However, for the self-managed approach, ensure the outlined steps have been followed correctly.
Frequently Asked Questions
To check if you are compliant, do the following in your Gmail inbox within the email you sent:
- Select Show Original in the email. This opens a new tab with the raw version of the email and its headers.
- Search for “List-Unsubscribe”.
- You are compliant, if you are able to find this keyword in the raw version of the email within the headers.
Additionally, the emails if looks similar to the following images, you are compliant as well:
Note that not finding the “Unsubscribe” in the inbox does not necessarily mean you are not complying with this because displaying it is under the ISP’s control.
Yes, it must be the HTTPS type.
No, the entered URL must unsubscribe the user automatically within a click and should not redirect the user to a new place for further inputs or confirmation in any manner.
No, it doesn’t. Adding list-unsubscribe isn’t a replacement for your unsubscribe link in the email.
You can take less than 48 hours to process the same.
MoEngage triggers a user event Email Unsubscribed with the attribute Unsubscribe Source as List Unsubscribe against every profile when processing an unsubscribe request, either directly from the user or when you forward it to MoEngage.
So, you can use a segmentation query like shown below to find such users: