Skip to content
Help Center
TopicsInteractions and logic

Why aren’t my personalization variables being replaced?

Updated · 2 min read

Short answer

Look at what the viewer sees. If the placeholder itself shows, such as {{first-name}}, the syntax is wrong. If the space is blank, the variable has no value at that moment. Always test in Preview or on the share link, because the editor does not set variables.

  1. Open Preview or the share link in a private window. The editor never fills in variables.
  2. If you see the braces on screen, fix the placeholder: two braces on each side and only letters, numbers, and underscores in the name. Change {{first-name}} to {{first_name}}.
  3. If you see a blank, check where the value comes from and that it is set before the interaction appears.
  4. Test with a known value in the link, for example ?name=Test.
  5. Check that each value in the link is URL-encoded. A + becomes a space, so write an email such as ana+demo@example.com as ana%2Bdemo%40example.com.
  6. Check that your plan includes personalization variables (Core and higher).

What does not cause the problem

Copy link to What does not cause the problem
  • Capital letters: {{NAME}}, {{Name}}, and {{name}} are the same variable.
  • Spaces inside the braces: {{ name }} works.
  • The address bar: the player removes link parameters after it reads them.

A parameter with no value, such as ?name=, does not set the variable. An empty answer does not clear a value that was set earlier.

When several sources set the same variable, the last one wins. When the video loads, a personalized link is read first, then the remembered viewer, then the link parameters. During playback, each answer, click, or navigation replaces the value again. Use one source for each variable when you can.

For an embedded video, the parameters must be on the iframe src, not on your page’s address. See How do I pass URL parameters into an embedded video?.

Give missing values a fallback

Copy link to Give missing values a fallback

Links are forwarded and viewers skip optional fields. Write copy that still reads well without the value, or show it only when the variable Exists.