Skip to main content

Dynamic Content: Marketo

Advanced personalization of emails

Updated today

** For customers who use Marketo **

To ensure Marketo permissions are set up correctly or if your segments aren't showing up in Knak, check out this article first: How to Set Up Marketo Dynamic Content.

Effortlessly create assets that utilize data and deliver personalized and engaging experiences. You won't need to add velocity script or any code in Marketo after it has been synced.

Images, texts, and links can have dynamic content applied based on the segmentation in Marketo.

To add dynamic content to a content block, click on the 'Add Dynamic Content' button in the content attributes:

Add dynamic content button

If you changed it to dynamic content by mistake, you can click on 'Remove All' to remove the dynamic content.

To add or create a segment, click on the cog under the variants heading. You can also hide the content by default by checking the box next to 'Hide content by default.'

FAQ: What does 'hide content by default" mean?

It means the default is not displayed, only the other segments are. So for example if you had segments setup to target Canada, USA & China, if anyone doesn't match those segments they wouldn't see anything. That section of the code is removed if the recipient doesn't match any of the non-default segments.

"Hide content by default" setting for an image

After clicking on the cog, you can set your segment name and set a condition to match any or all of the conditions in the segment based on selected variables.

Create segment Marketo integration popup

As shown in the images below, you can enter the condition and select from various options. You can select many variables for each condition.

Lead city is Ottawa segment
List of string conditions for segmentation

After setting up your segment, click 'Save' and you will now be able to use that particular segment for the chosen content.

To set the content for the particular section that has dynamic content, select the variant (default or a created section) and change the content for the selected segment.

The images below show the different content used for the Default and City is Ottawa segments.


Default:

Setting up the default segment

City is Ottawa:

City is Ottawa dynamic segment

When previewing the email, you can toggle on the segments to see what it would look like to a recipient who matched the criteria.

Default:

Default image preview

City is Ottawa:

City is Ottawa image preview


Permissions for Users

As an Admin, you can control how your users engage with dynamic content. There are three permissions you can set for your users. These can be found in the Admin section under Roles.

Roles page on the admin side of the platform

Choose the role you'd like to modify and scroll to the Dynamic Content section. From here you can choose to give your users permission to 'Create Dynamic Elements,' 'Manage Global Segments,' and 'Manage Local Segments.'

Dynamic content section for role permissions

'Create Dynamic Elements' gives your users the ability to create the segments from scratch. 'Manage Global Segments' gives your users the ability to modify global segments as needed but will not allow them to create new dynamic segments, and 'Manage Local Segments' gives your users the ability to modify local segments. Global segments are for re-use across multiple emails and can be used in modules. local segments are just for an individual email.

Points of Consideration

Sync Location and Email Sending

When syncing an email into Marketo, script tokens are automatically generated which contain the email’s dynamic content. The tokens are synced to the nearest ancestor program. When sending emails using a Smart Campaign in Marketo, the Smart Campaign must be in the same program as the email. If not, the dynamic content will not render on email send.

Emails synced into an Email Program should always send correctly when sending through the Email Program.

Sharing Segmentations

When syncing to a different workspace from where the configuration was created, that workspace may not have access to the segmentations you may be using. If you want to sync to a specific workspace using a specific Marketo segmentation, ensure the segmentation is shared with that workspace.

Marketo’s 100KB token length limit

Marketo limits the combined length of velocity tokens in an email to 100KB. If an email synced to Marketo is going to surpass this limit, we will show a warning during the sync. Marketo will also render the error on preview. To reduce the length of velocity tokens there are a few things you can try.

  • Split up long text into dynamic and non-dynamic parts, limiting the amount of text in dynamic blocks

  • Remove the tokens from the plaintext version of the email

  • Reduce the amount of dynamic content used

How to include multiple variable values to a segment

Use the "in list" option to select multiple variables values. "In list" works by allowing you to match a list of values. The list of values should be comma separated. For example, if trying to match the North America countries you could:

  • Set the variable to country

  • Set the operator to in list

  • Put in the csv of countries, canada, usa, mexico

Frequently Asked Questions

When should I use local segments versus global segments?


Global segments are for re-use across multiple emails and can be used in modules. local segments are just for an individual email.

When should I use the default hide variant feature?


This is for when you don’t want to display any content in that block if none of the conditions match. A use case would be showing a special offer to certain groups. You would make the special offer element dynamic and target only the groups that you want to see it via the segment builder. If you make it hidden by default anyone who is not part of the group/groups that are targeted would not see the offer.


You are now ready to use dynamic content. If you have any questions, reach out to support at support@knak.com or the chat bubble in the lower right corner.

Did this answer your question?