Programmable QR

Printed once.
Pointed anywhere.

The code on your poster is permanent. What happens when someone scans it is decided at that moment — by rules you write and change whenever you like.

A folded card on a cafe table, carrying the codeAn event badge on a lanyard, carrying the codeA paper poster taped to a concrete wall, carrying the codeA cardboard box with a label, carrying the codeA square sticker on the glass of a shop door, carrying the code
Move over the image

The same code in all five.Printed on a table card.

Live resolution

time.of_day = 12:00geo.country = CHdevice.os = ioslang.primary = descan.count_total = 1284
  1. 1Lunch, 11–14
  2. 2Evening, from 17:00
  3. 3Otherwise
https://adler.ch/lunch

For: Lunch and dinner menu · Daily special without reprinting · Wine list only from 5pm

Read this one out in full

Why programmable at all

One carrier. Three states. Weeks apart.

The banner stays on the same fence the whole time. What it points to does not — and the weeks after the sale are the ones that pay for it.

The same sales banner on the same fence three times — viewing date, listing, sold — carrying the identical code in all three.
Before — the viewing dateRunning — the listingAfter — sold, and the agent's other properties

What the code knows at scan time

Six things decide where a scan goes.

time
Hour, weekday and date — in the code's own timezone, not the server's.
geo
The country, read from a local database — never an API call.
device
Operating system, phone or desktop, and whether it's a bot.
lang
The language the phone asks for.
scan
How often this code has been scanned, and whether this is the first time.
params
Anything you append to the link yourself.

One trail, several codes

The same sign says something different to everyone.

Stations are scanned in an order you decide. Each code knows how far the visitor has come — and shows what fits that moment. Progress lives in a signed cookie without an identifier: just the number of steps taken.

Step 1

Entrance

Due here — the actual content.

visitor.is_next = true

Step 2

Exhibit

Too early — where to go first.

visitor.is_next = false

Step 3

Finish

Too early — where to go first.

visitor.is_next = false
visitor.found = 1

Evaluated in your browser. First matching rule wins, the last one always does.

For: Assembly instructions step by step · Museum and city trails · Training paths and safety briefings · Rallies with a prize at the end

Read this one out in full

Not only outward

A scan can bring something back.

So far this was about where a code leads. It can also ask: a page with a form, and whatever someone types sits in your workspace — and goes, if you want, to wherever you are already looking.

stored, always
The entry sits with you, on the code page and in the CSV. That happens first, and regardless of whether anything else works out.
delivered, if you want
Additionally as mail to whoever has to call back, or as a webhook into your CRM. One address is set up once and used by any number of forms.
nothing gets lost
If the other end does not pick up, it is retried for two hours. After that it says what went wrong. The entry itself is never affected.

What stays true

A printed code has to outlive your campaign.

always answers
Every ruleset ends in a rule that matches everything, so a scan never lands on an error page.
keeps working
The redirect runs on its own. If sign-in, the dashboard or the API go down, printed codes carry on.
every version kept
Editing rules writes a new version. Rolling back is one click, not a restore from backup.

Reprinting is the expensive part. Stop doing it.

Create a code

No self-registration yet

Ask for access.

We set up workspaces by hand for now. Tell us briefly what you want to print — you will hear back from a person.

Goes out as an email and is not stored anywhere.