While seeing your subscribers go is difficult, it is often for the best!
So, making the process easier is always beneficial for an organization like yours. While, as a mandate, all promotional emails have a link to unsubscribe within the body of the email, the easiest way to help your users find this is to use List-Unsubscribe, which is a compliance requirement as of 2024.
What Is List-Unsubscribe?
List-unsubscribe is essentially an ISP-provided way to unsubscribe with just one click. It goes into your email header, and your mailbox providers decide whether to show it to the recipients depending on the reputation, volume, and engagement with the sender.
Clicking the ISP-provided native unsubscribe option can unsubscribe your users broadly in two manners:
-
One-Click Unsubscribe (RFC 8058)
This unsubscribes the user automatically because this will invoke the URI, the purpose of which is to do the same. -
Mail-to Unsubscribe
This initiates an email on behalf of the user to the email mentioned within the email header. You are supposed to parse the emails and unsubscribe the users within 48 hours of the request.
How Does This Look in My User's Inbox?
info |
Information While bulk senders are mandated to add this to their promotional emails, displaying the Unsubscribe button is under the mailbox’s purview, and no one can influence it. Click here to learn more. |
Why Should I Do This?
While this was a deliverability best practice earlier, since June 2024, Gmail and Yahoo have made this a mandate to be followed by all of the bulk senders in their deliverability practices.
Though this is a mandatory process, following this not only helps you be compliant with the rule but also helps in the following ways:
- Minimize your spam complaint rate
- Optimize engagement and performance by sending emails only to interested subscribers
- Potentially reduce email marketing costs by routinely cleaning list size
- End subscriber relationships on a positive note
MoEngage Managed vs Self-Managed
MoEngage helps you adhere to these practices in two ways:
MoEngage Managed - Using this option allows you to seamlessly use MoEngage capabilities to capture and update a user's subscription on MoEngage. If you have other systems (3rd Party tools or in-house systems), you can forward this information from MoEngage to those systems.
Brand or Self Managed - Using this option allows you to invoke your brand's handling of user un-subscription; Generally used when brands want to manage user preferences on their side. In such cases, brands would need to capture users' un-subscriptions and update both their systems as well as MoEngage.
How Can I 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 mail-to section, respectively. While the former helps users unsubscribe with a click, the latter unsubscribes the user via the mail-to method of list-unsubscribe, as explained above. Also, MoEngage processes all requests and updates the preferences of the users in your workspace (formerly known as DB or dashboard).
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 vertical 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 MoEngage API, which processes it immediately and updates the user's preferences in the profile. - Mail-to approach:
When the user clicks Unsubscribe and confirms, an email from the ISP will be sent to one of our inboxes. MoEngage will process it within 48 hours and update the user's preference in the profile.
How to pass this to your systems?
If you'd want to pass the change in the preference of your users to any in-house system or third party systems, you can do the following:
- Setup an event-triggered connector campaign that is triggered when Email Unsubscribed event is triggered to hit the APIs of yours or the third-party system and update the value. Refer here to know more.
- Setup Streams to pass the Email Unsubscribed event to your endpoint. This can be further processed by you or passed to other systems. Refer here to know more.
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 will be responsible for further processing of un-subscriptions via this. Also, to be compliant, you must process un-subscriptions within 48 hours. You must pass the updated preference back to MoEngage so that we can automatically ignore the unsubscribed users in the future.
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 vertical 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 unsubscribes the users on confirmation. Make sure to add the parameters using JINJA to this URL so that you can identify the user who requested to unsubscribe and act accordingly. Also, ensure that this link has no redirection or landing page and does direct un-subscription instead.
Please do note that if the added identifier has special characters like @, the standard URL encoding will be applied. Click here to know more.
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 & would look like below:
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 with which you are identifying your users to manage preference.
- bob@bob.com is the value of the JINJA provided as the value for the parameter
- The qmoe is the parameter that is appended to the URL by MoEngage to identify the user & the campaign from which this request originated from our side.
info Information
Make sure to have default value always 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 here which will get added to the mail-to section of the email header.
When an email ID is provided, The User Identifier field appears and is for identification purposes. MoEngage customizes the email’s subject line sent from the ISP to include this in the base64 encrypted format so that you can parse through the subject, decode it from the base64 format, and thus identify the user that needs to be unsubscribed in a secure manner.
While the User identifier’s value is subjective based on the way you identify your users, some example values that can be used are mentioned below. Also, note that these must be added 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-subscription post processing to MoEngage so that in the future, any emails sent from us target users who have unsubscribed via this method can be dropped before sending. If not done, there is a possibility of email going to such a user via MoEngage because we were 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 user who requested to unsubscribe using the parameters that you've added.
In our above example provided, the emailAddress parameter should help you identify the user and process the same. - Next, execute the below 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.
- Identify the user who requested to unsubscribe using the parameters that you've added.
-
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 mentioned by you 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 setup auto-forward of emails received in your inbox to make this easier. To setup the same, please refer below:
- Parse the Subject line of the email sent by the ISP to the inbox mentioned by you 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 we receive the request from a user to unsubscribe themselves. This applies for 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”.
Also, the emails you sent would look similar to the following images:
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: