Making Email More Efficient & Relevant with Dynamic Variables
A greater degree of relevancy often translates to better email marketing results. If you find yourself sending the same email to every single person on your list when an opportunity to convey more specificity exists, just stop it. Dynamic email doesn’t have to be difficult, we just need to put forth the thought and leg work to line up all the particulars properly.
The following documents a recent, real-life client example in which dynamic elements played a key role while relevance and efficiency won the day. I can’t tell you the name of the client, but let’s just say I developed a dynamic email program on behalf of a well-known retailer in the home improvement space.
The Situation: A Potential Quagmire of Inefficiency
The client had asked to deliver a unique email message in which recipients in 18 markets would receive a slightly different set of content elements. While I could have taken the long route by developing 18 unique email templates, we (the client and I) opted to create one template that would populated by 18 different lists. The result was less expensive for them and less time-intensive for me. Win-win.
The Solution: Illuminating Dynamic Possibilities
To explain the situation in more detail, the client wanted to deliver a message that included:
- A catchy headline that referenced the market/City name
- A special promotion unique to that market
- A map showing the location of the different stores in the market
- Contact details for store representatives (quantity varied by market)
For each store rep, we had an added collection of unique variables including:
- Rep Headshot
- Rep First & Last Name
- Store Address, City, State & Zip
- Rep Phone Number
- Rep Email Address
- Store Hours
A quick gander at all those elements, you can quickly see how variables (and columns) in our list added up quickly, especially for emails that featured four store reps or more. The challenge was to tie the correct variables to each recipient in all 18 lists. By the way, the total list quantity numbered greater than 16,000 with all markets combined.
The Template: Open Sockets
Think of our template for this project as power strip with several open sockets.
The template itself required form and structure as well as mobile responsive properties, but it also needed to provide openings into which we could slide our many variables (or plugs). The desktop view of the template kind of looked like this. Wherever you see a highlighted area is an open socket.
The List: A Plethora of Plugs
To be honest, the template construction piece of this project was the easy part. The list management portion required some heavy lifting and serious concentration.
Think of each variable in our list (promotion image, market City reference, rep headshot, rep phone number, etc.) as an individual plug for our power strip of sockets. Every single plug would have to be represented in its own cell within an Excel/CSV recipient list file.
As noted above, some markets could require nearly 50 unique plugs per message depending upon how many store reps were available in each market (4-6 in some cases). Remember, contact details for just one store rep could equate to ~8 plugs. Each one of those plugs must be tied to a unique email address so the appropriate plugs would fit into the correct sockets upon program launch.
I had three kinds of plugs for this particular project:
- Text Plugs: These would cover references to City name, Rep name, and most of the rep Contact info.
- Image Plugs: These would reference image files I would upload along with the template for the promo image, map image and all the Rep head shots.
- Link/URL Plugs: Finally, I could include an email address or website address to be dynamically plugged into to my template were appropriate.
Every different plug would be represented by a column in my email list. When uploading each list, I would assign a column full of unique plugs to the appropriate socket in my template. For example, all the “PromoImage” plugs would be aligned with the <img src=“[PromoImage].jpg”> socket in my template. The “Rep1Email” plugs would be aligned with the <a href=“mailto:[Rep1Email]”>[Rep1Email]</a> socket in the template, and so on.
For more on how to configure your list, check out my previous post on dynamic email content.
Testing & Deployment: Flipping the Switch
Given the large quantity of email addresses, plugs and moving pieces, testing efforts required some serious dedication. The last thing I wanted to was to spend all this time orchestrating this effort for a stupid error to occur (trust me, mistakes with dynamic email are no fun).
I used a few tools to test all the different components.
- Template Testing: I used Litmus email previews. Their checklist process makes it easy to spot an fix errors with your code.
- List Accuracy & Quality Assurance: I relied on old school diligence and sweat here, pouring over rows of data and double checking that all the names, contact details, image references and URLs were spot on.
- Deployment Testing: To execute this program, I relied on Campaign Monitor as my ESP. Campaign Monitor makes it easy to test dynamic elements. I ran a few tests for each of the 18 market with randomly selected contacts on each list.
Thankfully, everything checked out.
Despite the time and effort it took to create my socket-laden template and manage/configure the client’s multiple lists and plugs, I actually saved countless hours compared to creating 18 different emails. Additionally, the client now has a template and a list configuration process they can rely on for future email deliveries like this one.
I got anxiety just reading this Chris. I’m glad everything ran smoothly. Are you doing any dynamic email for eCommerce stores?
Oh trust me – I’ve had my fair share of complete screw-ups. Not doing anything dynamic for ecommerce currently, no, but the principles are the same. The integration part is the most time consuming with ecommerce re: making sure you are pulling precise purchase detail plugs into the email system and fitting them nicely into your template’s sockets. Give me a call if you need some pointers.