How to use visitor data conditions?

Route visitors to different destinations based on their profile data and custom attributes using intelligent visitor data conditions.

Workflow
11 min read
By Laurent Schaffner
Updated April 2, 2026

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:

  1. Form submission: Create a form that captures visitor attributes
  2. API integration: Send visitor data via the Linkbreakers API
  3. Custom attributes: Define custom fields in your forms

Step 2: Access your workflow editor

  1. Log in to your Linkbreakers dashboard
  2. Navigate to QR Codes
  3. Create a new QR Code or edit an existing one
  4. Open the workflow editor

Step 3: Add a visitor data condition

  1. Click between existing steps where you want data-based routing
  2. Select "Visitor Data Condition" from the condition types
  3. You'll see options to configure attribute-based routes

Step 4: Configure your conditions

For each routing option, configure:

  1. Attribute key: The visitor attribute to check (e.g., "age", "$email", "nps_score")
  2. Operator: How to compare the value (equals, greater than, contains, etc.)
  3. Comparison value: The value to compare against (if applicable)
  4. 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:

  1. Create a form collecting NPS score (0-10)
  2. Add visitor data condition after form
  3. 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:

  1. Set customer tier via API or form: "premium", "standard", "free"
  2. Add visitor data condition
  3. 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:

  1. Collect age via form
  2. Add visitor data condition
  3. 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:

  1. Collect email via form
  2. Add visitor data condition
  3. 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:

  1. Set "returning_customer" boolean via API
  2. Add visitor data condition
  3. 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:

  1. Collect product interest via dropdown form field
  2. Add visitor data condition
  3. 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:

  1. Calculate lead score via form responses or API
  2. Add visitor data condition
  3. 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:

  1. Collect survey responses via form
  2. Add visitor data condition
  3. 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:

  1. Initial form: Collect company size, industry, role
  2. Visitor data condition: Route by company size
    • Large enterprise: Continue to qualification
    • SMB: Route to self-service resources
  3. 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:

  1. NPS form: Collect 0-10 score
  2. 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
  3. Follow-up form: Collect detailed feedback based on segment

Progressive profiling

Build visitor profiles over time:

  1. Check existing data: Use IS_EMPTY operator
  2. If $email IS_EMPTY: Collect email
  3. If company IS_EMPTY: Collect company details
  4. If role IS_EMPTY: Collect role information
  5. If all data exists: Route to personalized experience

Conditional A/B testing

Test different experiences for specific segments:

  1. Visitor data condition: Check customer tier
  2. Premium customers: Show experimental premium feature
  3. Standard customers: Show standard experience
  4. Result: Safe testing with high-value customers

Dynamic content personalization

Serve relevant content based on visitor attributes:

  1. Collect industry via form
  2. Visitor data condition: Route by industry
    • Healthcare: Route to healthcare case studies
    • Finance: Route to financial services examples
    • Retail: Route to retail success stories
  3. 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

LS

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.