A WhatsApp link generator solves a small problem well: it turns your phone number into a link that opens a chat with a message already typed. Spun has one, it is free, and if that is all you need you should use it and stop reading.
Smart links solve the problem that starts one step later. You put links in six places, conversations start arriving, and you have no idea which link produced which conversation. A smart link closes that loop: it records the click, and then recognises the message that click turns into.
How a smart link differs from a WhatsApp link generator
You create the link against one of your connected WhatsApp numbers, give it a readable slug, and write the message you want pre-filled. Spun gives you back a short link.
When someone taps it, three things happen before they ever see WhatsApp. Spun records the click, including the referring page and any UTM parameters on the link, and roughly where in the world it came from. It mints a token unique to that single click. Then it redirects the visitor into WhatsApp with your number and the pre-filled message, with the token quietly appended as a short reference line.
The person sends the message. It arrives in your inbox like any other. Spun reads the reference off it, matches it back to the click it came from, and from that point the conversation carries its own origin story.

Known crawlers are served a neutral page rather than the redirect, so a link preview generated when someone pastes your link into a chat does not turn into a phantom click in your numbers.
Why the reference line exists, and when it does not work
This is the honest part. Attribution on WhatsApp is genuinely hard, because the click happens on the web and the conversation happens in an app that tells you nothing about where the person came from. The reference token is the bridge, and it only works if it survives the trip.
Most people tap the link and press send without editing anything, so it usually does. But someone can delete the pre-filled text, or type their own question instead. When that happens the click is still recorded and the conversation still arrives, they simply are not connected to each other. That is why the analytics show a match rate rather than pretending every click became a tracked conversation. A match rate below what you expected usually means the pre-filled message is too long or too odd, and people are rewriting it.
What the numbers actually tell you
- Clicks over time, so a printed QR and a paid ad can be compared honestly.
- Matches and match rate: how many of those clicks Spun could tie to a real message.
- Conversations started, which is the number that matters to the business.
- Per click: the referring page, any UTM parameters, and the approximate country and city.
- The individual sessions, so you can look at one click and see the conversation it became.
A link that triggers a reply
Because Spun knows which link a conversation came from, the link can drive what happens next. An auto-reply rule can be set to fire on a specific smart link, or on any smart link at all, which means the first message someone gets can be specific to the thing they clicked.
Somebody arriving from a booking QR on a table can be answered with availability. Somebody arriving from a pricing page can be answered with a price list. Neither of those is possible from a plain wa.me link, because a plain link arrives with no identity attached.
Related: How auto-replies decide what to send
Turning a link off, and letting it expire
- Deactivate a link at any time; it starts serving a neutral unavailable page immediately.
- Give a link an expiry date, which is what you want for a seasonal campaign that should not keep working in March.
- Cap the number of uses for a limited offer.
- Delete a link entirely, which removes its recorded sessions with it.
An expired, disabled or unknown link never reveals anything: every one of those cases returns the same generic page, so a guessed link cannot be used to enumerate your campaigns.
Where to put them
- Printed material, as a QR code: a table tent, packaging, a flyer, an invoice footer. One link per placement is what makes the comparison meaningful.
- Paid campaigns, with UTM parameters on the link so the ad platform and the conversation agree on the source.
- Website buttons, one per page, so you learn which page actually produces conversations rather than only traffic.
- Email signatures and social profiles, which tend to be the quietest sources until you finally measure them.
Related: Free WhatsApp QR code generator