You are here:

How to Personalize Marketo Emails with Multiple Dynamic Values Per Company

Personalization at scale is one of the biggest promises of Marketing Automation. But what happens when you need to send one email per company and include a dynamic, variable-length list of employees specific to that company?

This is a challenge one of our clients recently faced—one that many enterprise Marketing Ops teams can relate to.

At RightWave, we often work with RevOps teams on complex campaign operations, and this scenario reminded us how important it is to balance automation sophistication with data readiness and system constraints.

Let’s walk through the challenge and some solutions.

The Problem:

The campaign goal was simple—notify admin users at a few hundred companies about which employees from their organization don’t yet have access to an internal platform. But here’s the twist:

  • Each company could have anywhere from 1 to 20+ employees who need access.

  • Tokens alone wouldn’t work since they can’t dynamically populate multi-line values for an entire group.

  • The entire process had to be scalable and automated via Marketo.

The Challenge with Tokens and Personalization:

Marketo’s default tokenization is great for static fields or single values. But it falls short when you want to insert a list (e.g., 10 employee names) that’s specific to each company.

You might consider using Velocity Scripting, but even that comes with limits—by default, Marketo only allows 20 custom object records to be returned unless manually increased to 100.

Possible Solutions Explored:

1. Populate a Long Text Field on the Account Object in Salesforce:

If your Marketo instance is synced with Salesforce, one approach is to populate a long text field on the Account object with the names/emails of inactive users. This field can then be tokenized using

{{lead.Account.InactiveUsersList}}.

Pros:

  • Works natively if you have an Account sync in place

  • No velocity scripting needed

Cons:

  • Requires Salesforce-Marketo sync to be active

  • Maintenance effort on SFDC side to populate the field


2. Use a Marketo Custom Object and Velocity Script:

Another approach is to create a custom object in Marketo to house the list of employees without access. You can then use Velocity Script to iterate over these records in the email.

Pros:

  • Scalable and clean architecture

  • Can be fully automated if the data is synced or uploaded regularly

Cons:

  • Requires advanced scripting

  • Default limit of 20 records (can be extended to 100 in Admin)

  • Needs careful linking via composite keys (email + account ID)


3. Manual List Uploads (Quick and Dirty):

If the list of users is already available and mapped to their respective admin emails, one of the simplest solutions is to manually import this information into a custom field on the Lead or Contact record.

Pros:

  • Quick to implement

  • No CRM or scripting dependency

  • Tokenizable in the email body

Cons:

  • Manual effort (although it can be semi-automated)

  • Risk of data staleness if not updated frequently


Our Take at RightWave:

The best solution depends on your stack maturity, time, and scalability needs.

If you have Salesforce tightly integrated, the long-text field token approach is elegant and easy. If you’re more advanced and have dev support, a custom object + Velocity Script gives you more control. And if this is a one-off campaign, the manual upload method wins for simplicity and speed.

RightWave helps marketing teams build smart solutions like this—bridging campaign goals with platform constraints, while ensuring every email is relevant, timely, and scalable.

Need help scaling your campaign operations in Marketo or other MAPs?
We’re always up for a challenge. Let’s talk.