Anyone else using #mopscrush Sandy Whiteman’s solution for pre-filling forms? It’s easy and elegant. Sandy alludes to this possibility in his post, but you can easily extend it to dynamically personalize any web page content for known Marketo contacts.
Some major plusses:
- We can personalize any page, not just Marketo LPs.
- We can use your existing CMS. There’s no need to implement some stupid/expensive/custom one.
- This goes beyond dynamic content for remarketing ads — we’re not just pulling through a search term. We can populate company name, contact name, industry, onboarding stage, countdown to renewal, Customer Service rep, etc.
- No need to pay for Marketo’s Website Personalization module for simple personalizations like showing a contact’s Company Name.
>> Related: How to Seamlessly Use Unbounce LPs with Marketo <<
How it works
Here’s a simple example: I want to display a demo thank you page that welcomes “Acme Corp.” So I’ll configure the page to include a span with a class of leadInfo
to specify elements to be personalized if I know the value of the Company Name attribute. I also add a data-fieldname
attribute to specify which Marketo field will hold this information.
<p><span style="background: #FED8B1">Our product can help <span class="leadInfo" data-fieldname="Company">your Company</span> sell more widgets.</span></p>
When you call DTO.getGlobal()["mktoPreFillFields"]
on your external page, it’s going to return an object that looks something like this:
{ FirstName: "John", LastName: "Smith", Company: "Acme Corp.", Email: "john.smith@acme.example.com" }
You can then use a simple JS script like this to use the returned values to personalize all of your leadInfo
elements and set the value dynamically:
let mktoLeadInfo = DTO.getGlobal()["mktoPreFillFields"]; let elsToPersonalize = document.querySelectorAll('.leadInfo'); elsToPersonalize.forEach( function(e) { let elFieldName = e.dataset.fieldname; e.textContent = mktoLeadInfo[elFieldName]; } );
Unknown users will see this:
Our Product can help your Company sell more widgets.
But John Smith at Acme Corp. sees:
Our Product can help Acme Corp. sell more widgets.
In short, all the charms of ABM and personalized web content, without having to replatform a website? Yes please.
DISCLAIMER: In a production setting, you’d also want to make sure to validate that the data isn’t null, and you’ll also need to be careful you’re not exposing any messy or potentially sensitive data (e.g. “Joseph (Joey)” or “UNKNOWN COMPANY”).
Image via giphy