Docs · How-to

Send one code to different destinations

One sticker on the table, three menus behind it: breakfast, lunch and dinner. One badge at a conference, a different agenda each day. One code on a box, the German shop for German scanners and the global site for everyone else. You draw the decision once on a canvas, and every printed copy follows it from the next scan onward.

Before you start

Two things to know first

  • Each rule costs 5 credits, and the charge covers every change · add, edit or remove · a save that changes nothing is free. The Save button carries the exact figure for the changes you have made, so you always see the price before you commit it. Scans through a flow bill the usual 1 credit.
  • This is a desktop task · below roughly 900 pixels wide the canvas is replaced by a read-only summary headed "This canvas needs room". Nothing is broken; there is genuinely no way to draw a graph on a phone that anyone would enjoy.

Build the flow

  1. Open the code and go to "Smart rules". From Links, click the code's row, then the Smart rules tab in the panel. Press "Open canvas". The screen is headed Routing flow.
  2. Pick a template, or start blank. On a code with no routing yet, a dialog opens straight away headed "Start from a template": App store router, Business hours, Event countdown, Restaurant menu, Conference agenda, A/B test, By country, By language, and Blank canvas. Every template is a working flow you can rewire · starting from one is faster than starting from nothing, even if you replace most of it.
  3. Find your bearings on the canvas. Three things are always there: a Scan node at the top ("Every scan enters here"), your condition steps in the middle, and a Fallback node marked Always on ("Scans that match nothing land here. Always present."). The left rail is Add a step; the right rail is Step settings.
  4. Add a condition. From the Add a step rail, pick one under Audience (Device, Country, Region, City, Language), Timing (Schedule, Date switch) or Traffic (A/B split, Scan count, Traffic source). Hovering any of them shows what it does and a worked example. It drops onto the canvas as a step with one branch per outcome.
  5. Fill in its settings. Click the step. The right rail switches to Step settings · countries as two-letter codes, languages as en, he, fr, a time zone for a schedule, weights for a split. Add a branch with Add group, Add tier or Add window, depending on the step.
  6. Connect every branch to a destination. Add a Destination from the bottom of the palette, then drag from a branch's handle to it. A destination holds either a Web address or an entry From repository. Repeat until nothing on the canvas says Not connected.
  7. Test it. Switch the right rail to Test a scan, set a device, country, language and time, and run it. It "runs the exact code the edge runs and lights up the path", then reports This scan goes to with the destination. Try the cases you care about, and try one you expect to fall through to the fallback.
  8. Save. The button reads Save · no charge when nothing billable changed, or Save · N credits with the exact figure when something did. A "Flow saved" confirmation appears and the flow is live for the next scan.

Why the save button is disabled

The canvas refuses to save a flow that cannot answer every scan. A panel headed "Fix before saving" names what is wrong, and each entry has a Show me button that jumps the canvas to it. Three things it catches:

  • "A branch is not connected" · the most common one by far. The branch is marked Not connected, with the hint "This branch leads nowhere. Drag from it to a destination." A branch you have configured but never wired shows "Not on the canvas yet · finish this branch to create it": it does not exist until it lands somewhere.
  • "A step is not connected to the scan" · a step floating on the canvas with nothing leading into it. No scan can ever reach it, so it is either wired in or removed.
  • "These steps form a loop" · a cycle. A scan has to end somewhere, and a loop is the one shape that never does.

This is stricter than most builders, on purpose. A half-drawn flow saved with a warning is a printed code that leads nowhere for whoever matches the loose branch, and they will not tell you · they will just close the page.

How a scan actually walks the flow

  • Branches are checked top to bottom · "the first branch that matches wins". Order matters, so put the specific case above the general one.
  • Gates run before the flow, not inside it · "Checked before the flow runs: password, geofencing, scan cap, expiry, preview." A scan blocked by a gate never reaches your routing at all. The gates live under the same Smart rules tab you opened the canvas from.
  • Location is inferred, not measured · country, region and city are "detected from the scanner's network (IP). Accuracy varies by area, so keep a sensible fallback wired." Do not build a flow whose correctness depends on city detection being right every time.
  • Scan counts are approximate under load · a Scan count step notes that "the counter is approximate under heavy traffic; scans past the last tier follow Everyone else." Fine for "the first 100 people get the giveaway", wrong for anything that must be exact.
  • Everything lands somewhere · the Fallback is always present and cannot be deleted. It is the destination for every scan your rules did not claim, so it deserves a real page rather than whatever was there first.

