Using the Lead ID from Velocity is trickier than you'd expect ($lead.Id is not set automatically, even though there's a {{lead.Id}} token outside VTL).
And there are other interesting fields that are handy to have at send time — a couple of which aren't accessible any other way, giving Velocity a leg up.
Here's a quick snippet that creates a $marketoSend object with properties for Campaign ID, Campaign Run ID, and more:
#set( $marketoSend = {} ) #set( $delim = ":|-\d+$" ) #set( $values = $mktmail.xMarketoIdHdr.split($delim) ) ## Campaign Run ID not relevant in Preview #if( $values.size().equals(9) ) #set( $marketoIdKeys = "MunchkinId::CampaignId:StepId::AssetId::CampaignRunId:LeadId" ) #else #set( $marketoIdKeys = "MunchkinId::CampaignId:StepId::AssetId::LeadId" ) #end #set( $keys = $marketoIdKeys.split($delim) ) ## loop interesting keys #foreach( $key in $keys ) #if( !$key.isEmpty() ) #set( $marketoSend[$key] = $values[$foreach.index] ) #end ## append Program ID #set( $marketoSend.ProgramId = $program.values().iterator().next() ) #end Munchkin ID is ${marketoSend.MunchkinId} Program ID is ${marketoSend.ProgramId} Campaign ID is ${marketoSend.CampaignId} Campaign Run ID is ${marketoSend.CampaignRunId} Step ID is ${marketoSend.StepId} Asset ID is ${marketoSend.AssetId} Lead ID is ${marketoSend.LeadId}
You can then add the variables to a URL (also built in Velocity)
like so:
<a href="https://www.example.com/pagename.html?c=${marketoSend.CampaignId}&cr=${marketoSend.CampaignRunId}">Click me</a>
Comments