Skip to content

Pipelines

Pipelines let you define what happens when one of your scanners reads a code. You build a pipeline once, then assign it to any number of scanners.

Navigate to Pipelines in the sidebar to see every pipeline configured for your company.

Pipelines overview


Concept

A pipeline sits between your integrations and your scanners. Integrations expose reusable building blocks (checkers, HTTP requests); a pipeline composes them into a sequence of steps; each scanner is assigned one or more pipelines and runs them when a code is read.

Pipeline relationship diagram Integrations provide checkers and requests; a pipeline composes them into Validate, Commit and Notify steps; devices run assigned pipelines. Integrations • Roller • Urban Sports Club • Zones • HTTP Requests expose checkers & requests referenced by Pipeline Validate legitimate? Commit change state Notify fire & forget Steps run in order, top to bottom. Validate/Commit can abort; Notify always continues. assigned to Device Scanner runs assigned pipelines in try-order. one per integration type

How integrations, pipelines, and devices relate.

Each pipeline is made of Steps, organised into three sections that always run in order:

1. Validate

The scanner checks the code against one or more of your integrations (Roller, USC, list-based, etc.). This section decides whether the code is legitimate. If every validate step passes, the pipeline moves on. If one fails, its on-failure setting decides whether to continue or abort.

2. Commit

Once the code is validated, commit steps record what happened, for example marking a ticket as redeemed or granting zone entry. These are the actions that actually change state at the venue or in an integration.

3. Notify

Notify steps send the outcome somewhere else, for example posting to an HTTP endpoint or a downstream system. They run last, and a failure here never blocks the scan.

Why this split matters

Keeping validate, commit, and notify separate makes one subtle but important guarantee: side effects that change the world (redeem a ticket, increment a zone) only happen once the code is known to be valid, and external notifications only happen once those side effects have succeeded.


Pipeline List

On the Pipelines page every pipeline is shown together with two counters:

  • Steps - how many steps the pipeline contains
  • Devices - how many scanners it is assigned to

Click a pipeline to open its detail view.

Pipeline details

Steps are grouped by Validate / Commit / Notify, each showing:

  • The integration icon and name (e.g., Roller, Zones, HTTP Request)
  • The action badge (e.g., Validate Ticket, Zone Enter)
  • The on-failure badge (Abort or Continue) for Validate and Commit steps
  • The checkers or requests the step runs against

Below the steps, the Assigned Scanners card lists every device the pipeline is assigned to, together with its order.


Building a Pipeline

From the Pipelines page choose + New Pipeline, give it a name, then add steps to the three sections using the + Add button in each section.

Add a Validate Step

In the Validate section, click + Add and pick a validator.

Add validator

The menu lists one entry per integration that exposes validation (Roller, USC, list-based, etc.).

After adding a validator, select which Checkers it should run against. If an integration has no checkers yet, you'll see a prompt to go to Integrations and create one first.

Validator step

For each validate step, choose On Failure:

  • Abort - stop the pipeline and undo anything already committed
  • Continue - keep going to the next step

Use Check All / Uncheck All to quickly toggle every checker in the step.

Add Commit Steps

In the Commit section, click + Add to pick what actually happens on a successful scan.

Add commit step

Typical commit steps:

  • Redeem Ticket - Mark the ticket as used in the integration. Only tickets that passed through a checker with redemption enabled are actually redeemed here
  • Zone Enter - Increment the occupancy of a zone using a Zone Checker
  • Zone Exit - Decrement the occupancy of a zone

Commit steps show Fires for: and Skipped for: so you can see at a glance which checkers the step will act on.

Put redemption last

In most setups, Redeem Ticket should be the last commit step. Redemption cannot be undone, so if a later step (for example a zone enter) fails with Abort, a ticket that already redeemed cannot be returned to its unredeemed state. Putting redemption last keeps it as the final, irreversible action.

As with validate steps, each commit step has an On Failure setting (Abort or Continue).

Add Notify Steps

In the Notify section, click + Add to send the outcome somewhere else. The most common choice is HTTP Request, which has the scanner fire one or more HTTP Requests, for example to enable an attraction locally or on a remote server.

HTTP Request notify step

Tick each HTTP request the step should send. Notify steps always continue on failure - a dead endpoint never blocks a scan.

Reorder and Remove Steps

  • Drag and drop steps by the handle on the left to reorder them within a section
  • Click Remove at the bottom of a step to delete it

The editor also surfaces helpful hints. For example, if a checker has redemption enabled but you haven't added a Redeem Ticket step, you'll see a suggestion to add one.


Assigning Pipelines to Scanners

A pipeline does nothing until it is assigned to a scanner. On the pipeline detail page, the Assigned Scanners card lists every device the pipeline runs on, each with an Order value.

A single scanner can have more than one pipeline assigned, but only one per validation type (one Roller pipeline, one USC pipeline, and so on). When a code is scanned, the scanner tries pipelines in order (lowest first) until one recognises the code. This lets one scanner accept, say, both Roller tickets and USC memberships by having two pipelines assigned to it:

Order Pipeline Recognises
0 Entry (Roller) Roller ticket codes
1 Entry (USC) USC member codes

Assign or unassign pipelines from the scanner detail page in Devices.


Example: Zone Entry for Memberships

A full pipeline for a gated membership area could look like:

  1. Validate - Roller (checkers: Membership Checker, Daypass Checker), on failure: Abort
  2. Commit - Zone Enter (Happy Zone Check), on failure: Abort
  3. Commit - Redeem Ticket (only fires for checkers with redemption enabled, in this case daypasses), on failure: Abort
  4. Notify - HTTP Request (Football Wall 1 ON)

A scan of a valid membership is recognised, the visitor is counted into the zone, no redemption happens (memberships aren't redeemed), and the attraction is switched on locally. If the zone is full, the pipeline aborts at step 2, the ticket is not redeemed, and the attraction is not switched on.