Enabling QR Codes
How to enable a QR code
The QR code is part of a mailer's message. Set it in either place:
- On a creative (reused every time you send it, from the dashboard, a campaign, or an integration): go to Creatives, click the creative (or start one with New creative), and go to its message step - Back for postcards, Inside for notecards, Letter for letters. See Creating a creative.
- On a single send: in Send Mail, on the Message step.
Then:
- In the QR code section, enter where recipients should land in QR code destination (optional):
- Custom URL - any publicly accessible URL (booking page, product page, landing page).
sms:,mailto:, andtel:links also work. - Default thanks.io landing page - click Use default for the built-in landing page. It tells recipients you'll reach out soon, shows the contact details from your branding, and emails or texts you on each scan.
- Dynamic URL - use replacement variables in the URL (e.g.,
https://yoursite.com/welcome?name=~FIRST_NAME~) for per-recipient links. See Dynamic QR URLs. - Custom field URL - enter just
~CUSTOM1~(or any of~CUSTOM1~to~CUSTOM10~) to use each recipient's custom field value as the full URL. See Use a Custom Field as the Full QR URL.
- Custom URL - any publicly accessible URL (booking page, product page, landing page).
- Check the preview beside the editor to see where the code prints.
- Save the creative on its Review step, or carry on with the send.
Leave the field empty for no QR code. You can also use Add QR code above the message text, which opens the same setting in a dialog.
If your front design already has a QR code printed in it, you can have thanks.io track that code too. See Tracking a QR code already printed in your design.
QR codes are a paid-plan feature. On the Free plan the QR code field is locked and shows an upgrade badge.
Sending a creative through the API or an integration
A creative sent through the API, Zapier, n8n, or a HubSpot workflow uses the QR code saved in its message. Those sends can also add a QR code URL of their own (qrcode_url in the API, QR code URL in HubSpot and n8n), even when everything else comes from the creative.
Tips & best practices
- Use the thanks.io default landing page for campaigns where you don't have a specific URL - it tells the recipient you'll be in touch, shows your branding contact details, and alerts you to each scan.
- For high-intent campaigns, use a custom URL pointing to your booking calendar or product page.
- Always test your QR URL by scanning a preview piece before launching a campaign.
- Combine with Move Recipient on Scan to automate follow-up when someone scans.
Setting a QR code for an entire mailing list
You can set a default QR code URL at the mailing list level. Every recipient on that list will receive that URL as their QR code destination, unless a more specific URL is configured elsewhere.
- Go to Mailing Lists in the sidebar and open the list.
- Open the list's Advanced settings (the button at the top of the list's page, or the link below its recipients).
- In the Tracking URL card, enter your destination URL in the QR Code URL (optional) field. It must start with
http://orhttps://. - Click Update.
The Tracking URL section requires a Business plan.
QR code priority order
When multiple QR URLs are set, thanks.io uses the highest-priority one:
| Priority | Where it is set |
|---|---|
| 1 (highest) | Mailing List - Tracking URL |
| 2 | The message - QR code destination on the creative or the Send Mail Message step |
| 3 | Zapier / API |
VisitorView retargeting lists and QR URLs
For VisitorView retargeting lists, the Tracking URL section works the same way - set a URL there to override the message's QR destination for everyone on that list.
QR placement on your mailer
Where the QR code appears on the finished piece depends on the mailer type:
| Mailer type | Where QR appears |
|---|---|
| Postcards, notecards, and letters | Printed on the message side - enter a URL in the message's QR code section and check the preview to see the position |
| Postcard, notecard, MagnaCard, and gift card fronts (design side) | A QR code already printed in your own uploaded design can be made tracked - see Tracking a QR code already printed in your design |
| 4x6 and 6x9 postcard fronts (design side) | Can also be added by building the front as a Street View design, whose layouts include a QR code |
| Gift cards and MagnaCards (message side) | No QR code on the message side |
Placing a QR code on the front (design side) of a card
By default, the QR code prints on the message side. There are two ways to put a tracked QR code on the front:
- Your own design, with a QR code already in it - upload it and have thanks.io track the code. See Tracking a QR code already printed in your design below.
- A Street View design (4x6 and 6x9 postcards) - for example, a real estate "just listed" postcard linking directly to the property website. Its layouts include a QR code.
To build the front as a Street View design:
- In the creative wizard, on the Front step, choose Street View design (or Edit the Street View design on a creative that already has one).
- Pick a Layout - it sets where the photo, your text, the QR code, and your logo sit.
- In the QR code and images section, enter the QR code URL, or click Use message QR to send front scans to the same URL as the message side's QR code. Scans from the front are tracked too.
- To make it per-recipient, use a replacement variable such as
~CUSTOM1~in the URL so each card links to the correct listing. - Save the design and check the preview - the QR code renders on the front of each printed card.
See Dynamic Images for more on dynamic fronts.
For just-listed campaigns, set the front's QR code URL to the individual property listing page. Prospects who scan the QR code on the front of the card are taken directly to the property website, no need to flip to the back.
Tracking a QR code already printed in your design
A QR code that is part of your uploaded artwork prints as part of the image, so thanks.io can't count its scans. The creative wizard can make it tracked: at print time, thanks.io covers your printed code with a tracked thanks.io QR code in the same spot, and the rest of your design prints exactly as you uploaded it.
This works on the front of a postcard, notecard, MagnaCard, or gift card that uses your own image.
Steps:
- In the creative wizard (Creatives → New creative, or Edit on a creative), go to the Front step and put your design on the front, for example with Upload a file or Design in Canva. The Front step checks each new image for a QR code.
- If it finds one that holds a web address, We found a QR code that isn't tracked opens. Where scans should go is prefilled with the address in your code. Change it if you want scans to land somewhere else. It must be a full web address, starting with
https://. Click Use thanks.io default to send scans to the thanks.io default landing page, which tells people you'll reach out soon and shows the contact details from your Branding. - Click Make it tracked. To print your code as it is, untracked, click Keep it as-is instead.
If the code looks like a QR code but can't be read, We found a QR code we couldn't read opens instead. This is common with designs made by AI image tools, which draw a code that is only for looks and won't scan. Enter where scans should go (or click Use thanks.io default), then click Replace it: thanks.io prints a working, tracked QR code over the drawn one, and the rest of your design stays as it is.
The front then shows a Tracked QR code panel with the address scans go to, and the creative's card in Creatives shows a Tracked QR badge. The preview shows the front with the tracked code in place of yours.
Every mailed piece gets its own unique code. Scans redirect to the address you chose and count like any other thanks.io QR scan: they appear in Analytics and in your scan notifications.
If the code holds something other than a web address (a phone number or Wi-Fi details, for example), it can't be tracked. The dialog shows what it holds, and the code prints as part of your design. Check that it still works before you send.
The same check runs when you build a creative inside Send Mail with Make creative now.
Change or remove the tracked code
- Remove the tracking - on the Front step, click Remove tracking in the Tracked QR code panel. The front goes back to your upload exactly as it was, and its own QR code prints untracked.
- Change where scans go - remove the tracking, upload your design again, and click Make it tracked with the new address.
What keeps or drops the tracked code
- Replacing the front's image drops it. A new upload, a Canva design, an inspiration, or a new image set through the API or an AI assistant replaces the design, and the dashboard warns you that the tracking was dropped. The new image prints exactly as given. If it has a QR code you want tracked, make it tracked again.
- Reusing the design keeps it. Copying a tracked design onto another creative's front with Reuse one of your designs brings the tracked code along, sending scans to the same address. Scans are tracked separately for each design.
- A Canva design you make tracked no longer shows Edit in Canva, because reopening it would bring back the untracked code.
Tracking a printed code isn't offered for:
- Letters - a letter's QR code goes on its message. See How to enable a QR code.
- Shared designs such as stock designs - upload your own image instead.
- Street View designs - they carry their own QR code URL (see above).
- ThanksAI Studio designs - they already print a tracked QR code. See ThanksAI Studio.
An AI assistant connected through the thanks.io MCP server can tell you where a front's tracked QR code sends scans when it lists or reads your creatives and front designs. It also tells you when a front design you give it has an untracked QR code, and, once you say yes and choose where scans should go, makes it tracked (or removes the tracking). See AI Assistants (MCP).
Limits & gotchas
- A creative's QR code is saved with its message. If the same creative is used across multiple campaigns, they all share the same QR destination URL. To give one campaign a different destination, Duplicate the creative and change the copy's QR code, or set a Tracking URL on that campaign's list.
- The QR code on each piece is unique to that recipient even when the base URL is the same - thanks.io appends tracking parameters automatically.
- A tracked QR code on a front is saved with the front. Every send of that front, from any creative, campaign, or integration, sends its scans to the same address.
- A QR code printed in your uploaded artwork isn't tracked unless you make it tracked on the Front step.