Text variables
Drop these tags into any text element, button label, peek bubble or consent block; they render live, per visitor. All values are safely escaped; a variable can never inject markup into your popup.
Reward & game
| Tag | Renders |
{{code}} | The visitor's issued discount code (shows "…" until it's issued). |
{{reward}} | The reward's display name: "10% off", or your title override. |
{{expiry}} | A live countdown to the code's expiry: "2d 3h", "45m", then "expired". |
{{prize}} | The prize label the visitor just won in a game. |
Name & location
| Tag | Renders |
{{first_name}} / {{name}} | The visitor's first name: what they typed into the form wins, otherwise the logged-in Shopify customer's name; blank for anonymous visitors (pair with a | default: filter). |
{{city}} · {{region}} · {{country}} | The visitor's location, from network-level geo: "Free local pickup in Austin this week." |
Quiz & personalization
| Tag | Renders |
{{answer:KEY}} | The visitor's answer to the survey question whose property name is KEY (multi-picks join with commas). "Perfect. Our best sellers for gifting are waiting." |
{{outcome}} · {{runner_up}} | A quiz's winning result name, and the runner-up. |
{{score}} | The winning result's points tally (animates a count-up). |
| Flow variables | Anything set with the Set variable(s) action or Janus.vars.set(). |
Cart
| Tag | Renders |
{{cart_total}} | The visitor's cart total, formatted and ready to show: "$42.50". |
{{cart_value}} | The same figure as a raw number, for arithmetic with filters (below). |
Countdowns & dates
| Tag | Renders |
{{countdown:2026-12-01T00:00:00Z}} | A ticking countdown to a fixed timestamp: a launch, a sale end. Use {{expiry}} for per-visitor code urgency, {{countdown:…}} for a shared deadline, or the styled Countdown element when you want it as its own block. |
{{date}} · {{date+30}} · {{date+6 weeks}} · {{date+3 months}} | Real calendar dates computed from today: "Results by {{date+30}}." Days are the default unit. |
Legal & consent
| Tag | Renders |
{{tos_link}} / {{privacy_link}} | Clickable links to the ToS / privacy URLs from your campaign's legal settings. These are the only tags that render as links; everything else stays plain text by design. |
{{sms_consent}} / {{email_consent}} | Your SMS or email consent disclosure block, managed once on the popup root. |
Filters
Any tag can be piped through filters, Liquid-style: {{ name | filter | filter: arg }}. The common ones:
| Filter | Does |
| default: "friend" | Falls back when the value is empty: {{ first_name | default: "friend" }}. |
| plus: 15 | Arithmetic on numbers like cart_value: "just $X more to free shipping". |
| money | Formats a number as a price. |
Game copy tokens
One game interpolates its own progress tokens inside its copy fields:
| Game | Tokens |
| Pick a card | {n} flips made · {total} total prizes · {left} flips remaining. "You won {n} of {total} gifts". |
TipVariables shine on the
peek bubble ("Your {{reward}} is waiting…") and the offer step ("
{{code}} expires in
{{expiry}}"). Copy that knows what the visitor won converts like copy that was written for them, because it was.