Reticle
← All articles

Smart routing: one QR code, many destinations by country, language, device, and time

How it works

A dynamic link already has one required destination. Smart routing adds up to 10 rules on top of it, each pairing a set of conditions with a URL. When someone scans the code, Reticle checks the rules top to bottom and serves the first one whose conditions all match. If nothing matches, the scan falls through to the link's regular destination, exactly like a link with no rules at all.

A rule can match on country (where the scan came from), language (the primary language the scanner's browser is set to), device (iOS or Android), and local time, a day of the week and a time window in a time zone you pick. A single rule can combine several of these, for example "iOS scanners in Spain", and conditions you leave off a rule are simply ignored for it. Nothing about the printed code changes. It's still one image encoding one short link; the branching happens at scan time.

Step 1: open a dynamic link's detail pane

Smart routing is set up after a dynamic link already exists, from My codes, not from the generator. Open the Dynamic tab and select the link you want to route. In the detail pane, below Password protection, there's a Smart routing section. On a Free account it shows what the feature does and a worked example; on Pro, it shows your current rules (or "No rules yet" if you haven't added any) and a Manage rules button.

Step 2: add rules in the editor

Manage rules opens a modal where each rule is one row: a Send to destination URL, then optional condition fields, Countries (comma-separated codes like "ES, MX"), Languages ("es, pt"), and a Device dropdown for iOS or Android. Below that, day-of-week checkboxes and a From/To time window cover the time-based half, evaluated in a time zone you choose from a dropdown (defaulted to your own browser's zone). Use ↑/↓ to reorder rules, since order decides which one wins when more than one could match, and ✕ to remove one. Save applies the whole list at once.

Step 3: understand first-match-wins

Rules are checked in the order they're listed, and the first full match stops the search there. If you want a specific case handled differently from a broader one, for example "iOS users in Spain" versus "everyone in Spain", put the more specific rule first. A rule with no conditions at all isn't allowed, since it would silently swallow everything below it, and the link's regular destination already serves as that catch-all.

A worked example

Say a link's regular destination is your international storefront. Add one rule matching country ES and language es pointing at your Spanish store, and a second rule matching device iOS pointing at your app's App Store page. A Spanish-speaking scanner in Spain lands on the Spanish store. An iPhone scanner anywhere else lands on the App Store. Everyone else, a laptop, an Android phone outside Spain, still lands on the international storefront, no rule needed for that case since it's just the default.

Where this fits with existing routing

If you've already set up iOS and Android store destinations on a link, those keep working: Smart routing's own device condition sits above them as a more flexible layer, and if no rule matches, the link falls back to those flat overrides before finally falling back to the regular destination. You don't have to migrate anything, a link with only the old-style overrides behaves exactly as it always has.

A note on privacy

To pick a destination, Reticle reads the country signal it already resolves for the aggregate country tally, and, when a rule matches on language, the language preference your browser sends with the request. That language read happens for that one routing decision on that one request and is never stored, the same transient-only treatment the rest of Reticle's traffic signals get. Which rule matched isn't recorded either, only that a rule matched at all, since remembering the matched rule would effectively store the scanner's language preference by implication.

Frequently asked questions

Is smart routing free?

Editing rules is part of Pro. If your account later lapses from Pro, any rules you already set keep working exactly as before, you just lose the ability to change them until you're back on Pro.

How many rules can one link have?

Up to 10, checked in order from top to bottom. The first rule whose conditions all match wins, and if none match, the scan goes to the link's regular destination.

What can a rule match on?

Country, browser language, device (iOS or Android), and local time of day or day of week in a time zone you choose. A single rule can combine more than one, for example iOS scanners in Spain, and you can add as many rules as you need for different combinations.

Whose time zone does a time-based rule use?

Yours. You pick a time zone when you set up a time rule, and Reticle evaluates the scan against that time zone, not wherever the scanner happens to be. Business hours are a property of the business, not the visitor.

Does this work on dynamic vCard contact links?

No. Smart routing is for regular dynamic links that redirect to a URL. Dynamic vCard links serve a contact page instead, so routing rules don't apply to them.

Does adding rules change the printed QR code?

No. The code still points at the same short link. Rules are set from My codes after the fact, and they take effect on the next scan, no reprinting needed.

Open My codes, pick a dynamic link, and set up Smart routing from the Dynamic tab's detail pane. Editing rules is part of Reticle Pro.

Keep reading