May 14, 2008

Conditional (Dynamic) Content in MailChimp

One of the new features going live this weekend in MailChimp is what we call "Smart Merge Tags."

If you’re a MailChimp customer, you’re familiar with sticking the merge tag *|FNAME|* wherever you want the recipient’s first name to appear. Simple stuff.

But we’ve got a new set of merge tags that let you do some really smart stuff with logic and conditions and A/B test content…

Here’s a list of some of the new Smart Merge Tags in MailChimp, and what you can do with them.

Simple Stuff

*|TITLE:MERGE|* will upper-case the first letter of each word of the field, so that *|TITLE:FNAME|* *|TITLE:LNAME|* will convert "roGEr WATERS" into "Roger Waters"

*|UPPER:MERGE|* will upper-case all the letters in the field

*|LOWER:MERGE|* lower-cases all the letters

*|HTML:MERGE|* will print the field without escaping. So if you merge in HTML code like, <b>Bananas!</b> it’ll actually render like: Bananas! in your email.

Interest Groups

*|INTERESTED:Pizza,Pie|*
This will only show up if they’re interested in pizza or pie
*|END:INTERESTED|*

Note: the interested block right now can only do OR, not AND conditions.

A/B Splits

For A/B splits, there’s

*|GROUP:A|*
This will only show for group A
*|END:GROUP|*

(this lays the foundation for upcoming A/B tests on content)

Advanced Stuff: Conditions

Ever wanted to dynamically change content in your campaigns, based on the recipient?

In general,

*|IF:MERGE|*
something
*|ELSE:|*
something else
*|END:IF|*

For example, a sporting goods store could send a holiday promotion to its entire list, but swap out the offer by the recipient’s state:

*|IF:STATE|*
*|IF:STATE=CA|*
Save 20% on surf boards!
*|END:IF|*
*|IF:STATE=GA|*
Save 20% on Mountain Bikes!
*|END:IF|*
*|IF:STATE=FL|*
Save 40% on water skis!
*|END:IF|*
*|IF:STATE=CO|*
Save 50% on ski gear
*|END:IF|*
*|ELSE:|* Save 10% on everything in the store!
*|END:IF|*

More advanced conditions can be done like:

*|IF:MERGE != Bob|*
Your name’s not Bob!
*|END:IF|*
There’s also:
*|IFNOT:MERGE|* to do negative conditions.

And what if you want to start with "Dear *|FNAME|*" but not all your recipients have FNAME data (someone called about this yesterday)? You don’t want it to be blank. You can replace it with something generic:

*|IF:FNAME|*
Dear *|FNAME|*,
*|ELSE:|*
Dear Braves Fan,
*|END:IF|*