Running Subject Line AB tests with segmented Subjects

I like to distinguish Dynamic Content — when you literally right-click and choose Make Dynamic in the Marketo Editor UI — from “dynamic content” in the broader sense.

The ™ version is just one type of dynamic content, though it’s the easier type to master. The other type, more powerful but admittedly much harder to learn, is Velocity-powered dynamic content.

Velocity can combine segment membership (in one or more segmentations!) with additional logic to decide final output. You’d typically switch from WYSIWYG-based Dynamic Content™ to Velocity-based dynamic content when your business rules get suitably complex.

But some features are incompatible with DC™, even though the content decisions are comparatively simple.

Take, for example, a Subject Line AB Test. You can segment the Subject: by a single segmentation, in this case one based on the State field:

Trouble is, in the Subject Line AB Test context, you can only use static entries for the test groups. The settings for Group A and Group B override Dynamic Content™ at the email level:

So there would only be 2 variations total, rather than 2 groups × 6 State-specific variations.

But there’s a way around this. Enter a Velocity {{my.token}} name for each group:

Then your tokens can themselves output different content based on the segmentation.

{{my.subjectLinesA}}:

#if( $lead.Segmentation_State_1020.equals("NY") )
It’s a New York thing
#elseif( $lead.Segmentation_State_1020.equals("VA") )
It’s a Virginia thing
#else
It’s really something
#end

{{my.subjectLinesB}}:

#if( $lead.Segmentation_State_1020.equals("NY") )
Virginia peanuts, anyone?
#elseif( $lead.Segmentation_State_1020.equals("VA") )
New York pizza, anyone?
#else
Out-of-town foods for expats
#end

(These examples are kind of contrived from a marketing standpoint, but you get the idea!)

Why not just use $lead.State in Velocity?

Indeed, if the segments for the Segmentation called State are 100% aligned with the system State field, then you could just use $lead.State in Velocity instead of $lead.Segmentation_State_nnn.

But I think it’s better to use the segmentation if it exists. This will also remind you that you can use different segmentations in {{my.subjectLinesA}} and {{my.subjectLinesB}}. Think on that for a moment!