Why SMS QRs convert better than other channels
SMS is the highest-engagement outreach channel most Canadian businesses have access to: text messages are opened almost universally and usually within minutes, where marketing email is opened by a fraction of recipients, often hours later if at all. For retail, restaurants, and service businesses with a mobile-first customer base, that gap is the whole argument for building an SMS list in the first place.
The friction has always been the opt-in. Asking someone to type a short code to a five-digit number, or key in a phone number from a poster, loses most of the people who were briefly willing. An SMS QR code removes that entirely: one scan opens the messaging app with your number - and an optional keyword like "JOIN" - already filled in, so the customer just taps send. The moment of intent and the action collapse into a single gesture, which is why a scannable opt-in consistently out-converts a printed shortcode.
What you'll need before generating
Two things, one of them optional:
- A receiving number - your business mobile for very low volume, or (recommended) a dedicated SMS service number that can handle keywords, auto-replies, and opt-outs.
- An optional pre-filled message - a short keyword that tells your system what the person wants and gives them a frictionless first message to send.
Useful pre-fill patterns: JOIN for a loyalty opt-in, MENU to request daily specials, RESERVE to start a booking, or a support starter like "Help - I'm at the front counter". Keep it short: a long pre-filled message both looks like spam to the customer and makes the QR pattern denser and harder to scan. One important Canadian point - when a customer scans and sends a keyword like "JOIN" themselves, that outbound message is their express consent under CASL, which is the cleanest way to start a compliant SMS list.
Use cases by industry
Retail loyalty programs
Print "Text JOIN to subscribe - get 10% off" with the QR on receipts and at the till. The customer scans, "JOIN" is pre-filled, they tap send, and your system enrolls them and replies with a welcome and their first reward. Because the customer initiated the message, you have a clean consent record - provided your welcome reply identifies your business and explains how to opt out.
Restaurants
"Text MENU for today's specials" on a table tent, "Text RESERVE" for a quick booking line, or a feedback prompt on the receipt. It pairs naturally with a menu QR code - one scan to see the food, another to join the list for the next visit.
Customer support
In-store and on equipment, "Scan to text our support line" with a pre-fill like "Hi, I need help with…" lets a customer reach you without hunting for a staff member or sitting in a phone queue - particularly effective on shelf edges and self-serve kiosks.
Polls and feedback
At trade shows, "Text YES if you'd buy this"; at conferences, a keyword to vote on the next session; in a restaurant, "Text your rating 1–5". Live, low-effort feedback you can actually act on before the event ends.
Real estate
On open-house signs and listing riders, "Text INFO for full listing details" or "Text TOUR to book a viewing" captures a lead at the curb. Pair it with a vCard QR code so the agent's contact saves at the same time.
Canadian SMS rules: CASL
Canada's Anti-Spam Legislation (CASL), enforced by the CRTC, governs commercial electronic messages including marketing SMS, and the penalties are serious - administrative monetary penalties run up to $1 million for an individual and $10 million for a business. The QR code is a tool for complying, not a loophole around it.
In practice, CASL requires three things, and a scan-to-text opt-in maps onto all of them:
- Express consent before you market. The customer scanning and sending "JOIN" of their own accord is express consent, and you have a timestamped record of the message that proves it.
- Identify the sender. Every message you send back must clearly say who you are - your business name, not just a number.
- A working unsubscribe in every message. Include "Reply STOP to unsubscribe" (or equivalent) in each message, and honour it promptly.
What you must not do is treat the QR as permission to message numbers you collected some other way - a scan-based opt-in only covers the person who chose to scan and send. Used correctly, the QR gives you the consent and the paper trail; sustaining the relationship within the rules is then on your replies.
A compliant opt-in, start to finish
It helps to see the whole loop concretely. Suppose a café wants an SMS list. The flow that keeps it on the right side of CASL looks like this:
- The printed prompt states the value and the action plainly: "Get a free pastry on your next visit - scan and text JOIN to subscribe to occasional offers from Maple Café." The customer knows what they are agreeing to before they act.
- The customer scans and sends "JOIN." That outbound message, sent by them, is the express consent - and the timestamp and number are your record that it happened. You did not message them first.
- The automated welcome reply identifies the sender and gives the exit in the same message: "Maple Café: you're subscribed to occasional offers (about 2 texts/month). Show this text for a free pastry. Reply STOP to unsubscribe."
- Every later message repeats the unsubscribe and a STOP reply is honoured immediately and permanently.
Nothing here needs a lawyer to reproduce, but each step is doing real compliance work: a clear pre-scan disclosure, a customer-initiated consent you can prove, sender identification, and a frictionless opt-out in every message. The QR code makes the consent step effortless; the structure above is what makes it lawful. Skip the disclosure or the STOP line and the convenience of the QR will not save you from the penalties.
Design and placement tips
Always print the phone number as text beside the code as a fallback for anyone who cannot scan, and put a clear call to action next to it ("Text JOIN to subscribe") so the value is obvious before the customer commits. Keep any pre-filled message short - it both converts better and keeps the pattern easy to scan.
- Receipts and table tents: 2 cm is enough at hand distance - but keep the quiet-zone margin clear.
- Posters and window signs: 8–10 cm so it reads from across a room or the sidewalk.
- Shelf edges and kiosks: 3–4 cm at roughly eye height for the person standing in front of it.
Test on both an iPhone and an Android before printing - the messaging apps differ slightly, and the pre-filled body in particular behaves differently across platforms. Keep dark modules on a light background and never lay the code over a busy photo or a dark panel; that is the most common reason a code fails in the exact retail lighting you cannot control. In Quebec, the code is a symbol with no language obligation, but any wording printed around it falls under the Charter of the French Language - "Textez ADHÉSION" or French given clearly more visual weight than English is the safe approach.
Common problems and fixes
"The SMS opens but the message body is blank"
Some older Android versions do not honour the pre-filled body in an sms: link. Test on at least one Android device, and treat the keyword as a helpful default rather than something the flow depends on - the number still opens correctly, so the customer can type the keyword themselves.
"Customers text in but never get a reply"
A personal mobile has no automation, so keywords just pile up unanswered. Use an SMS service (Twilio, MessageMedia, SimpleTexting, or similar) that can auto-respond to keywords, enrol the sender, and send the welcome message instantly - the reply speed is most of the value of SMS.
"We're getting spam to the number"
Public-facing codes attract junk. That is exactly why the receiving number should be a dedicated service number, never your personal mobile - a service number can filter, rate-limit, and be swapped without reprinting anything if it is abused.
"Does the phone-number format matter?"
For Canadian numbers, no - +1 416 555 0199, (416) 555-0199, and 416-555-0199 all work, because the code just opens the messaging app and the phone parses the number. Including the +1 country code is the most robust choice for cross-border scanning.
Static or dynamic: which does an SMS QR need?
A static SMS QR - what this free generator produces - encodes the number and message directly into the pattern. It works forever with no account and no dependence on our servers; you only reprint if the receiving number or the keyword changes. For a stable loyalty or support line, that is all you need.
A dynamic QR (a paid plan feature) lets you change the number or message later without reprinting - genuinely useful if you A/B test opt-in keywords or switch SMS gateway providers. If your number and keyword are settled, stay static.
Other QR codes worth pairing with SMS
An SMS opt-in works well next to a Google review QR code on the receipt, a Wi-Fi QR code on the table, and a vCard QR code on the owner's card. Each is free, static, and generated the same private, in-browser way.