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:- Text Inputs & OAuth
- Options
- Date Picker
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:{{query.utm_campaign}}→ “summer”{{query.promo}}→ “SAVE20”
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.
Subscription Variables
Show details of the customer’s subscription, for example in cancellation funnels:
Dates and the billing period follow the language of the funnel variation.
The
status variable shows a code, not a readable label: active,
trialing, cancellation_scheduled, paused, expired, or not_found.
Use it in custom code, not in text the customer sees.
If FunnelFox doesn’t find a subscription, these variables show empty
text. Use the
Subscription condition
to show a fallback screen instead.
Using Variables
Text Elements & Lists
Type the variable name with double braces anywhere in your text:Actions
Use variables in action parameters:- External Links
- Purchase Actions
Pass data to external sites:
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
- Spaces:
user namewon’t work - Special characters:
email@addresswon’t work - Unicode:
用户名won’t work - Reserved prefixes:
user,query,inputs,source_subscription
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_foundevent - User sees the brackets and all
{{variable-name}}.
Common Patterns
Personalized Feedback
Show users how they compare to others like them:Progressive Profiling
Build understanding across screens:- Screen 1: Collect
{{industry}} - Screen 2: “As someone in {{industry}}, you’ll appreciate…”
- Screen 3: Collect
{{company-size}} - 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)
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
No Default Values
Variables don’t support fallbacks:- Can’t do
{{name|"Friend"}} - Empty variables show as
{{name}}(subscription variables show empty text) - No conditional display
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:- Add test parameters to URL:
?name=Test&plan=Premium - Go through entire funnel
- Verify all variables display correctly
- Check what happens with missing data
Examples
Personalized Pricing Page
Quiz Funnel Personalization
Multi-Step Form
Troubleshooting
Variable shows as {{variable}} instead of value
Variable shows as {{variable}} instead of value
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
Special characters not working
Special characters not working
Variables must be URL-friendly:
- Remove spaces (use hyphens or underscores)
- Remove special characters
- Use only letters, numbers, hyphens, underscores
Can't use 'user' as variable name
Can't use 'user' as variable name
These are reserved prefixes:
user(for system variables)query(for URL parameters)inputs(for user inputs)source_subscription(for subscription details)
Next Steps
- Actions & Triggers - Use states for dynamic navigation
- Element Reference - See which elements create variables
- Custom Code - Transform variables with JavaScript
