Austin MUG: Using Scripting & AI in Marketo for Dynamic Personalization

robynhoops 32 views 15 slides Mar 05, 2025
Slide 1
Slide 1 of 15
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15

About This Presentation

Personalization is essential for modern marketing, but standard Marketo tokens have limitations. This session explores how Velocity scripting and AI tools like ChatGPT empower marketers to create smarter, more dynamic campaigns without adding complexity. Learn how to automate personalization, scale ...


Slide Content

gnwconsulting.com
Mastering Marketo Email Scripting:
Personalization at Scale

Why You Need to Use Velocity Scripting
Velocity scripting lets you dynamically adjust ANYTHING. It fixes data issues, improves personalization,
and makes your emails more relevant without extra manual work.
•Dynamic Personalization–Swap in different text, CTAs, and offers based on industry, job title, or
engagement.
•Data Cleanup–Convert numbers, format dates, and handle multi-select fields properly.
•Fewer Email Variations–One email template can handle multiple audience segments.
•Smarter Email Logic–Use conditions to personalize messaging without needing separate workflows.

What You Can Do with Velocity Scripting
Velocity Scripting makes it easy to adapt your emails without manual effort. Here’s how you can use it
to step up your game:
•Personalize based on data–Use lead fields to swap in relevant content automatically.
•Write cleaner, smarter emails–Convert GUIDs into readable names, format numbers, and handle
missing data gracefully.
•Segment without the hassle–Let scripting handle variations instead of building multiple versions of
the same email.
•Map campaign activity into emails–Show tailored follow- ups based on past interactions.

Scripting Vs Segmentation
Segmentation
•Static & Dynamic Smart Lists
•Pre-processed at Send Time
•Requires Multiple Email Variations
•Limited Real- Time Adjustments
•Relies on CRM Data Accuracy
Email Scripting (Velocity Script)
•Dynamic Content Rendering
•Single Email, Multiple Variations
•Real-Time Data Processing
•Handles Complex Logic
•Bypasses CRM Sync Limitations

Lookup Fields Sync as GUIDs Instead of Names
Issue: Fields like Account Owner, Parent
Account, and Product Interest sync as
unreadable GUIDs instead of human-friendly
names.
Why This Works:
•Converts GUIDs into readable industry
names dynamically.
•Ensures emails display correct industry
information instead of meaningless codes.
#set( $industry = "General Business" )
#if( $lead.Industry_Guid == "1234- abc-5678" )
#set( $industry = "Technology" )
#elif( $lead.Industry_Guid == "9876- def-4321" )
#set( $industry = "Healthcare" )
#end
<p>We help companies in the $industry grow faster.</p>

Numeric and Date Fields Sync as Strings
Issue: Fields like Contract Expiration,
Revenue, and Opportunity Value sync as text,
breaking personalization logic.
Why This Works:
•Converts revenue from text to a number
so conditional logic works.
•Allows for dynamic pricing messaging
based on revenue thresholds.
#set( $revenue = $math.toNumber($lead.Revenue) )
#if( $revenue > 50000 )
<p>Your account qualifies for enterprise pricing!</p>
#else
<p>Check out our latest SMB pricing plans.</p>
#end

Multi-Select Fields Sync as a Single String
Issue: Multi-select values (e.g., Products of
Interest) sync as a single text string rather
than separate items.
Why This Works:
•Parses multi-select field values to display
customized content.
•Prevents generic messaging by tailoring
the email to the recipient’s selections.
#set( $products = $lead.Products_Interested )
#set( $message = "Explore our latest offerings." )
#if( $products.contains("Software") )
#set( $message = "Discover our newest software solutions!" )
#elif( $products.contains("Hardware") )
#set( $message = "Upgrade your hardware for peak
performance!" )
#end
<p>$message</p>

Multiple Field Conditions
Issue: Without scripting, users must create
multiple emails to handle combinations of
fields like Industry, Job Title, and Engagement
Status.
Why This Works:
•Uses multiple conditions (Industry +
Engagement Score) to drive hyper -
personalized content.
•Prevents email duplication by keeping all
variations in a single email.
#set( $content = "Check out our latest resources." )
#if( $lead.Industry == "Finance" && $lead.Engagement_Score > 50
)
#set( $content = "Discover how financial leaders like you
drive success with automation." )
#elif( $lead.Industry == "Healthcare" && $lead.Engagement_Score
> 30 )
#set( $content = "See how healthcare organizations improve
patient experience with AI." )
#end
<p>$content</p>

Map Campaign Data To A Custom Field
Since Marketo cannot pull campaign membership
directly, you can store campaign data in a custom field
in Dynamics (e.g., Last_Campaign_Joined__c) and sync
it to Marketo.
Steps:
1.Create a "Last Campaign Joined" field in Dynamics.
2.Use a Dynamics workflow to update this field when
a lead is added to a campaign.
3.Sync this field to Marketo and reference it in
Velocity scripting.
#set( $campaign = "General Marketing Updates" )
#if( $lead.Last_Campaign_Joined__c &&
$lead.Last_Campaign_Joined__c != "" )
#set( $campaign = $lead.Last_Campaign_Joined__c )
#end
#if( $campaign == "Webinar Q1 2024" )
<p> Thanks for joining our Q1 Webinar! Here’s your exclusive
follow-up content.</p>
#elif( $campaign == "ABM Strategy Workshop" )
<p> We hope you enjoyed the ABM Workshop. Check out
these next steps.</p>
#else
<p> Stay up to date with our latest marketing strategies and
insights.</p>
#end

Live Demo

Cheat Code + Prompts
“Write an email script that can be used in Marketo to show dynamic
personalization based on a field”

Cheat Code + Prompts
New Prompt:
Write an email script that can be used in Marketo to
show dynamic personalization based on this field: API
Name:MA_Platform__c, CRM Field Map:
MA_Platform__c (SFDC Lead)
MA_Platform__c (SFDC Contact)

Don’t Forget The Basics
Select the field in the script token
Copy and paste the code
TEST TEST TEST!
Adobe: Helpful Link

Why Use Velocity Scripting?
Why Use Velocity Scripting?
Traditional CRM limitations make automation frustrating, restricting access to key data for
segmentation and personalization in Marketo.
Use Scripting – It’s Easier Than Ever:
•Keeps messaging relevant → Dynamically personalizes content based on engagement,
campaign activity, and account data, even with incomplete fields.
•Fixes messy data → Prevents blank fields, converts GUIDs into readable information, and
formats data properly.
•Eliminates manual segmentation → One email adapts to multiple variations, reducing the
need for excessive asset creation.

Adobe Summit Giveaway
Register: Marketo Landing Page < Cool CTA