Product

Routing: one code, many destinations

Every scan is routed at the edge, before any redirect happens. There are two ways to write the logic · the visual flow canvas in the dashboard, or the JSON rules object over the API · and one set of gates that runs before either.

Order of evaluation

Every scan walks the same corridor, in this order:

blocked / paused? expiry geo gate password scan cap flow / rules destination

The gates (expiry, geo gate, password, cap) exist to refuse a scan; routing exists to pick where an accepted scan goes. Anything unmatched falls through to the link's main URL · routing can never strand a scanner.

The flow canvas

A flow is a node graph: a start node, condition nodes that branch, destination nodes that end. You drag it together in the dashboard, watch the simulator walk a pretend scan through it, and publish. Up to 50 nodes and 20 branches per condition · which in practice is a wall of logic no rules object stays readable at.

ConditionRoutes onBranches
deviceThe scanning deviceiOS · Android · desktop (opt-in) · else
geoCountry, read at the edgeyour country groups · else
regionState or region within a countryyour region groups · else
cityCityyour city groups · else
langBrowser language (Accept-Language)your language groups · else
scheduleTime windows: recurring (days + HH:MM in a timezone) or absolute ISO rangesfirst matching window · else
whenBefore or after a single dateafter · else
splitWeighted A/B split · sticky keeps a visitor on one variant, random rerollsyour variants · no else, it always picks
scansHow many times the link has been scannedthreshold branches · else
sourceWhere the visit came from: utm_source, utm_medium, utm_campaign, referreryour value groups · else
  • when is the only one-way switch · every other condition can answer differently on the very next scan, and this one crosses its instant once and stays crossed. That is what makes it safe on something nobody is coming back to change · see a board that retires itself on completion day.
  • Destinations can be inline URLs or entries from your resource repository · point ten flows at one saved destination and re-point them all in one edit.
  • Starter templates cover the common shapes, and each one has a page where you can drive it against the real evaluator before you build anything: device routing for an app-store split, time-of-day routing for opening hours, split testing a printed code, routing by country, and language routing.
  • Source routing is the newest condition and has no starter template yet. It reads the campaign tag or the referring host, so one printed code can answer differently in a parcel and in an email.
  • Each condition costs 5 credits every time it changes · adding one, editing one and removing one each bill the same, and the same price applies to a rules-object key. Saving a flow you have not changed bills nothing, and repointing a branch at a different destination is free · it is the conditions that are metered, not where they lead. Nothing is refunded, so removing a condition and putting it back costs twice.
  • A link that routes with a flow refuses a raw rules object over the API with 400 · one brain per link. Gate rules still apply alongside a flow.

The rules object

The same routing, written as JSON for API and MCP clients: device, geo, language, schedule, A/B split, expiry, plus the gates. The full annotated example with every key lives in the API reference; it is machine-checked against the billing list, so if a key is billable it is documented there.

The gates

  • Password · the edge shows a gate form; the password is hashed in your browser and only the SHA-256 hash is ever stored.
  • Geo gate · allow-list or block-list of countries, with an optional elsewhere-URL for refused scanners. Runs before the password gate.
  • Scan cap · a hard ceiling; past it, scanners see the paused page.
  • Expiry · after the date, scanners 302 to a fallback URL or see an expired notice. Checked before every other rule.
  • Preview interstitial · an anti-quishing, verified-brand "you are heading to…" page with optional auto-continue, for codes in hostile environments (posters, parking meters).