Quick answer
A QR code that "pre-fills" a text or email isn't a special kind of QR code. It's an ordinary one that stores a short link — an sms: link for a text message, or a mailto: link for email. Scan it, and the phone reads the prefix and opens the right app with the recipient and message already typed in. A QR code can encode any text, including data that composes an email or text message, so there's nothing QR-specific to learn here. You're just writing a link and turning it into a square.
Set expectations on one thing: scanning never sends anything on its own. The code opens a draft, the reader checks it, and they tap send. That's what makes pre-fill QR codes handy for RSVPs, support requests, and feedback — you remove the typing, not the consent.
The whole job is three steps: write the link, encode the text, generate and test.
Step-by-step
1. Build the link
For a text message, the format is:
sms:+15551234567?body=Your message here
Many QR generators use the older SMSTO:+15551234567:Your message here convention for the same result. The phone number is the reliable part; the body is the pre-filled text. Google's deep-link guide notes the body parameter has to be URL-encoded — more on that in step 2.
For email, use a mailto: link:
mailto:hello@example.com?subject=Sign me up&body=Hi team&cc=team@example.com
RFC 6068, the spec for mailto:, defines the fields you can add after the ?: subject, body, cc, and bcc, joined with &. So one QR code can open an email addressed to the right person, with the subject line and first sentence already written. It's the same trick behind a vCard QR code — a tidy bit of text the phone knows how to act on.
2. Encode the text properly
URLs can't contain raw spaces or line breaks, so the message has to be percent-encoded. Spaces become %20, a line break becomes %0D%0A, and the characters ?, =, and & must be escaped when they're part of your text rather than separators. RFC 6068 spells these rules out. The good news: almost every QR generator does this for you. Type your message into the input field normally and let the tool handle the encoding. You only need to know it's happening if something looks garbled later.
3. Generate and test
Paste the finished link into a QR generator and create the code. Then scan it before you print or share it — and scan it on both an iPhone and an Android phone, because the two platforms don't always treat the body text the same way.
Common problems and fixes
Only the recipient showed up — no message. Pre-filled body text depends on the phone's OS and messaging app. Apple's original SMS link spec actually said to leave the body out, so some older iPhones and a few third-party SMS apps drop it. Keep the recipient as the dependable part and the message short.
The wrong app opened. That's a scheme mismatch — you used sms: when you meant mailto:, or the reverse. Check the prefix at the very start of the link.
The code won't scan or looks too dense. A long message pushes the QR code to a higher version with more, smaller modules. Shorten the text, and raise the error correction level so a logo or a bit of damage won't break the scan.
Special characters look scrambled. Something wasn't encoded. Re-generate the code and let the tool encode the text instead of pasting in a hand-built link.
Doing this on QRDock specifically
In QRDock, pick SMS or Email, type the number or address, and write your message in the box. QRDock URL-encodes the text and renders the QR code for you, so you never touch %20 by hand. It's free, doesn't track you, and doesn't run ads, and its scanner flags suspicious links when you scan — a best-effort check, not a guarantee.
Pre-fill codes pair well with the other quick-action codes you can make in the same place: a Wi-Fi QR code for guests, or a calendar event QR code for your next meetup. Try it at qrdock.app.
Frequently Asked Questions
Does scanning the code send the message automatically?
No. The code only opens your phone's Messages or email app with the recipient and text already filled in. You still read the draft and tap send yourself, so nothing leaves your phone until you choose.
Why didn't my message text show up after scanning?
Pre-filled body text depends on the phone's OS and messaging app. Some older iOS builds follow Apple's original spec and drop the body, and a few third-party SMS apps ignore it. The recipient almost always fills in; treat the message text as a best-effort default and test on both an iPhone and an Android phone.
Can I include line breaks or emoji in the pre-filled text?
Yes, but they have to be URL-encoded — a line break becomes %0D%0A and spaces become %20. Most QR generators, including QRDock, do this encoding for you, so just type the message normally in the input field.
What's the difference between an SMS QR code and an email QR code?
An SMS QR code stores an sms: (or SMSTO:) link and opens your texting app; an email QR code stores a mailto: link and opens your email composer. The build steps are the same — only the prefix and the fields you fill in change.
Conclusion
A pre-fill QR code is just a tidy link wrapped in a square: the recipient is the part you can count on, and the message is a helpful default the reader can still edit. Build one for the message you send most — an RSVP text or a support email — encode it, and test it on two phones before you put it in front of anyone.