Managing a Global Opt-out System Using Hightouch and dbt
In this playbook, you'll learn how to manage a global opt-out when using more than one email tool.
Made by: Mammoth Growth
/8 minutes
Whether it’s the US’s CAN-SPAM, EU’s GDPR, or Canada’s CASL, global rules require companies to let users unsubscribe from direct marketing channels, such as email. The consequences of not doing so are large as violations in the US can cost companies up to $16,000 for each non-compliant email. In the UK, fines amounting to £495,000 were issued to multiple companies, such as Sports Direct, We Buy Any Car, and Saga Personal Finance, for not honoring user consent.
Most individual marketing platforms come with built-in features that help companies manage these unsubscribe preferences. However, the fact that modern companies tend to have specialist direct marketing tools for different purposes makes managing preferences in these many tools a difficult task. For example, companies could use Marketo or Salesforce Marketing Cloud for marketing automation and Braze or Iterable for customer engagement.
If someone unsubscribes from direct marketing in one of these tools, you should be updating their communication preferences across all of the rest of them. Building this ‘global preference center’ is tricky, but complying with regulations is crucial. This playbook provides a solution for how to do so using dbt and Hightouch.
Let’s say you're on the marketing team for a video conference software company called SpeedChat. SpeedChat reaches out to its users with a range of email marketing tools:
- Sales ops warms up high-priority leads with Marketo
- Product marketing communicates the latest product features to all of its users via Iterable
- Sales uses SalesLoft to try to upsell existing users to higher packages
While each of these platforms are critical for Speedchat to manage different components of their marketing funnel, the end consumer is simply seeing emails from your brand. Legally, if they choose to unsubscribe from email, regardless of the platform the email was sent from, their preferences must be relayed across the rest.
Luckily, leveraging your data warehouse, dbt, and Hightouch, you can manage a centralized source of truth for user preferences and sync updates back to all of your marketing tools, saving you from having to do it with error-prone CSV uploads.
The complexity of manually trying to tie all your marketing tools together increases exponentially with each tool you add. When there are conflicts in unsubscribe preferences between tools, you will need to manage potentially complex logic within these direct connections.
A better approach is to build a central source of truth for user preferences - external to the individual marketing tools - and sync updated data back into the tools. This also gives you the flexibility to add or change tools in the future.
There are three steps to this:
- Collect unsubscribe and preference data from each of your tools
- Export this data to your data warehouse and build a source of truth
- Sync this back into your tools
The goal of this step is to ensure that you collect all preference data across all of your marketing tools as efficiently as possible.
In a typical unsubscribe flow, a user will receive your email, click on the unsubscribe link, and go to a web-hosted ‘preference center’ where they can unsubscribe from various types of direct marketing. For most, this is typically the default preference center the tool provides.
However, maintaining five separate user interfaces can be burdensome if you have five different direct marketing tools. Companies often opt to set up and host their own Custom Email Preference Centers (as opposed to the "out of the box" solution). Typically, most people go this route if they are looking for some deeper levels of customization and design or to increase their flexibility to change tools at a later date.
The goal of this step is to create two tables: (1) an events ledger of preference changes for auditing purposes and (2) a table that maintains the most up-to-date preference state for each user.
We recommend using your warehouse as the "source of truth" instead of syncing data directly to your tools using a webhook. Here are three reasons why:
- A webhook only updates users who are currently in the tool, so if someone previously opted out of communications in Braze but doesn't exist in Pardot, you'll need to get their opt-out preferences into Pardot if they complete a Pardot Lead Form later on.
- The webhook could fail, causing your tools to be out of sync.
- It allows you to be flexible with your tooling by having the source of truth separate from any of your tools.
If you have a single preference centre for all of your tools, you need to capture the subscription preferences in an analytics event and send it to the warehouse. The only slight complexity here is ensuring that you capture the email address or user_id of the user who is attempting to change their preferences.
Note: If you are using the native preference centers for each of your tools, you need to identify where their preferences are stored - they are typically stored in each platform on the user object as subscription statuses or groups. Once a user clicks unsubscribe, the user’s status or group membership will change. In Hubspot, for example, a user clicking unsubscribe triggers a change in ‘Email Subscription Status.’ In Braze, it would change a user’s Subscription Groups. You just need to ensure these preferences are included in the data you export into the warehouse.
Whichever method you use, the frequency of this data sync should be determined by your direct marketing frequency. For example, if a user receives one email per day from both your marketing automation platform and your customer engagement tool, you need to ensure that this unsubscribe can be honored before the next email goes out from the other tool. That said, as required by CAN-SPAM today, you have 10 days to honor this opt out request.
With the raw data in your data warehouse, it is time to build your first table - an events ledger of preference changes. If you have a single preference center, you should already be collecting a stream of subscription change events.
If you are using multiple preference centers, this table requires a bit of business logic that standardizes subscription groups across tools and determines what should happen if a user has opted out of one system but not the other. This relies on understanding when subscription events have occurred. Some tools, such as Braze, capture subscription status changes as an event. However, some tools only allow you to export the raw subscription status object, so you may need to create this logic manually.
For this, we recommend using dbt as it’s a flexible and easy way to build data models with built-in testing. It also allows you to re-run this logic regularly to ensure that the first table that maintains the users’ preference state is always up to date.
Once you have the events ledger of changes, it is easy to create your source of truth table that maintains the latest subscription status of each user.
Once you have finished Step 2, you should have an output table that lists the marketing preferences for each user across all of your systems. This final step aims to sync this source of truth back into your various tools in a timely manner (e.g. before the next marketing communication gets sent to them).
This step is your standard Reverse ETL challenge and, as such, has two big areas of complexity:
- Maintaining the Reverse ETL pipelines and sync frequency
- Mapping the data from your output table to the different objects within your direct marketing tools
Each direct marketing tool requires a separate pipeline and will have a different process for updating user subscription preferences. This is particularly true when you collect more granular consent for different types of direct marketing.
Leveraging a Reverse ETL tool, like Hightouch, can help significantly reduce the complexity in this step as they will manage the syncs and provide easy-to-use mapping functionality.
Simply setup recurring syncs to each of your various marketing platforms from the preference table in your warehouse and Hightouch will handle updating user profiles automatically. Yep - that means manual CSV uploads and point-to-point solutions are no longer needed.
In conclusion, building a global preference center for direct marketing is crucial for companies to comply with regulations, such as the US’s CAN-SPAM, EU’s GDPR, and Canada’s CASL. The complexity of tying all tools together directly increases exponentially with each tool added, so a better approach is to build a source of truth in the data warehouse and syncing this data back with Hightouch into the many marketing platforms leveraged by your organization.
This playbook was written in collobaration with Mammoth Growth.