Smart routing
Send one link to different destinations by device, country, time of day, or an A/B split.
Reviewed 24 Oct 2026Available from the Pro plan
One link, several destinations
Normally a link has one destination. With routing rules it can choose between several, decided at the moment of the click from what we can tell about the visitor. Rules belong to a link: open a link from the Links list and choose its Routing tab, beside the Details tab that holds the destination the rules override.
| Rule type | Decides on | Classic use |
|---|---|---|
| Device | Phone, tablet, or desktop | Send mobile visitors to the App Store and desktop visitors to the web app. |
| Country | Which country the visit came from | Regional storefronts, local pricing, language-specific pages. |
| Time of day | A start and end time | Office hours to live chat, out of hours to a contact form. |
Those three are conditional rules: they ask a question about the visitor and match or they do not. The fourth rule type, an A/B split, works differently: it is a weighted choice rather than a test that passes or fails, it takes no part in the ordering below, and it changes where unmatched clicks end up. A/B splits covers it on its own.
How a destination is chosen
Conditional rules are tried from the top of the list, and the first one that matches decides the destination. Drag to change that order. The dashboard lists them under Match in order, which is the sequence a click walks. Paused rules are skipped entirely; the redirect engine is only ever handed the active ones.
Order is the whole design
When no conditional rule matches, the click does not go straight to the link's ordinary destination. Any active A/B split on the link is considered next, and the ordinary destination is only reached when the link has no split taking traffic. Keep it pointing somewhere sensible all the same: it is what a link with no split falls back to, and what every link resolves to once you pause or remove its rules.
Writing the rules
- Device: choose Mobile, Desktop, or Tablet.
- Country: search and select a country by name or code (ISO 3166-1 alpha-2) from the list, such as United States (US), United Kingdom (GB), or Germany (DE).
- Time of day: a start and an end time, in UTC. Each field shows an approximate local-time equivalent alongside it.
- A/B split: weighted destinations. Weights are relative, so 50/50 and 1/1 mean the same thing. Each saved split rule shows the share it takes as "% of traffic", and the New rule form previews that share for the rule you are still typing.
Country detection is approximate
A/B splits
A split sends a proportion of visitors to each destination and lets you compare. Splits sit outside the ordering above: they do not compete by priority, they carry no drag handle, and they are listed in their own A/B split group under the conditional rules. A click reaches them only after every conditional rule has been tried and none matched.
A split replaces the ordinary destination
- Change one thing between the variants. If the pages differ in three ways, a difference in the results tells you nothing about which one mattered.
- Decide up front how long you will run it and do not stop early. Early numbers on small samples are noise, and stopping the moment one variant looks ahead is the most common way to reach a confident wrong answer.
- Know which of the two behaviours below your workspace is getting before you read the result. Whether a returning visitor stays on the variant they were first shown depends on a workspace setting, and it changes what the numbers mean.
When the workspace has Audience analytics switched on, a split is sticky per visitor: the choice is computed from the visitor's own first-party cookie together with the link, so the same browser keeps the same variant on that link every time it clicks. The cookie lasts a year, so the identity holds for that long, but it is a browser, not a person: the same reader on a second device, in a private window, or after clearing cookies is a new visitor and is drawn again. The link is part of the calculation on purpose, so a visitor who lands on variant A here is not pinned to the same side of every other split you run.
Without that setting there is no identity to be sticky to, and every click is an independent weighted draw, so someone who opens the link twice can land on both variants, and a comparison you read as "people" is really "clicks". The same fallback applies to any click with no visitor: traffic we classify as a bot, and a visitor whose browser refuses the cookie. Stickiness also has a limit worth knowing before you touch a running experiment: increasing a variant's weight leaves the visitors already assigned to it where they are, but reducing a weight, or adding and removing variants, reshuffles some existing visitors onto a different destination.
Testing, pausing, and removing rules
You do not need a real phone to check what a rule will do. Test these rules, beside the rule list, runs the same resolution the redirect engine runs: pick a Device, a Country, and a Time (UTC), then Run simulation. It reports the destination the click resolves to and which rule matched, or tells you no rule matched and the default destination decided. A rule you are still typing into the New rule form joins the simulation as soon as its destination URL is valid, so you can try it before saving it. A split is a fresh random draw on every run, so repeat runs on the same input can differ. The simulator has no visitor of its own, so it does not take the sticky path a real click can.
Each rule row carries a pause control. A paused rule keeps its settings, its destination, and its place in the order, and the redirect engine ignores it completely, so pausing is how you take a rule out of service without losing how it was built. Paused rules are marked Paused, and still count toward the Rules meter. Select several rows and the toolbar that appears offers Resume, Pause, and Remove for all of them at once.
Rule type cannot be changed later
What your plan allows
Smart routing is a Pro feature, and its cap is counted per link rather than per workspace. Every link carries its own allowance, so adding rules to one link does not use up another link's room.
- Smart routing rules / link, by plan
- Free Not included · Starter Not included · Pro 20 · Business 50
Paused rules count towards that allowance too: it counts every rule on the link, not only the active ones. If a link is at its cap, remove a rule you no longer need, or split the intent across a second link.
Step by step
Send phone users to the app and everyone else to the website
For: Anyone who can edit links, on Pro or above
Before you start
- A plan that includes smart routing.
- An existing link: routing rules attach to a link, they are not a link in themselves.
- The destinations: your app store listing and your web page.
Steps
Confirm the link's ordinary destination is your website.
This becomes the default destination for everyone no rule matches, so it must already be the sensible one.
Open the link from Links and choose Routing.
Open New rule and set its type to Device.
Set the device to Mobile and the destination to your app store listing.
If you want tablets treated separately, add a second Device rule for Tablet.
Tablets are their own category: a mobile rule does not cover them.
Check the rule order.
Specific rules sit above general ones, and no row is marked Never reached or Overlaps.
In Test these rules, set Device to Mobile and Run simulation.
It resolves to your app store listing and names the device rule as the match.
Set Device to Desktop and run it again.
It resolves to your website, the default destination, matched by no rule.
Open the link on a real phone.
You land on the app store listing.
What you should see
One address you can put everywhere, which sends each visitor to whichever destination suits the thing they are holding.
How to check it worked
- A real phone reaches the app store listing.
- A desktop browser reaches the website.
- The link's analytics show clicks accumulating as normal: routing does not affect counting.
Edge cases
- A visitor arrives with an unusual or unrecognised browser.
- Every visit is classified as mobile, tablet, or desktop, and anything ShortZen cannot place as a phone or a tablet is treated as desktop. There is no "unknown" outcome, so an odd client, such as a scraper, a preview bot or an obscure browser, matches your Desktop rule. Point that rule somewhere that is safe for a non-human visitor to load.
- You have both a device rule and a country rule.
- Whichever sits higher in the order wins outright. They do not combine. If you need "mobile in Germany" specifically, that is a single rule's worth of intent that the current rule types cannot express; use separate links.
- The link also has an A/B split on it.
- The device rule is still tried first. Visitors it does not match are handed to the split rather than to the link's ordinary destination, so the website you set as the default destination is not where desktop visitors land. Which side of the split each of them gets is settled once per visitor while Audience analytics is on, and drawn afresh on every click while it is off.
- The link is also password-protected.
- The password is asked for first. Routing decides the destination afterwards.
If something goes wrong
- A rule is marked Blocked for safety.
- The nightly safety check flagged its destination, so visitors skip that rule and go to the next one that matches, or to the link's own destination. Changing the destination clears the block, and the new one is checked when you save. If the site itself is cleaned up, the block lifts on its own at the next nightly check.
- Everyone is landing on the default destination.
- The rules are not matching. Check the link you attached them to is the one you are testing, that none of the rules you are relying on is marked Paused or Blocked for safety, and that the country you selected in the search field is the one you meant. Run the case through Test these rules to see which rule the engine picks.
- Desktop visitors are being sent to the app store.
- A rule is broader than you think, or ordered above a rule that should take precedence. Read the list top to bottom as a click would, and look for a Never reached or Overlaps badge on the pair. Neither marks a broad rule above a narrow one of another kind, so run the case through Test these rules.
- A rule needs to come off in a hurry.
- Pause it rather than deleting it. A paused rule stops affecting clicks immediately and keeps its destination and its place in the order, so you can resume it once you have worked out what went wrong. Delete only when you are sure you will not want it back.
- Nobody reaches the link's ordinary destination any more.
- Check whether the link has an A/B split rule taking traffic. While one is active, it takes every click no conditional rule matched. Pause the split rules to return those clicks to the ordinary destination.