Rules and the map are the product, not the upsell.
Every paid plan has the rule builder with a test scan, placements on a map, campaigns and full analytics. Here is one scan, followed from the printed code to the page it opens.
Someone scans the front gate banner at St Mary’s Prep on Sat 10 Oct at 10:30. qurl checks its expiry and password, then its rules from the top, and stops at the first match.
If a rule can’t be checked for any reason, the scan goes to the default destination. A scan never lands on an error page.
Five kinds of rule and two checks, each one a sentence.
Conditions inside a rule all have to be true; a second rule gives you “or”. Drag rules to reorder them. Each rule ends in one destination.
-
Time
Vireo Café, SohoIf the time is 07:00–11:30 and the day is Mon–Fri, send to /menu/breakfast.
Time windows and days of the week, in London time.
When the clocks go back on 25 October, rules keep to London time, so breakfast still starts at 07:00.
-
Device
A shop with an appIf it’s an iPhone, send to the App Store. If it’s an Android phone, send to Google Play.
An iPhone, an Android phone or a computer.
Desktop scans are rare, but they still land somewhere: the default.
-
Location
St Mary’s Prep, agents abroadIf the scan comes from Hong Kong, send to /hk/prospectus.
A city or a country from a short list, or anywhere outside the UK.
Location comes from the scanner’s network and is approximate. qurl never promises street-level precision.
-
Scan count
Hartley Flowers, Northcote RoadFor the first 100 scans, send to /autumn-offer. After that, send to /shop.
The first so many scans of a code, or every scan after that. First 100 scans get 20% off, for example.
Counts are per code, not per person, because counting people would need a cookie.
-
Date
St Mary’s Prep, front gateIf the date is 8 November 2026 or later, send to /visit.
From a date onwards, or on the open days you’ve named.
It starts on its own at midnight, London time, so nobody has to remember on the day.
-
Expiry
Open-day RSVPsAfter RSVPs close on 1 November, send to /open-days/waiting-list.
After a date you choose. The code works to the end of that day.
An expired code always has somewhere to go, so nobody reaches a dead page.
-
Password
Parents onlyAsk for the parents’ PIN before sending to /parents/fixtures.
A PIN or password page, hosted by qurl, before people reach the destination.
It’s a light gate, not real security: the destination’s address itself isn’t secret.
Templates to start from. Restaurant day parts, app store by device, open-day RSVP with expiry, and first 100 scans offer.
Checked in order. Expiry first, then password, then your rules from the top. The first match wins; anything unmatched goes to the default.
Test a scan before you print.
Pick a day and drag the time. The test scan shows which rule would apply and where the scan would land, so surprises turn up on screen rather than on the table.
Vireo Café table tentqurl.co/vireo-table · three rules and a default
Scan at
Rule 1 only runs Monday to Friday, so weekend breakfast gets the full menu. If that’s not what you want, add a weekend rule before you print.
Codes that look like yours, at the size they’ll be printed.
A brand kit holds your colours, logo, module style, frame and call to action. Every code prints its short link underneath. Export is print-ready SVG, PDF or PNG.
Tile, the default
Square modules set slightly apart. St Mary’s navy, with a frame and a call to action.
Square
The classic look, with just the short link in the frame.
Soft
Rounded modules and eyes. Vireo Café’s brown, with a frame to match.
Dot
Round modules. On the Starter plan, a small qurl badge sits in the frame.
Head of Admissions
St Mary’s Prep, Wandsworthstmarysprep.example 85 mm
Shown at true size.Shown at 82% to fit your screen. A one-time calibration with a bank card makes the millimetres true on any screen.
Scannability check
A code needs to be at least a tenth as wide as the distance it’s read from. Codes too faint or too small to scan can’t be exported.
Four kinds of code. A link; a Google review shortcut; an app download that picks the right store for the phone; and a contact card, hosted as a page people save to their phone, which qurl sets up for you.
One spreadsheet, one code per row.
Create codes from a CSV file: one business card code per member of staff, or one code per poster, each with its own short link and its own scans.
| name | short link | destination |
|---|---|---|
| Eleanor Hart | eleanor | stmarysprep.example/staff/eleanor-hart |
| James Okafor | james | stmarysprep.example/staff/james-okafor |
| Priya Shah | priya | stmarysprep.example/staff/priya-shah |
| and 31 more rows | ||
Head of AdmissionsSt Mary’s Prep James OkaforSt Mary’s Prep Priya Shah
BursarSt Mary’s Prep 31 more
The Staff business cards campaign has 34 codes made this way. When someone leaves, their card’s code can point to the admissions office instead.
Every code, pinned to where it’s printed.
Drop a pin for each placement and see its scans, its busiest times and its share of all scans. The shading is darker round the busiest placements. Choose a placement on the map.
One code per placement. A code printed in 20 places can’t tell them apart, so qurl can make one code per placement in bulk: same destination, same campaign, separate counts.
Approximate, on purpose. Scan locations come from the scanner’s network, and qurl never claims street-level precision. A scan counts for the placement its code is pinned to; codes with no pin count as scans without a fixed place.
Campaigns, and a report a head can take to governors.
Codes can be grouped into a campaign with dates, a goal and tags. Results add up there, and each campaign has a one-page report you can print or save as a PDF.
Top placements
A4, shown small.The top of the page, cropped. Figures are the St Mary’s example used across this site.
Campaign colours are only ever used for data: pins, swatches and charts.
Numbers that come with a sentence.
Reports a non-marketer can use, on every plan.
Scans and people, last 30 days
Which rule matched
Front gate banner, last 30 days.
When people scan the front gate
What one scan records
- When
- Sat 26 Sep 2026, 10:14
- Code
- Front gate banner, P01
- Device
- iPhone, iOS
- Place
- Wandsworth, London (approximate)
- Rule
- None applied, so the default
- Sent to
- stmarysprep.example/open-days
No cookies, and the IP address isn’t kept. Area and device are counted across all scans.
Tagged links, passed to Google Analytics
stmarysprep.example/open-days/today
So a visit to the RSVP page, in Google Analytics, can be traced back to the banner that started it.
Export
- PDF2027-open-days-report.pdf
- HTML2027-open-days-report.html
A campaign’s report prints on one page or saves as a PDF, and downloads as a file that opens in any browser.
Who changed what, and when.
Invite the people who print things. Each has a role, and every change to a destination is kept in the activity log.
- Owner
- Everything, and the only role that can add or remove an Owner.
- Admin
- Everything else, including inviting people.
- Editor
- Codes, rules, campaigns and placements.
- Viewer
- Reports and the map, without changing anything.
Checked at every scan, and fair to the people who scan.
Fake QR codes are a real problem in the UK. qurl is built so yours can’t be turned against the people who scan them, and so you learn which print worked without learning who scanned it.
- Safety checks
- Every destination is checked against lists of known harmful sites when you save it and again at every scan. On a match, scanners see a warning page.
- Short link
- Printed under every code by default, so people can see where it goes, and type it if they can’t scan.
- Report a code
- Anyone can report a code that looks wrong. The pages qurl shows for a code carry the link too.
- Cookieless
- Nothing is stored on the scanner’s phone. People are estimated, not tracked, so there’s no consent banner in their way.
- UK GDPR and PECR
- qurl records each scan with a rough area and the type of phone, uses the IP address for a moment without keeping it, and saves nothing on the phone. Schools get a data processing agreement.
- Codes never die
- If you downgrade or stop paying, every printed code keeps sending people to its current destination.
Try a rule on your own code.
Create a code, add a rule and run a test scan before you print anything. Your first code takes under five minutes.