Docs · Guide

Repoint many printed codes in one edit

Fifty table tents, one seasonal menu. Editing fifty codes by hand is fifty chances to miss one. Instead, save the destination once in the Repository, point every code at that entry, and from then on one edit moves all of them. The wiring is per code and you do it once; the payoff is every repoint after that.

Read this before you plan the estate

  • 200 codes per saved destination. That is a hard limit, not a guideline.
  • At 201, the edit is refused. You get a 409 in the dialog reading "This destination is used by ... QR codes · editing it in one step is capped at 200 until background processing ships", and nothing is written. There is no partial fan-out to clean up · the whole estate moves, or none of it does.
  • A bigger estate splits across several entries. One per region, per print run, per campaign. Decide that split before you print, not after.
  • No staging, no undo. The change is live on the next scan of every code pointing at the entry.

What the Repository is

Repository holds destinations that live outside any single code · saved links and hosted pages · reusable by every flow. A code that routes to a repository entry stores a reference to it rather than a copy of the address, which is what lets one edit reach every code holding that reference.

This is the estate-scale version of what routing already does for one code. Changing a single code's destination needs none of this · open the code, edit the destination, save. Reach for the Repository when the same address is printed on more than a handful of different codes, or when you know it will move again.

Save the destination once

  1. Open the Repository. In the dashboard sidebar it is Repository, under Library. An empty workspace shows "Nothing saved yet. Create a saved link, or make a page · both can serve any number of QR codes."
  2. Press Save a link. A dialog opens with two fields.
  3. Give it a Name. Up to 120 characters, and it is the label you will pick from later on every code, so name it after the job rather than the current address: "Autumn menu", not "example.com/menu-oct".
  4. Fill the Web address and press Create. It has to be a full http or https URL. The entry appears in the grid with a Saved link badge and "Not used yet".

Point each code at it

This part is per code, and it is the only per-code work in the whole exercise. A code reaches a repository entry through its routing flow, so open the canvas even if the code routes everybody to the same place.

  1. Open the code. Links is the list of your dynamic codes. Open the one you want.
  2. Open the canvas. Under Routing flow, press Open canvas. This is a desktop task · below 900px the canvas is replaced by a read-only summary of the path.
  3. Select the destination step the scans currently land on. The inspector on the right shows two buttons above the address field: Web address and From repository.
  4. Press From repository and choose the entry. The picker is titled Pick a destination and shows each entry with how many codes already use it. The step now names the entry instead of a URL.
  5. Save. The button reads Save · no charge when nothing billable moved, which is the normal case here: swapping a destination changes no routing condition. It reads Save · n credits only if you also changed a condition while you were in there.

Repeat for each printed code that should follow this destination. Back in the Repository, the entry's count changes from "Not used yet" to "Used by n codes", which is how you check you got them all before the count matters.

The edit that moves everything

  1. Open Repository and press Change address on the entry. The dialog opens with the warning already on screen: "Every code pointing here follows the new address immediately."
  2. Type the new Web address and press Save. Every code referencing the entry is republished as one operation. Scans from that moment go to the new address; the printed symbols are untouched.

If the entry is used by more than 200 codes, the save stops here instead: the 409 appears under the field, nothing is written, and every code still points where it did a second ago.

The cap exists because each referencing code is a separate write to the database and to the edge cache. Doing that synchronously past a few hundred codes would risk a request timing out mid-rewrite, which is the one outcome worse than a refusal: half an estate on the new address and half on the old, with no record of which is which. Refusing before the first write is the deliberate trade.

Over the cap

There is no setting that raises 200, and no bulk endpoint that quietly does the same thing in the background. What works is planning the split:

  • Split by something you would want to move separately anyway. Region, print run, venue, campaign. An estate of 600 codes as three entries of 200 is three edits, and each one is a boundary you already care about.
  • Split before you print. Rewiring a code is easy while it is on a screen and tedious across a warehouse of stock. The count on each entry tells you where you are.
  • Watch the count as you wire. The picker shows "used by n codes" next to each entry, so you can see an entry filling up before it is full.
  • A hosted page is the other answer. If what you actually need is for the content behind the codes to change rather than the address, point them at a hosted page and edit the page. The page is one entry however many codes reach it, and editing its content republishes nothing.

What else the Repository is for

  • Hosted pages appear here too. A page shows with a Page badge and an Edit page button rather than Change address · a page has no address to change, it has content, and editing that is a different job.
  • It is how a branch reaches a page. A routing branch can land directly on a web address or on the kinds a redirect can serve. A hosted page · including a contact card or a WiFi join · is reached as a repository entry. If a branch needs to land on one of those, this is the route.
  • Delete is refused while it is in use. The dialog lists the flows still pointing at the entry, under "In use · repoint or delete these flows first:". A destination cannot disappear from under a printed code by accident.
  • The address is screened on every edit. A new destination goes through the same safety screening as any other, so a blocked address is refused at the point of saving rather than at the point of scanning.

What it costs

Prices

  • Saving a destination in the Repository · nothing.
  • Changing its address, however many codes follow · nothing.
  • Pointing a code's destination step at it · nothing, because no routing condition changed. A save that also changes a condition bills 5 credits, every change · add, edit or remove · a save that changes nothing is free.
  • Each scan, wherever it lands · 1 credit.

Questions

Can I change the destination of many QR codes at once?

Yes, if they point at a shared destination rather than each carrying its own copy of the URL. Save the address once in the Repository, point every code's routing flow at that entry, and one Change address moves all of them on their next scan. Up to 200 codes can share a single entry.

What happens if more than 200 codes point at the same destination?

The edit is refused with a 409 and nothing changes. The check runs before any write, so you never get half an estate moved. Split the codes across several Repository entries · one per region, per print run, per campaign · and edit those. Each entry carries its own limit of 200.

Is there an undo?

No, and there is no staging step either. Every code pointing at the entry follows the new address on its next scan. Changing it back is another edit, which works exactly as fast, but anyone who scanned in between saw the wrong page.

Does repointing a shared destination cost credits?

No. Changing the address of a Repository entry is free, and pointing a code at an entry changes no routing condition, so that save is free too. Scans bill at the normal rate whatever the code points at.

Do the printed codes change?

No. Nothing about the symbol changes, because a dynamic code encodes its own short address and never the destination. That is true of a single repoint as well · the Repository only changes how many codes one edit reaches.

Can I delete a saved destination that codes still use?

No. The delete is refused and the dialog lists the flows still pointing at it, so you repoint or remove those first. A destination cannot vanish out from under a printed code.