Workflow guide
This page explains how Scan 2 Flow works, especially workflows and the actions you can run when a barcode or QR code is scanned.
🎯 What is a Workflow?
A workflow is an automated action triggered by scanning a barcode or QR code. When you scan, your device matches the code against your workflows - by code format or pattern - and automatically executes the corresponding action without any manual input.
Action Methods
Each workflow uses one action method. All examples use event tickets for simplicity - you can apply the same patterns to any use case. Test each action with our demo project.
Open URL
Opens a URL in the browser. You can use the placeholder {{data}} in the URL; it is replaced by the scanned value. For example: https://www.google.com/search?q={{data}}. Choose whether to open in a new tab or the same tab.
Example: demo-endpoint/view-ticket.html?ticket_id=
API Call
Sends a POST request to the URL you specify. The request body is JSON with a 'data' field (the scanned value) and a 'format' field (e.g. QR_CODE). The response is not shown in the app; use this to trigger webhooks, Make, n8n, or any HTTP endpoint.
Example: GET demo-endpoint/api/tickets?ticket_id=
Validates ticket silently - failed calls turn red in scan log (no beep, visual feedback only)
API Call & Beep on Status
Same as API Call, but the app plays a success beep when your backend returns HTTP 200 and a different failure beep for any other status. Ideal for check-in or validation at the door: staff get instant audio feedback without looking at the screen. Enable beep sound in Settings.
Example: https://vocal-kitsune-c6bf6b.netlify.app/api/tickets?ticket_id=
Valid: TCKT-1001 → 200 (valid:true) beep | Invalid: TCKT-1003 → 200 (valid:false) beep | Not found: TCKT-9999 → 404 beep
API Call & Display
Same as API Call, but the app requests the URL (GET or POST with scan data), then displays selected fields from the JSON response in a table. Configure "Display fields" with comma-separated paths (e.g. data.price, data.name) or leave empty to show the full response.
Example: GET demo-endpoint/api/tickets?ticket_id=
Display fields: ticket_id, attendee_name, valid, valid_until
API Call & HTML Render
Calls the API (GET with scan value in URL via {{data}}), then renders an HTML template in a full-screen modal. The template is HTML with placeholders (e.g. {{title}}) that are replaced by values from the API JSON response.
Example: https://vocal-kitsune-c6bf6b.netlify.app/api/tickets?ticket_id=
Template includes form to update ticket details (name, valid_until, valid status)
Load link in Iframe
Loads an external web page in an iframe. Use a URL template with {{data}} to pass the scanned value, for example: https://example.com/item?id={{data}}.
Example: demo-endpoint/view-ticket.html?ticket_id=
When does a workflow run?
A workflow runs when the scan matches its filters. You can restrict by format and by pattern:
- Format: Limit to specific barcode types (e.g. QR Code only) or "Any Format" to match all enabled formats.
- Pattern: Enable "Pattern match" and enter a regular expression. The workflow runs only when the scanned text matches the regex.
Developer APIs
Decode barcodes and QR codes from images, and generate QR code images from text. For more about the API, visit docs.
Developer APIs