Code Hacks @ Hull: Creating Unified Email Exclusion Lists

As a growth or marketing person, you probably know that feeling all too well: another marketing email went out to someone who is a customer, competitor, partner, has opted-out or is in an active sales cycle.

This is probably one of the customer experiences that you don’t want to generate, but how do you exclude people on scale? Typically the answer is, you pull in your engineer or admin and make him/her do some magic.

I get asked this all the time at my job as Solution Architect at Hull. I have spent some time to analyze those challenges our customers are facing with reliably excluding people across the marketing stack to come up with a way which allows everyone in growth or marketing even without coding skills to get the job done. This article is about how to implement a reliable solution in Hull by using the Processor — and yes you don’t have to code at all.

So let’s get onto our code hack…

Prerequisites

Before we start, let’s make sure that you have defined some exclusion segments in Hull, if you need a refresher how to do so, check out our guide for building segments.

To give you an idea, this is what our segments look like:

Hull Screenshot - Segments for Exclusion Lists

As you can see, a good naming convention is key to success, if you really want to scale this up.

Before we move on, make sure to note down the email of one user which is in any of these segments.

Implementation

Install a new Processor in your Hull organization and open up the Settings tab. Locate the section Variables, because we are going to use them — remember I promised no coding.

The idea of exclusion lists is to have multiple categories, because just one global flag probably won’t cut it, and that’s how the variables are designed. All keys of the variables you define must follow a certain naming convention.

unified_el_segments_<CATEGORY>

Replace <CATEGORY> with the snake-cased name of the category you want to indicate, for example if you want to indicate Opt-Outs, use either opt_outs or just optouts . And for the value of the variable, you just enter all the segment names which represent this category delimited by a semicolon.

This is what our configuration looks like:

Hull Screenshot - Configured Exclusion List by Category

Now hit Save Changes to store this configuration and navigate to the Overview tab, and then click on Code Editor. Enter the email you noted down in the top left textbox to look up the user in Hull, this will unblock the Code — (javascript) window in the middle of the screen:

Hull Screenshot - Look up a User in the Code Editor

Now go and grab the ready-made code below and copy+paste it into the middle of section of the Code Editor window:

Embedded content: https://gist.github.com/SMK1085/1154cedc8020e7bcc405723b08f05899#file-index-js

That’s it, click the Save button in the top-right corner to activate the code.

One more thing, since the Processor won’t run before anything changes on a user, make sure to head over to your users list and click the Send To button to run all the users through your shiny code.

Result

The end result will look close to this in terms of attributes on the user profile:

Hull Screenshot - User attributes for exclusion lists

Now you can use those new attributes, map them out to every connected system and suppress or exclude users from email campaigns.

Questions or Feedback?

Feel free to send us a chat!

Sven Maschek

Sven Maschek is a Solutions Architect at Hull. Prior to joining Hull, Sven worked in the financial industry for 10 years, gaining experience in financial planning, modeling and forecasting. As a seasoned solutions architect, he is passionate about advancing data models and using the latest technology to offer customers new ways to drive value with their data. In addition to his engineering work, he is involved in developing a customer-centric culture and is a strong advocate for building better user experiences. Outside the office, Sven enjoys competing in obstacle course racing, loves mountain biking and participating in environmental protection projects.