Hey Randall:
Dynamic content! There are lots of ways to do it. Here are some:
- Dynamic snippets based on lead segmentations: (Emails and landing pages)
- Lead fields containing the content to show on pages (Emails and landing pages)
- Velocity email scripting (Emails)
- "My" program/folder tokens (Emails and landing pages)
- CSS/JS based on lead tokens (Landing pages)
- Program/smart campaign routing leads into different email paths based on lead attributes (Emails)
Each of those options has its own pros and cons.
Dynamic SnippetsNot incredibly scalable, in my opinion. If you're changing the content of these snippets frequently, these end up being very painful for every iteration. You have to go into the snippet, update the values for each segmentation, and then every single child landing page/email gets thrown into draft mode, which you have to update manually. Best use case is for a dynamic offer on a thank-you page tailored to a specific segment, because the formatting of those rarely change, and it's rather easy to add that once or twice. These are mostly designed to be staticly dynamic (hah), meaning that a lead isn't expected to move from one segment to another over the course of its life. Imagine you're using it to target when a lead fits into a piece of a pie, and doesn't want to change pieces of pie very frequently over its life.
Lead Fields containing dynamic informationYou can create a Marketo program (or do it on the SFDC side) to change a lead's fields automatically, then directly put lead tokens into an email. This is great for when the content changes for a specific lead frequently, and it'll be a field that you'll use now and forever in your marketing. Great example is a fulfillment email: "Thanks for downloading {{my.lead.Content - Recent Download_Title:default=that asset}}! Download it <a href="{{lead.Content - Recent Download_URL:default=http://www.etumos.com/oops}}">here</a>." Then you're just reliant on a robust method of changing those lead fields at the right time so they're always updated. (In that example, I change the lead's field as the first step of an auto-responder with a short wait step to allow processing before sending the fulfillment email.)
The problem with lead fields is that they're not disposable.
You will never be able to uncreate a lead field, so make sure you're doing it very wisely before—every field needs to be evergreen.
Velocity email scriptingIf using custom objects frequently and they're always up to date, this is a great use. This is good for B2C, for example. If you're not using custom objects, this is mostly just a fun parlor trick that doesn't really scale. It's dependent upon a web developer whenever you need to change it, so on an email campaign level, it usually doesn't make sense. Here's a helpful chart for if you're thinking about Custom Objects:
"My" Program TokensThese are dynamic based on the program level and containing folder level, not specific to the lead. Helpful for moving programs to other folders, such as in the case of wanting specific analytics tracking and conversion tracking via
text tokens via vendor-specific containing folders. But, you can route people to the local assets contained within these folders, which is a building block in content dynamism specific to leads.
CSS/JS based on lead tokensI like this one as a backup for all
landing page templates. In your landing page templates, you can add classes to the <body> tag that are dynamic. There's a screenshot below.
- First class: specific to the template. In this case, "ETU 1.5 - Landing Page" translates to "etu15-landing-page".
- Second class: {{my.Universal - Dev_Body Class}}. Optional, on the Universal level (the top-most folder containing all Marketo progrmas. If it's empty, won't spit anything out.
- Third class: {{my.Folder - Dev_Body Class}}. Optional, on the Folder level (any folder that contains programs, and isn't the Universal folder).
- Fourth class: {{my.Content - Dev_Body Class}}. Optional, on the Program level.
- Sixth class: {{lead.Z - Dev_Classes}}. This is a custom lead field which is assigned through a Marketo program and smart campaign flow steps. Any major segmentation we're doing, I concatenate into this field as a backup.
With these, you now have the CSS hierarchy and JS targeting ability to change the content on the page.
An example would be this:
- Lead's "Z - Dev_Classes" field: "SAL buyer-persona-cxo".
- HTML output: <body id="bodyID" class="etu15-landing-page SAL buyer-persona-cxo">
- CSS you can apply: <style>.buyer-persona-cxo .header-background { background-image:url('http://www.etumos.com/mkto/img/IMAGE-THAT-APPEALS-TO-CXO-BUYER-PERSONAS.png') }</style>
And then you can use this as a building block for whatever dynamism you want!
Program/smart campaign routing leads to email tracksI like to call this a Traffic Director as a nod to the retired Traffic Cop. You have a program that is constantly computing best-fit profiling based on whatever you want
via some crafty scoring and profiling. Try
Buyer Stage Scoring, Persona Profiling, or Pain Point/Product Interest. Once that is computed, you have a Traffic Director program watching for best-fit marketing. If a persona profile changes from "unknown" to "CXO," your Traffic Director pauses people in their current generic Engagement Program and moves them to a CXO-specific Engagement Program. This is through
Intelligent Lead Nurture (link to Marketo Summit 2014 presentation).
SummaryReally, it'll depend on your needs. My most common method of dynamism is through combining profiling programs to calculate what content is best-fit, creating selective evergreen fields to contain this dynamic content, and placing in a (static) snippet with Lead tokens so that we always have the chance to make them more dynamic in one organized place.
I did a presentation on
creating a Recommended Resource program for Marketo Summit 2014 that deep-dives into a bunch of this dynamism and the pros and cons. Relevant slides start on slide 9.
Hope that's enough detail and options for you.
🙂
Best,
Edward Unthank | Founder, Etumos