Overview
Dynamic content lets you show different email content to different audiences. Knak connects to Marketo variables and segmentations to control these variations.
Prerequisites
Before configuring dynamic content, update the API user role permissions in Marketo.
Required permissions:
Read-Only Lead (sometimes listed as Read-Only Person)
Read-Only Custom Object
Without these permissions, dynamic content variables may not sync correctly.
Configure Marketo Dynamic Content
Follow these steps to connect Marketo variables and segmentations to Knak.
1. Open Dynamic Content Settings
Navigate to Admin → Integrations → Platforms.
Locate the Marketo integration tile.
Click Dynamic Content Settings Icon.
2. Create the Knak Variables Configuration Token
Create a configuration token to store the Marketo variables used for dynamic content.
Select the Marketo folder where the token will be created.
Create this token in a top-level folder within your default workspace.
Accessible to all subfolders
Easier to manage across multiple programs
Click Create New Config.
Knak automatically creates a Marketo token called:
{{my.Knak Variables}}This token stores the variables and segmentations that Knak can access for dynamic content.
3. Add the Tokens in Marketo
Click Add beside the configuration token.
A new Marketo tab will open.
Navigate to the selected folder.
Locate and edit the token: {{my.Knak Variables}}
Double-click the token to enable editing
4. Add Variables or Segments
Add the variables or segmentations you want to use for dynamic content.
Steps:
Drag variables from the right panel into the Script Editor.
Confirm the variables appear in the script area.
Ensure each variable is checked in the right panel.
You can add:
Lead variables (example:
Lead.City)Marketo segmentations
Click Save.
You have to save in both the popup modal and from the My Tokens page.
5. Sync Variables From Marketo Into Knak
After saving the token:
Knak imports the configured variables from Marketo. Hover over a variable to see:
Variables may have different colors:
Blue (Segmentation) - Marketo segmentation variables
Orange (Custom) - Custom object variables
Grey (Default) - Standard variables
How Dynamic Content Sync Works
When you sync an email that contains dynamic content from Knak to Marketo, Knak automatically creates a Knak Dynamic Element token at the Program level.
The token appears as:
{{my.Knak Dynamic Element}}This token contains the velocity script used to render the dynamic content blocks in the email. Marketo uses this token to determine which content variation should appear for each audience segment.
⚠️ Important: Do not remove or edit this token. Removing the token will break the rendering of dynamic content.
Where the Token Appears in Marketo After Syncing an Email to Marketo
The token is created in the Program that contains the synced email.
To locate the token:
Using Tokens in Dynamic Segments
Configure Merge Tags in Admin Settings
If you want to use Marketo tokens inside dynamic content segments, you must configure the merge tags in Admin Settings.
This step allows Knak to recognize the variables stored in the {{my.Knak Variables}} token.
Open Merge Tag Settings
Navigate to Admin → Settings.
Locate the Merge Tags section.
Edit a merge tag or create a new one. Learn more about Merge Tags.
Add the variables you want to use in dynamic content.
When using tokens inside dynamic segments, use this syntax:
${<Velocity Script Token Name>}Example:
${Lead.Country}If you’re unsure what the velocity script token should be, review script tokens in Marketo:
Unsubscribe Link Best Practices
Keep unsubscribe links simple and compliant when using Marketo. This helps avoid delivery issues and ensures a consistent user experience.
Keep the Setup Simple
Use the default system token only.
Use:
{{system.unsubscribeLink}}Do not change the token
Do not wrap it in other code
Do not place it inside dynamic content
Do not add conditional logic
Treat It as a System Element
Unsubscribe links are controlled by Marketo.
Place the link in a static section
Do not include it in dynamic content
Dynamic content can interfere with how the unsubscribe link works.
Translate Only the Text Around It
Do not translate the token itself. Only translate the surrounding text.
Examples:
English: Click here to unsubscribe
French: Cliquez ici pour vous désabonner
Token (same in all languages):
{{system.unsubscribeLink}}]
Use Fully Localized Pages (Advanced Option)
If you want the unsubscribe page to match the email language:
Create a separate landing page for each language
Link directly to each page
Do not use the system token in this case
This gives you full control over the experience. It is also the most reliable option for localization.
Permissions for Users
Admins can control access to dynamic content features through Role Permissions.
Navigate to Admin → Roles.
Select a role to modify.
Scroll to the Dynamic Content section.
Available permissions:
Manage dynamic content variants
Manage global segments
Manage local segments
Note: Global segments can be reused across emails. Local segments apply only to a single email.
Step-by-Step Video
Walkthrough video of Dynamic Content from Knak to Marketo:
Points to Consider
Program Location
Tokens are created at the Program level
Send emails from the same Program
Smart Campaign must match the Program
Workspace Access
Ensure segmentations are shared across workspaces
Token Size Limit
Max size: 100 KB
Reduce Token Size
Split dynamic and static content
Remove tokens from plain text version
Limit dynamic content usage
FAQs
Why is my company token not working in dynamic elements?
Configuration variable sync only supports Lead variables.
Supported:
Lead.xxx
Not supported:
Company.xxx
Example fix:
Replace:
${Company.Company Name}With:
${Lead.Company}
When should I use local segments vs global segments?
Segment Type | Use Case |
Global Segments | Reusable across multiple emails |
Local Segments | Used only within a single email |
When should I use the Default Hide Variant feature?
Use when content should appear only for specific audiences.
Non-matching users will not see the content.
Why Did My Global Segment Stop Working in Marketo?
If your global segment worked before but now only shows default content, the issue is usually a segmentation name change in Marketo.
After syncing, Knak continues to reference the original segmentation name. If that name changes, the mapping breaks and dynamic content no longer renders.
How to Fix It
Log in to Marketo
Confirm the current segmentation name
Return to Knak
Open the Global Segments used in your email
Update the mapping to match the updated segmentation name
Tip:Always confirm segmentation names in Marketo before syncing your email.
Need more help? Contact Support via live chat within Knak using the chat bubble in the bottom right corner or email support@knak.com











