Dynamic — change the destination later without reprinting.
…/
Leave blank for a random code. Lowercase letters, numbers, hyphens.
Clients
Group QR codes by client. Deleting a client never deletes its codes — they become unassigned.
Campaigns
Campaigns live under a client. Pick a client, then add campaigns.
Import QR codes from CSV
Columns: name,destination,tags,client,campaign (header row optional). Missing clients/campaigns are created automatically (admins). One row = one code.