Skip to main content
Variables let you capture and display user data throughout your funnel. When someone enters their name, selects their age group, or arrives with tracking parameters - variables store these values so you can use them anywhere.

How Variables Work

User provides input → Variable stores it → You display it anywhere Variables are like personalized placeholders. They get replaced with actual values when your funnel runs, creating unique experiences for each visitor.
Most common use: Showing users their own responses. “Thanks for your interest in the {{plan-type}} plan, {{name}}!” feels personal because it uses their actual selections.

Quick Example

Types of Variables

User Input Variables

Created automatically when users interact with input elements:
Element: Text Input with ID “email” or OAuth button Creates: {{email}} Contains: Whatever user typedExample: User types “john@example.com” → {{email}} displays “john@example.com

URL Query Variables

Automatically captured from your funnel URL:
Available variables:
  • {{query.utm_campaign}} → “summer”
  • {{query.promo}} → “SAVE20”
Testing hack: Add ?title=New Headline Test to your URL and use {{query.title}} in your funnel to quickly test different headlines without editing.

System Variables

Built-in variables provided by FunnelFox: For understanding profiles vs sessions, go to Core Concepts. To match these IDs against webhook events, go to Matching user profiles.

Using Variables

Text Elements & Lists

Type the variable name with double braces anywhere in your text:

Actions

Use variables in action parameters:

Plan Pickers

Use variables in Plan Picker title, badge, and price:

Buttons

Use variables in button labels:

Options

Use variables in option labels to personalize choices:

Timers

Use variables in timer button text to personalize urgency:

Processing Elements

Use variables as loader labels on processing elements:

Charts

Use variables in chart badges and axis labels:

Raw HTML

Use variables inside Raw HTML elements:

Screen Header Title

Use variables in the screen header title to personalize navigation:

Variable Rules

Naming Requirements

Allowed:
  • Letters and numbers: name, email2, step1
  • Hyphens and underscores: first-name, user_age
  • URL-friendly characters only
Not allowed:
  • Spaces: user name won’t work
  • Special characters: email@address won’t work
  • Unicode: 用户名 won’t work
  • Reserved prefixes: user, query, inputs

Case Sensitivity

Variables are case-sensitive:
  • {{name}}{{Name}}{{NAME}}
  • Be consistent with your element IDs

Missing Variables

When a variable doesn’t exist:
  • The literal text {{variable-name}} displays
  • Analytics logs a variable_not_found event
  • User sees the brackets and all
Always test your funnel flow to ensure variables are collected before they’re used. You can’t display {{email}} before the user provides it.

Common Patterns

Personalized Feedback

Show users how they compare to others like them:

Progressive Profiling

Build understanding across screens:
  1. Screen 1: Collect {{industry}}
  2. Screen 2: “As someone in {{industry}}, you’ll appreciate…”
  3. Screen 3: Collect {{company-size}}
  4. Screen 4: “{{industry}} companies with {{company-size}} employees typically…”

Campaign Tracking

Maintain attribution throughout the funnel:

Dynamic Testimonials

Match testimonials to user context:

Relationship with Dynamic Actions

Variables and dynamic action states are closely related:
  • Variables: Display data as text ({{age-group}} shows “25-34”)
  • States: Control flow logic (if age-group = “25-34”, navigate to screen X)
Both use the same underlying data - user inputs create both a displayable variable and a state for dynamic actions.
Key difference: Variables are for showing content, states are for controlling behavior. Same data, different purposes.

Limitations

No Transformations

Variables display exactly as stored:
  • Can’t uppercase/lowercase
  • Can’t truncate or substring
  • Can’t format numbers
  • Can’t calculate with them
Need transformations? Use custom JavaScript.

No Default Values

Variables don’t support fallbacks:
  • Can’t do {{name|"Friend"}}
  • Empty variables show as {{name}}
  • No conditional display
Need defaults? Collect the data earlier or use custom code.

Session Scope

Variables are bound to one session:
  • Persist throughout the funnel visit
  • Lost when session ends
  • Can’t pass between different funnels
  • Restored if same session continues in new tab

Best Practices

Name Meaningfully

Use clear, descriptive IDs:
  • first-name, plan-type, budget-range
  • input1, field2, var3

Test Your Flow

Always preview with test data:
  1. Add test parameters to URL: ?name=Test&plan=Premium
  2. Go through entire funnel
  3. Verify all variables display correctly
  4. Check what happens with missing data

Examples

Personalized Pricing Page

Quiz Funnel Personalization

Multi-Step Form

Troubleshooting

The variable doesn’t exist yet. Check:
  • Element ID matches exactly (case-sensitive)
  • User has actually provided input before you use it
  • Query parameter exists in URL
  • No typos in variable name
Variables must be URL-friendly:
  • Remove spaces (use hyphens or underscores)
  • Remove special characters
  • Use only letters, numbers, hyphens, underscores
These are reserved prefixes:
  • user (for system variables)
  • query (for URL parameters)
  • inputs (for user inputs)
Choose different names for your elements.

Next Steps