Compose the rule, no code required.
Pick from click-side signals (country, device, OS, browser and language) and combine them in one rule. Conditions in a rule are AND-ed: a visitor has to match all of them. Drag to reorder.
Send Berlin to the German store, iPhone taps into the App Store, and split the rest 50/50 between two landing pages, all from a single pcol.ink URL. Simple rules that stack into surprisingly capable flows.
Stack if/else conditions in the order you want them checked, set a fallback for everyone who doesn't match, and ship. Picolink evaluates them on the same hop as the redirect.
Pick from click-side signals (country, device, OS, browser and language) and combine them in one rule. Conditions in a rule are AND-ed: a visitor has to match all of them. Drag to reorder.
Picolink runs the list once, takes the first rule that matches, and stops. Reorder a rule and you change who lands where. No hidden priority, no scoring. Just the ladder you wrote.
The visitor gets a single 302 to the chosen URL. No middle page, no router subdomain, no extra DNS lookup. Same behaviour as a plain link, just pointed at the right place.
Routing gets ugly when it tries to be clever. Picolink keeps it boring: explicit signals, explicit order, explicit fallback. Small parts that compose into whatever flow you need.
Every condition comes from request metadata the redirect server already has: IP-derived country, the device, OS and browser from the User-Agent, and the Accept-Language header. Nothing on your destination page changes.
The list you see is the list that runs. Picolink doesn't reweight or score. It walks top-to-bottom, takes the first match, and ignores the rest. Reordering is dragging. No surprises in production.
Conditions AND together inside a rule, rules form a first-match priority ladder, and each rule can fan out to a weighted split. That's enough to express "German mobile → store, German desktop → site, everyone else → A/B test" on one link.
Give a rule several destinations with weights. Picolink hashes a few stable request signals into a bucket, so the same visitor always lands on the same variant: no cookie, no flicker, no consent banner.
If nothing matches (odd User-Agent, missing geo, a country you didn't list), the fallback catches it. A routed link never dead-ends in a 404.
Rules run in the same request that issues the redirect: no extra service, no second lookup, no router subdomain. The visitor sees exactly one 302.
Routing is what teams add when a short link has to follow the visitor: app stores, country stores, partner pages, experiments. Things you used to need four separate links for.
iOS taps go to the App Store, Android to Google Play, desktop to a clean preview page. One sticker on the back of the phone case.
One link in the press release. German readers land on the German page, Japan on a translated mirror, everyone else on the global page.
Split traffic between two landing pages by weight, no tag manager. The same visitor stays on the same variant, so your numbers stay clean.
Combine geo, device and a split in one link: German mobile to the store, German desktop to the site, the rest into an experiment.
Open any link, add a rule, stack a few conditions. No SDK, no tag manager, no extra hop. Just the right destination for everyone.