In short: a WhatsApp link generator turns a phone number into a wa.me link that opens a direct chat with you, without the visitor having to save your number first. The structure is https://wa.me/972501234567, and adding ?text= with an encoded message pre-fills the chat box. Two mistakes break most links: a wrong number format (leading zero, dashes or a plus sign) and adding UTM parameters to the link - WhatsApp simply ignores them, which is why WhatsApp clicks disappear from analytics reports. This guide covers every link type, the number-format rules with worked examples, how to encode a pre-filled message, and above all how to actually measure WhatsApp clicks in GA4 and in paid campaigns - the part no other generator explains.
I am Shay Cohen, CEO and founder of SFB Digital Marketing. I have been running digital advertising for businesses for over 11 years as a certified Google Partner, with more than 50 million shekels in media budgets that generated over 400 million shekels in sales. A WhatsApp button is one of the strongest lead sources we see for businesses in Israel, and also one of the least measured. The rules on this page are what we implement in the accounts we manage, including the things that do not work.
How a WhatsApp link is built: the wa.me structure
A WhatsApp link, officially called Click to Chat, is an ordinary web address that opens a chat window with a specific phone number. It requires no extra app, no WhatsApp Business API, and no need for the visitor to save your number. That is what makes it the lowest-friction contact button a business can have.
The basic structure is:
https://wa.me/972501234567- opens an empty chat with that number.https://wa.me/972501234567?text=Hi%20there- opens the same chat with a message already typed into the input box.
One point confuses a lot of people: the message is not sent automatically. It is only pre-typed, and the visitor still has to press send. That is actually an advantage - they see what they are sending, so drop-off is lower, and it is what keeps the link from behaving like spam.
The four link types, and when to use each
| Link type | Structure | What it does | When to use it |
|---|---|---|---|
| Click to Chat | wa.me/<number> | Opens an empty chat with your number | Permanent site button, bio, email signature |
| Chat with a pre-filled message | wa.me/<number>?text=<text> | Opens a chat with text already typed | Landing pages, ads, identifying the lead source |
| Share to any contact | wa.me/?text=<text> | Opens a contact picker and passes the text along | A "share on WhatsApp" button on a product or article |
| WhatsApp Business short link | wa.me/message/<code> | A personal link created inside the Business app | Signage, packaging, a printed QR code |
There is also the long form api.whatsapp.com/send?phone=972501234567&text=..., which works exactly the same way. There is no technical reason to prefer it: wa.me is shorter, looks better on signage and in ads, and behaves better when pasted into platforms that shorten URLs.
Number format: the mistake that breaks most links
This is the number-one reason a WhatsApp link "does not work". WhatsApp expects a full international format, digits only: country code followed by the number, with no plus sign, no leading zero, no dashes, no spaces and no brackets. Any other character either breaks the link or opens a chat with a number that does not exist.
Israel's country code is 972. The practical rule: delete the leading zero of the local number and put 972 in its place.
| How the number looks to you | What to enter in the link | The full link | Note |
|---|---|---|---|
| 050-1234567 | 972501234567 | wa.me/972501234567 | Zero removed, 972 takes its place |
| 054 123 4567 | 972541234567 | wa.me/972541234567 | Spaces removed |
| +972-52-1234567 | 972521234567 | wa.me/972521234567 | Plus sign and dashes removed |
| 03-1234567 (landline) | 97231234567 | wa.me/97231234567 | Only works if the number is registered on WhatsApp |
| 0501234567 | 972501234567 | wa.me/972501234567 | The common mistake: keeping the zero |
How to verify a link in thirty seconds: open it in a desktop browser. If a chat window opens showing your name or number, the link works. If you get a "phone number shared via url is invalid" style message, there is almost always a leading zero still in place or a missing country code. The generator at the top of this page strips those characters automatically, so you can paste the number exactly as it is saved in your phone.
The pre-filled message: how to write it and how to encode it
The text after ?text= must be URL-encoded. Any decent generator encodes non-Latin characters for you, but a few characters break links even when the rest is fine - especially &, which tells the browser a new parameter is starting and therefore cuts the message in half.
| Character | Encoding | What happens without it |
|---|---|---|
| Space | %20 | The link breaks on some platforms |
| New line | %0A | No line break, everything collapses into one paragraph |
| & | %26 | The message is cut off at exactly that point |
| ? | %3F | May be read as the start of a parameter |
| # | %23 | Everything after it disappears |
| + | %2B | Interpreted as a space, not a plus |
Beyond technical correctness, the pre-filled message is a marketing tool and not just a convenience. It decides how the conversation opens, and it is the cheapest way to know where a lead came from. Here is what we use in practice:
| Where the link sits | Recommended pre-filled message | Why |
|---|---|---|
| Floating site button | Hi, I came from your website and would like details about __ | Identifies the source and opens on topic |
| Product page | Hi, I would like details about the product __ | Saves the "which product" round trip |
| Paid ad | Hi, I came from your ad and would like a quote | Separates paid leads from organic ones |
| Instagram bio | Hi, I came from Instagram | The one channel with no other way to identify the source |
| Printed QR code | Hi, I scanned the code at the __ branch | Shows which sign or branch is working |
| Email signature | Hi, I saw the details in your email | Measures email effectiveness with no extra tool |
The rule: a short message containing one identifying marker. A long message looks odd sitting in the visitor's input box, so they delete it - and the identifier goes with it.
Measurement: why UTM parameters on a WhatsApp link do nothing
This is the most important section of the guide, and the point where several link generators offer something that has no effect. Some of them advertise "UTM parameters for campaigns" on the WhatsApp link. That does not work, and not because of a bug.
UTM parameters are read by the analytics installed on your website when a visitor lands on one of your pages. A wa.me link does not lead to your website - it leads to WhatsApp. WhatsApp is not a site carrying your GA4 tag, it ignores any parameter other than text, and the handoff from browser to app breaks the referrer chain. No report will ever show that the click came from your campaign. At best the parameters vanish; at worst they end up glued into the message and reach the customer as gibberish.
What does work. There are three measurement layers, and the first should always be on:
| Layer | What is measured | How to implement | What it gives you |
|---|---|---|---|
| 1. The button click | An on-site event at the moment of the click, before the app takes over | A Click trigger in Google Tag Manager on links containing wa.me, firing a GA4 event named whatsapp_click | How many clicks, from which page, from which traffic source - including the landing page's own UTMs |
| 2. In-conversation identification | Where the person messaging you came from | A different pre-filled message per link placement, per the table above | The source is visible inside the chat itself, with no external tool |
| 3. Campaign conversion | A lead worth money, not just a click | Mark the event as a key event in GA4 and import it into Google Ads, or run a Click to WhatsApp campaign on Meta | The ad algorithm starts looking for people who open conversations, not just people who click |
Layer 1 is the foundation and easy to deploy: it is measured on your own site, before the visitor leaves for WhatsApp, so it retains all the source data. Note that GA4's automatic enhanced measurement does register an outbound link click, but it lumps it in with every other external link and never flags it as a lead. A dedicated event is the difference between "there were 400 outbound clicks this month" and "58 WhatsApp enquiries arrived, 31 of them from the search campaign". If you want to go deeper on measurement itself, we covered it at length in our guide to measuring ROI in digital marketing.
QR codes and the WhatsApp Business short link
The WhatsApp Business app has its own short link, created inside the app with no generator needed: Settings, Business tools, Short link. It looks like https://wa.me/message/XXXXXXXX, and the same screen also produces a downloadable QR code.
The practical difference between the two matters, because it decides when to use which:
- The app's short link is fixed and personal, its message is set inside the app, and you cannot produce variations of it. It is excellent for signage, packaging and business cards - places where you would not measure at campaign level anyway.
- A link built in a generator lets you use a different message per placement, which is what everything digital and measured needs: site button, landing page, ad, newsletter, bio.
You can generate a QR code from any wa.me link, including one built in a generator, which gives you the best of both: a scannable code for signage carrying a pre-filled message that identifies the branch or the campaign. If you are printing a QR code, test it on a real phone before it goes to print, not only on screen.
Click to WhatsApp campaigns: when the link becomes a paid channel
Once you have a WhatsApp button that works, the next step is to send budget to it. On Meta (Facebook and Instagram) there is a campaign type where the conversion destination is not your site but a WhatsApp conversation: pick a suitable objective, then at the ad set level choose WhatsApp as the conversion location. The user taps the ad and lands straight in the chat, with no landing page and no form.
Three things decide whether this works:
- Response time is the biggest variable. A WhatsApp campaign generates live conversations. A business that replies within minutes closes far more than one that replies the next day, and at that pace a good ad does not compensate for slow answers.
- Do not stay on "conversations started" optimisation for too long. It is a convenient objective to launch with, but the algorithm will learn to find people who are cheap to get into a chat rather than people who buy. Once you have enough data, move optimisation to a real business event.
- Measurement works differently from a normal campaign. There is no pixel inside the chat, so a WhatsApp campaign reports conversations opened. To know what happened afterwards you have to mark the outcome in your own system and send the event back to Meta. Without that you get a report full of conversations and no information about sales. We covered Meta campaign structure in our guide to Facebook campaign management.
Where to place the link, in order of return
- A floating site button. The highest-return placement. Make sure it is a real
<a href="https://wa.me/...">and not a JavaScript-driven button, otherwise measuring it in GTM becomes difficult. - Product or service pages. One link per page, with the product name inside the message.
- Ads and landing pages. This is where an identifying message pays off most, because it separates paid leads from the rest.
- Your Google Business Profile. The link can be added as a contact link on the profile. We covered profile management in our guide to the Google Business Profile.
- Social bios and email signatures. Cheap, takes a minute, and produces enquiries over time.
Five mistakes almost every business makes
- Leaving the leading zero in the number.
wa.me/0501234567will never work. The correct form iswa.me/972501234567. - Expecting the message to send itself. It is only pre-typed. If you count "conversations opened" assuming every message was sent, your numbers are inflated.
- Hanging UTMs on a wa.me link. Not measured, and in some cases it pollutes the message. Measurement belongs on the click, on your site.
- The same message everywhere. Then you cannot tell which channel produced the enquiry, which is exactly the information that decides where budget goes.
- Publishing a number not registered on WhatsApp. This happens often with landlines and with a new number that has not been activated. Test the link once in a browser before it goes live.
Frequently Asked Questions
What is a WhatsApp link generator?
A WhatsApp link generator is a tool that converts a phone number and a message into a valid wa.me link. It automatically strips the leading zero, dashes and spaces, adds the country code and URL-encodes the message, so the link works on every device. You can do this by hand, but most broken links come from exactly those steps.
How do I create a WhatsApp link with a pre-filled message?
Add ?text= after the number, followed by the encoded message. For example: https://wa.me/972501234567?text=Hi%20there. The message appears already typed in the visitor's input box, and they press send themselves.
Why is my WhatsApp link not working?
In order of frequency: a leading zero that was not removed, a missing country code, dashes or spaces inside the number, a plus sign left in place, or a number not registered on WhatsApp. Quick check: open the link in a desktop browser and read the message it shows.
Can I add UTM parameters to a WhatsApp link?
You can add them technically, but they are meaningless. WhatsApp is not your website, it carries no analytics tag, and it ignores any parameter other than text. The correct way to measure is a GA4 event on the button click on your site, plus a different pre-filled message per placement to identify the source inside the conversation.
How do I track WhatsApp clicks in Google Analytics 4?
In Google Tag Manager create a Click - Just Links trigger for links whose destination URL contains wa.me, and attach a GA4 event tag named whatsapp_click. Then mark that event as a key event in GA4. You will see which traffic source the clickers came from, and you can import it as a conversion into your ad platforms.
What is the difference between wa.me and api.whatsapp.com?
Both forms open the same chat and behave identically. wa.me/<number> is shorter and therefore better for signage, ads and anywhere the link is visible. api.whatsapp.com/send?phone=<number>&text=<text> is the long form of the same thing.
How do I create a WhatsApp QR code?
Two ways. In the WhatsApp Business app go to Settings, Business tools, Short link, where a downloadable QR code is ready. Alternatively you can generate a QR code from any wa.me link you built, which is better when you want a pre-filled message identifying the branch or campaign. Either way, scan the code on a real phone before it goes to print.
Does a WhatsApp link work with WhatsApp Business?
Yes. A wa.me link behaves identically on a personal account, on WhatsApp Business and on a number managed through the API. The difference is not the link but what happens afterwards: a business account has a business profile, automated messages and labels for managing conversations, which is what lets you handle volume without losing leads.