What a flow can decide on

  • Device · iPhone, Android or desktop. The app-store router in one step.
  • Country, Region, City · a market, a state, a city.
  • Language · the scanner's browser language.
  • Schedule · time of day and day of week, in a time zone you pick. Open hours to ordering, closed hours to a notice.
  • Date switch · one branch before a moment you set, one after. A teaser until launch day, the product page from then on.
  • A/B split · two or more variants by weight.
  • Scan count · by how many times this code has been scanned so far, in tiers.
  • Traffic source · a QR scan, a direct click or a referring site, so paid and organic traffic can land differently.

The engine and what each condition is evaluated against are covered on Routing.

Reusing work

  • Ready-made rules · the palette carries prebuilt steps such as Store hours, Weekend, European Union, EN · ES · FR and A/B test 50/50. Insert one and edit it.
  • Save your own · right-click a configured step on the canvas and choose Save as step. It appears under Saved in the palette and on the sidebar's Rules screen, headed Saved rules. Inserting one copies its settings, so editing the step later does not change the saved copy.
  • Apply a saved rule to another code · from Saved rules, choose Apply to a QR and pick the code. Its canvas opens with the rule added as a step · unwired. Connect it and save, exactly as if you had drawn it.
  • Point many branches at one address · save the address once in Repository and pick it as a destination with From repository. Changing it there moves every branch and every code that references it, in one edit and with no undo.

Limits and things that surprise people

Hard limits

  • 50 steps per flow, and 120 connections between them.
  • 20 branches on any single decision.
  • These are enforced when you save, and the canvas says "This flow is at its step limit." before you can exceed them. If a flow is straining against them, it is usually two codes.
  • An older code shows a banner · a code that used the simple smart rules opens with them converted to a graph and a note: "Converted from your smart rules. Nothing is saved until you press Save." The conversion itself is free · saving it back unchanged costs nothing, because nothing changed.
  • Removing a rule still costs · the charge covers every change · add, edit or remove · a save that changes nothing is free. It is disclosed on the button, where you can still change your mind, rather than discovered in the ledger afterwards.
  • Removing the whole flow keeps your gates · Remove flow, in the kebab menu next to Save, resets the canvas to the default route and sends scans to the fallback URL. Password, scan cap and expiry stay. There is no refund.
  • Re-saving an A/B split resets stickiness · the canvas warns that returning visitors may see a different variant. Finish a test before you rewire it.

After it is live

  • Watch the first real scans · Live shows them arriving, so you can confirm a branch behaves the way the simulator said it would. Read your scan analytics covers the rest.
  • Change a destination without touching the flow · editing a branch's address is still a rule change. If the whole code needs to point somewhere else, change the destination instead.
  • Give branches somewhere to land · if a branch needs a page and you have no website for it, Hosted pages builds one that a branch can reach through the repository.

Questions

Can one QR code go to different places for different people?

Yes. A dynamic code can carry a routing flow that decides per scan: by device, country, region, city, browser language, time of day, a date, a weighted split, how many times the code has been scanned, or where the visit came from. The printed symbol never changes · the decision happens when someone scans it.

What does a routing rule cost?

5 credits per rule, and the charge covers every change · add, edit or remove · a save that changes nothing is free. The Save button quotes the exact figure before you press it, so the price is on screen while you can still change your mind. Scans through a flow bill the normal 1 credit.

Why will the canvas not let me save?

Almost always because a branch is not connected to anything. The canvas marks it "Not connected" and a panel headed "Fix before saving" names the problem with a "Show me" button that jumps to it. A branch that leads nowhere would be a printed code that leads nowhere for the people who match it, so the save is blocked rather than allowed with a warning.

What happens to a scan that matches no rule?

It lands on the Fallback node, which is always present and cannot be removed. Every flow has one, and wiring it to something sensible is the single most useful thing you can do: country and city detection are derived from the network the scan arrives on and accuracy varies by area, so the fallback is where the unrecognised scans go.

Can I edit a flow on my phone?

No. Below about 900 pixels wide the canvas is replaced by a read-only summary of the current path, headed "This canvas needs room". You can read what a code does from a phone; drawing it needs a laptop.