Skip to content

Dynamic Flows

The Flows feature allows you to connect multiple QRCompose pages together to create guided, multi-step experiences - such as menu → order → payment → review or event → booking → payment → confirmation.
Each step in a Flow is represented by a page, and the connections between them define how users move through your experience.

Configure Flow Screenshot

What Are Flows?

A Flow is a logical sequence of pages that users navigate by interacting with QRCompose components.
Each page can pass data to the next one - such as orders, form submissions, or booking details - allowing you to build seamless transactional or interactive journeys.

Example Flow

Restaurant Ordering Flow

Menu (allow orders) → Payment (dynamic) → Review

Booking Flow

Event → Form (with booking) → Payment (dynamic) → Confirmation

Lead Capture Flow

Landing Page → Form → Thank You Page

How Flows Work

  • Each node in the flow represents a published QRCompose page.
  • Connections (edges) define which page the user visits next after completing an interaction.
  • Data from one page (like a shopping cart or booking details) can be passed to the next, enabling contextual logic such as dynamic pricing or conditional redirects.
  • You can mix and match components - e.g., a gallery before a form, or a link tree that branches into multiple destinations.

Flows are built visually inside the Flow Designer, where you can drag pages, connect them, and validate their compatibility automatically.

Flow Validation Rules

To ensure consistency and prevent data conflicts, QRCompose automatically validates each connection between pages.

❌ Disallowed Direct Connections

RuleReason
Payment → PaymentYou cannot connect two payment pages directly. Each payment step must be isolated.
Menu → MenuYou cannot chain two menus. Only one orderable menu per flow is supported.
Review → non-PaymentReviews should follow a payment step, not precede other interactions.

⚙️ Payment Page Restrictions

When a Payment Page is the target in a connection, QRCompose checks the configuration of the source page to ensure data flow integrity.

1. Contextual Payments

If a payment page’s type is set to “context”, it expects data (like total amount or booking price) from the previous page.

Allowed Sources

  • Menu pages with ordering enabled.
  • Form pages with a booking field and a valid price per slot.

Disallowed Sources

  • Any non-context-producing page (Link Tree, Gallery, Business Card, etc.).

    Reason: “Cannot connect this component to a dynamic pricing component.”

2. Menu → Payment

ConditionAllowed?Reason
Menu allows orders ✅ and Payment type = “context” ✅✅ Allowed
Menu allows orders ✅ but Payment type ≠ “context” ❌❌ Payment must be dynamic to process menu orders
Menu does not allow orders ❌ and Payment type = “context” ✅❌ Menu must have ordering enabled for dynamic payments

3. Form → Payment

Form ConfigurationPayment TypeAllowed?Reason
Booking field ✅ and price per slot > 0 ✅“context” ✅✅ Allowed
Booking field ✅ and price per slot > 0 ✅Not “context” ❌❌ Must use dynamic payment for paid bookings
Booking field ❌ and price per slot = 0“context” ✅❌ Non-priced forms can’t link to dynamic payments
Booking field ✅ but price per slot = 0“context” ✅❌ Price must be greater than zero for payment connection

4. Review → Payment

Reviews can feed into payments only if they do not redirect externally.

If any review sentiment includes an external action (e.g., link to website), the connection will be blocked:

❌ “One of the review options redirects to an external website, causing the flow to stop.”

Supported Data Passing

FromToData Passed
MenuPayment (context)Order total, items, quantities
Form (with booking)Payment (context)Slot, time, date, participants, total price
PaymentReviewTransaction metadata (amount, ID, status)

Data is automatically handled by QRCompose’s backend - no coding required.

Example Valid Flows

Restaurant Ordering

Menu (with orders) → Payment (context) → Review

Event Booking

Event → Form (booking) → Payment (context) → Review

Lead Generation

Business Page → Form → Confirmation Page

Tips for Building Stable Flows

  • Always publish each page before connecting it in a flow.
  • Avoid circular references (page A → page B → page A).
  • Use dynamic payments (context) only when previous pages produce numeric values.
  • Keep one payment per flow.
  • Test each flow end-to-end before deploying QR codes publicly.
  • Avoid external links inside flows unless it’s the final step.

Publishing & Analytics

When you publish a flow:

  • Each page maintains its own analytics.
  • Flow-level analytics aggregate interactions across all pages.
  • You can view drop-offs between steps to optimize conversions.

Tracked Metrics

  • Page views and conversions
  • Step completion rates
  • Payment success ratio
  • Average flow duration
  • Funnel exit stages

Summary

Flows turn individual QR pages into powerful interactive journeys - guiding users through menus, forms, bookings, payments, and reviews seamlessly.
They include built-in validation, context-aware payments, and analytics tracking to ensure reliable and conversion-optimized experiences.