Short answer
This article explains how to use visitor data conditions with practical guidance, operators, and implementation details so you can create intelligent, personalized visitor journeys.
Route visitors to different destinations based on their profile data, custom attributes, and behavioral information using visitor data conditions.
Quick summary
- Route visitors based on any visitor attribute or system field
- Use 24 different operators across strings, numbers, dates, and booleans
- Create personalized experiences based on visitor data
- Combine with forms to route based on NPS scores, feedback, or demographics
- Set fallback destinations for visitors who don't match conditions
- Build sophisticated segmentation without external tools
Overview
Visitor data conditions enable intelligent routing based on visitor profile information, creating personalized experiences that adapt to individual visitor characteristics. Whether you need to route high-value customers differently, create NPS-based feedback loops, or segment visitors by demographics, visitor data conditions make behavior-driven workflows simple.
In Linkbreakers, visitor data is collected through forms, API integrations, or direct visitor profile updates. Once collected, this data powers conditional routing decisions throughout your workflows.
How visitor data conditions work
When a visitor reaches a visitor data condition step in your workflow, Linkbreakers checks their profile for the specified attribute. The system then evaluates the attribute value using your configured operator and comparison value, routing the visitor to the appropriate next step based on the result.
The condition supports both system fields (email, phone, first name, last name) and custom attributes you define through forms or API calls.
Setting up visitor data conditions
Step 1: Collect visitor data
Before routing on visitor data, you need to collect it. Common methods:
- Form submission: Create a form that captures visitor attributes
- API integration: Send visitor data via the Linkbreakers API
- Custom attributes: Define custom fields in your forms
Step 2: Access your workflow editor
- Log in to your Linkbreakers dashboard
- Navigate to QR Codes
- Create a new QR Code or edit an existing one
- Open the workflow editor
Step 3: Add a visitor data condition
- Click between existing steps where you want data-based routing
- Select "Visitor Data Condition" from the condition types
- You'll see options to configure attribute-based routes
Step 4: Configure your conditions
For each routing option, configure:
- Attribute key: The visitor attribute to check (e.g., "age", "$email", "nps_score")
- Operator: How to compare the value (equals, greater than, contains, etc.)
- Comparison value: The value to compare against (if applicable)
- Next step: Where to route visitors who match this condition
Step 5: Set a fallback
Configure an "else" destination for visitors who don't match any conditions. This ensures everyone has a valid experience even if their data is missing or doesn't match.
Available operators
Visitor data conditions support 24 operators across four data types:
String operators
Use for text-based attributes like names, emails, or custom text fields:
- STRING_EQUALS: Exact match
- STRING_NOT_EQUALS: Does not match exactly
- STRING_CONTAINS: Contains substring
- STRING_NOT_CONTAINS: Does not contain substring
- STRING_STARTS_WITH: Begins with value
- STRING_ENDS_WITH: Ends with value
- STRING_IS_EMPTY: Attribute is empty or missing
- STRING_IS_NOT_EMPTY: Attribute has a value
Number operators
Use for numeric attributes like age, ratings, or scores:
- NUMBER_EQUALS: Equal to value
- NUMBER_NOT_EQUALS: Not equal to value
- NUMBER_GREATER_THAN: Greater than value
- NUMBER_LESS_THAN: Less than value
- NUMBER_GREATER_OR_EQUAL: Greater than or equal to value
- NUMBER_LESS_OR_EQUAL: Less than or equal to value
Date operators
Use for date-based attributes like signup date or last visit:
- DATE_EQUALS: Exact date match
- DATE_BEFORE: Before specified date
- DATE_AFTER: After specified date
- DATE_BEFORE_OR_EQUAL: Before or equal to date
- DATE_AFTER_OR_EQUAL: After or equal to date
Boolean operators
Use for true/false attributes like subscription status or consent:
- BOOLEAN_IS_TRUE: Value is true
- BOOLEAN_IS_FALSE: Value is false
System fields
Visitor data conditions recognize special system fields with the $ prefix:
- $email: Visitor's email address
- $phone: Visitor's phone number
- $firstName: Visitor's first name
- $lastName: Visitor's last name
Common use cases
NPS-based routing
Challenge: Route visitors based on their Net Promoter Score to appropriate follow-up experiences.
Solution: Use number operators to segment by NPS score after form submission.
Setup:
- Create a form collecting NPS score (0-10)
- Add visitor data condition after form
- Configure conditions:
- nps_score NUMBER_GREATER_OR_EQUAL 9: Route to Google Reviews request
- nps_score NUMBER_GREATER_OR_EQUAL 7: Route to thank you page
- nps_score NUMBER_LESS_THAN 7: Route to feedback form
- Fallback: Route to thank you page
Example: A restaurant collects NPS scores. Customers rating 9-10 are invited to leave a Google review. Customers rating 0-6 are directed to a detailed feedback form to understand concerns.
Customer tier routing
Challenge: Provide different experiences based on customer tier or status.
Solution: Route based on customer tier attribute.
Setup:
- Set customer tier via API or form: "premium", "standard", "free"
- Add visitor data condition
- Configure conditions:
- tier STRING_EQUALS premium: Route to VIP support portal
- tier STRING_EQUALS standard: Route to standard support
- tier STRING_EQUALS free: Route to self-service knowledge base
- Fallback: Route to general support
Age-gated content
Challenge: Route visitors based on age to age-appropriate content.
Solution: Use number comparison on age attribute.
Setup:
- Collect age via form
- Add visitor data condition
- Configure conditions:
- age NUMBER_LESS_THAN 18: Route to youth-focused content
- age NUMBER_GREATER_OR_EQUAL 65: Route to senior-focused content
- Fallback: Route to general content
Email domain routing
Challenge: Route corporate users differently than personal users.
Solution: Use string operators on email domain.
Setup:
- Collect email via form
- Add visitor data condition
- Configure conditions:
- $email STRING_ENDS_WITH @company.com: Route to employee portal
- $email STRING_ENDS_WITH @gmail.com: Route to consumer experience
- $email STRING_ENDS_WITH @edu: Route to student discount page
- Fallback: Route to general landing page
Returning customer personalization
Challenge: Show different content to returning customers versus new visitors.
Solution: Route based on customer status attribute.
Setup:
- Set "returning_customer" boolean via API
- Add visitor data condition
- Configure conditions:
- returning_customer BOOLEAN_IS_TRUE: Route to loyalty rewards page
- returning_customer BOOLEAN_IS_FALSE: Route to onboarding experience
- Fallback: Route to general page
Product interest routing
Challenge: Route based on product preferences collected in a form.
Solution: Use string matching on product interest fields.
Setup:
- Collect product interest via dropdown form field
- Add visitor data condition
- Configure conditions:
- product_interest STRING_EQUALS software: Route to software demo
- product_interest STRING_EQUALS hardware: Route to hardware catalog
- product_interest STRING_EQUALS services: Route to consultation booking
- Fallback: Route to product overview
Lead qualification
Challenge: Route high-quality leads to sales team, low-quality leads to nurture campaigns.
Solution: Use number comparison on lead score.
Setup:
- Calculate lead score via form responses or API
- Add visitor data condition
- Configure conditions:
- lead_score NUMBER_GREATER_OR_EQUAL 80: Route to calendar booking for sales call
- lead_score NUMBER_GREATER_OR_EQUAL 50: Route to product demo video
- lead_score NUMBER_LESS_THAN 50: Route to educational content
- Fallback: Route to general information
Survey-based routing
Challenge: Route visitors based on their survey responses to relevant resources.
Solution: Use string matching on survey response fields.
Setup:
- Collect survey responses via form
- Add visitor data condition
- Configure conditions:
- main_challenge STRING_CONTAINS "pricing": Route to pricing calculator
- main_challenge STRING_CONTAINS "features": Route to feature comparison
- main_challenge STRING_CONTAINS "support": Route to support portal
- Fallback: Route to general FAQ
Best practices
Always set a fallback: Configure a meaningful fallback destination for visitors whose data doesn't match any conditions or is missing. This ensures everyone has a valid experience.
Collect data before routing: Place forms or data collection steps before visitor data conditions in your workflow. You can't route on data you haven't collected yet.
Use clear attribute naming: Choose descriptive attribute keys like "nps_score" or "customer_tier" rather than generic names like "field1" or "value".
Handle missing data gracefully: Use IS_EMPTY and IS_NOT_EMPTY operators to detect missing attributes and route accordingly.
Test with sample data: Create test visitors with different attribute values to verify routing works as expected.
Monitor condition match rates: Check your analytics to see which conditions match most frequently and optimize your routing logic.
Keep conditions simple: Each condition option should check one attribute. For complex logic requiring multiple attributes, create additional condition steps.
Document your attributes: Maintain a list of custom attributes used across your workspace for consistency.
Consider first-match behavior: Conditions are evaluated in order, and the first match wins. Order your conditions from most specific to most general.
Use type-appropriate operators: String operators for text, number operators for numeric values, date operators for dates, boolean operators for true/false values.
Advanced patterns
Multi-stage qualification funnel
Create sophisticated lead qualification workflows:
- Initial form: Collect company size, industry, role
- Visitor data condition: Route by company size
- Large enterprise: Continue to qualification
- SMB: Route to self-service resources
- Second condition (large enterprise path): Route by role
- Decision maker: Route to sales booking
- Influencer: Route to technical demo
- User: Route to product tour
NPS feedback loop
Create intelligent feedback collection:
- NPS form: Collect 0-10 score
- Visitor data condition: Route by score
- 9-10 (Promoters): Request Google review
- 7-8 (Passives): Collect feature requests
- 0-6 (Detractors): Escalate to support team
- Follow-up form: Collect detailed feedback based on segment
Progressive profiling
Build visitor profiles over time:
- Check existing data: Use IS_EMPTY operator
- If $email IS_EMPTY: Collect email
- If company IS_EMPTY: Collect company details
- If role IS_EMPTY: Collect role information
- If all data exists: Route to personalized experience
Conditional A/B testing
Test different experiences for specific segments:
- Visitor data condition: Check customer tier
- Premium customers: Show experimental premium feature
- Standard customers: Show standard experience
- Result: Safe testing with high-value customers
Dynamic content personalization
Serve relevant content based on visitor attributes:
- Collect industry via form
- Visitor data condition: Route by industry
- Healthcare: Route to healthcare case studies
- Finance: Route to financial services examples
- Retail: Route to retail success stories
- Result: Highly relevant content without manual segmentation
Frequently asked questions
What happens if an attribute doesn't exist?
If an attribute doesn't exist and you're using an operator other than IS_EMPTY or IS_NOT_EMPTY, that condition is skipped and the next condition is evaluated. Always set a fallback destination.
Can I check multiple attributes in one condition?
Each condition option checks one attribute. To route based on multiple attributes, create multiple visitor data condition steps in sequence.
How do I set visitor attributes?
Visitor attributes are set through form submissions, API calls, or direct profile updates in the Linkbreakers dashboard.
What's the difference between system fields and custom attributes?
System fields ($email, $phone, $firstName, $lastName) are predefined fields managed by Linkbreakers. Custom attributes are any additional fields you define through forms or API.
Can visitor data conditions work with empty values?
Yes! Use STRING_IS_EMPTY, STRING_IS_NOT_EMPTY, or similar operators to check whether an attribute has a value.
How do I handle case sensitivity in string comparisons?
String operators perform case-sensitive comparisons. For case-insensitive matching, normalize your data (all lowercase) before comparison.
Can I use visitor data conditions without forms?
Yes! You can set visitor attributes via the Linkbreakers API without using forms, then route based on those attributes.
What data types are supported?
Visitor data conditions support strings, numbers, dates, and booleans. The system automatically attempts type conversion based on the operator you use.
How many conditions can I add to one step?
You can add multiple condition options to a single visitor data condition step. Each option is evaluated in order until a match is found.
Can I update visitor data mid-workflow?
Yes! Form submissions update visitor data in real-time, allowing subsequent visitor data conditions to use newly collected information.
Do visitor data conditions work with the API?
Yes! Visitor attributes can be set and updated via the Linkbreakers API, making integration with your existing systems seamless.
What happens with first-time visitors who have no data?
First-time visitors without profile data will route to your fallback (else) destination unless you're checking for empty values with IS_EMPTY operators.
Conclusion
Visitor data conditions enable sophisticated personalization and routing based on visitor characteristics, creating tailored experiences that adapt to individual needs. Whether you're segmenting by NPS scores, routing by customer tier, or building progressive profiling workflows, visitor data conditions eliminate manual work while maximizing relevance.
Ready to create intelligent, data-driven QR code experiences? Head to your dashboard and add visitor data conditions to your workflows today.
Limits and caveats
- Feature availability and limits can vary by plan and workspace setup.
- Results depend on correct implementation, data collection, and condition configuration.
- Regulatory and privacy obligations vary by jurisdiction and use case.
- Type conversion is attempted automatically but may fail if data format is invalid.
About the Author
Laurent Schaffner
Founder & Engineer at Linkbreakers
Passionate about building tools that help businesses track and optimize their digital marketing efforts. Laurent founded Linkbreakers to make QR code analytics accessible and actionable for companies of all sizes.
Related Articles
How can I send an email response after a form submission?
Automate email responses after form submissions using webhooks, Zapier, and CRM integrations. Set up instant acknowledgments and follow-up sequences.
What is the proper workflow order for lead gen?
Master the 6-step lead generation workflow: capture, qualify, nurture, engage, convert, and analyze. Build automated systems for consistent results.
What is a fallback destination in Linkbreakers
Understanding fallback destinations in Linkbreakers workflows: how they protect visitor experience when QR codes encounter broken workflows, missing steps, or system errors.
On this page
Need more help?
Can't find what you're looking for? Get in touch with our support team.
Contact Support