Why a wa.me link opens the wrong chat or drops your message

A wa.me link that opens the wrong chat or drops its message almost always has one of three faults. The phone number is not in the format WhatsApp expects, the pre-filled text is not URL-encoded, or the link is being tested against a number that does not have an active WhatsApp account. WhatsApp's own click-to-chat guidance asks for the full number in international format, with no plus sign, zeros, brackets or dashes. Spaces and special characters in the message must be written in percent-encoded form. Start by rebuilding the number from its country code, then encode the text, then test the link on a phone and on WhatsApp Web. Use the free calculator on this page to produce a clean link from your own number and message.
Work it out: Click-to-Chat Link Generator for WhatsApp. Free, no sign-up.
In short
- Use the full number in international format, with no plus sign, double zero, leading zero, spaces, dashes or brackets.
- Encode the pre-filled text once, with %20 for spaces and %23 for hash signs, so the message is not cut off.
- A link with text and no number opens a contact picker, not one chat, so use a number for a specific person.
- Test every link on a phone and on WhatsApp Web before it goes into a bio, a button, a printed code or an email.
- The link cannot confirm that a number is registered on WhatsApp, and the pre-filled text is never sent automatically.
The direct answer
A wa.me link is WhatsApp's click-to-chat address. The pattern is the wa.me domain, a slash, and then the phone number. If you want a message to appear in the box before the person presses send, you add a question mark, the word text, an equals sign and the encoded message. WhatsApp's own help page describes the number as a full number in international format, and says to leave out zeroes, brackets and dashes. Some vendor guides also say to leave out the plus sign and spaces. In practice, the plus sign and spaces are the usual cause of a broken link, so treat them as forbidden.
No law or regulation sets this rule. The rule comes from WhatsApp's technical documentation, which is the authority to check first. If a link fails, the fault is almost always in how the link was written, not in WhatsApp's service as a whole.
How to work out the number, step by step
Start with the number as the customer or colleague would dial it from another country. It usually begins with a plus sign, or with a double zero such as 00, or with a single zero used for local dialling. Each of these needs a different fix.
Step one: replace any leading plus sign or double zero with nothing. The plus sign and the 00 are dialling signals, not part of the number that WhatsApp uses in the link. Step two: if the number begins with a single zero for a local call, remove that zero and put the country code in front. Most countries use a trunk zero this way. Step three: remove every space, dash, dot and bracket. Step four: check that what remains is digits only, starting with the country code, and that the total length matches the number of digits the country uses. A wrong length usually means a digit was dropped.
Some countries are an exception. In the United States and Canada, area codes do not start with a zero, so the country code 1 is followed directly by the ten-digit number. Several small countries, including Denmark, Norway and Singapore, use national numbers that are only eight digits long. Their numbers have no zero to strip, so the country code is simply placed in front.
One worked example with real numbers
Take a German mobile written as 0151 12345678. The leading zero is a local trunk prefix, so it goes. The country code for Germany is 49. Joined together and stripped of spaces, the link number is 4915112345678, which gives https://wa.me/4915112345678. The same logic works for other countries. The table below shows three examples from different parts of the world.
| Number as written | What to remove or change | Number for the link |
|---|---|---|
| +91 98765 43210 (India) | Remove the plus sign and spaces. India uses country code 91. | 919876543210 |
| 020 7946 0958 (United Kingdom) | Remove the zero, add country code 44, remove spaces. | 442079460958 |
| 054-123-4567 (Israel) | Remove the zero and dashes, add country code 972. | 972541234567 |
The first example is the one most often mistyped. A plus sign feels like part of the number, so people keep it. In the link it breaks the address. The second example is the trunk zero trap. Many people keep the 0 because it is printed on their business card. The third example combines both problems in one number.
Encoding the pre-filled text correctly
The message is the second place where links fail. A link is a web address, and a web address cannot hold spaces, question marks, hash signs or ampersands in their plain form. Each of those characters has to be written in a coded form, called percent-encoding. A space becomes %20. A line break becomes %0A. A comma becomes %2C, a question mark becomes %3F, and a hash sign becomes %23. An ampersand is written as %26, because an unencoded ampersand is read as the start of a new link setting.
Take this message: Hi, I need help with order #4821? Once encoded, it reads Hi%2C%20I%20need%20help%20with%20order%20%234821%3F. The full link is https://wa.me/919876543210?text=Hi%2C%20I%20need%20help%20with%20order%20%234821%3F. If the text stops at the first ampersand or the first hash sign, the message has not been encoded. Some teams encode twice by mistake, which turns a space into %2520 and shows the reader a strange string. Encode once, paste the result, and test.
Do not write the link by hand for a long message. Most people who build these links use a URL encoder or a short script such as the standard encodeURIComponent function in JavaScript. The free calculator on this page does the encoding for you, so the number and message go through the same rules every time.
Cases that change the answer
Some links behave differently depending on what is inside them. A link with a number and no text opens the chat and leaves the box empty. A link with text and no number, written as wa.me followed by a question mark and the text, does not open a single chat. Instead it asks the person to choose a contact from their own list, and the message is pre-filled once they choose. This is useful for sharing a message to a colleague, but it is the wrong link for a customer who must reach one specific person.
A link can also be well formed and still fail to reach anyone. WhatsApp's click-to-chat help says the link works when the number belongs to someone with an active WhatsApp account. A number that has left WhatsApp, a landline, or a number that was never registered will not give a chat. The link cannot tell you whether the number is registered, so that check has to be made in a different way, such as a test message from a phone that already has the number saved.
The number type matters too. A personal number and a WhatsApp Business number can both appear in a link, but the one you put in the link must be the one you want the customer to reach. A link built from a team member's private phone will send customers to that phone's chat list. Decide which number is public before you publish any links.
Finally, the pre-filled text is editable and is never sent by the link itself. The person clicking can change the words or delete them. The link opens the composer. It does not deliver a message. Any process that depends on the message arriving must include a person or a tool that watches for the reply.
Common mistakes
- Keeping the plus sign, or using 00 in front of the country code.
- Leaving the trunk zero in place after the country code.
- Adding spaces, dashes, dots or brackets, which some people do for readability.
- Typing the message with spaces instead of %20, so the text stops at the first space or is ignored.
- Leaving an ampersand, hash sign or question mark unencoded inside the message.
- Encoding the message twice, which shows strange codes such as %2520 in the box.
- Testing the link only on the desk where it was made, and never on a phone a customer would use.
- Using a link with no number when the reader needs to reach one specific person.
How to test on a phone and on WhatsApp Web
Test the link in the same way a reader will meet it. Copy the finished link and paste it into a message to yourself, or into a note on your phone. Tap it from that place. The chat should open with the right person's name at the top and the message already in the box. If the text is missing, go back and check the encoding. If the wrong person opens, check the number again.
Then test it on WhatsApp Web. WhatsApp's help page says click to chat works on both the phone app and WhatsApp Web. Log in to WhatsApp Web on a computer, paste the link into the browser's address bar, and press Enter. The chat should open in the WhatsApp Web window with the message in the box. If the browser asks which app to open, choose WhatsApp Web. If the chat opens but the text is missing, the message needs encoding again.
Repeat the test with one real number from each country your readers use. A link that works for a number from one country can still fail for another if the country code was typed differently. Keep a short list of the test numbers and the results, so the next person who changes the link knows what was checked.
What to check with your team or a developer
If the link is part of a customer message, a website button, or a printed code, ask the person who owns that channel which number it must reach. Confirm that the number is the one used for live chats, not a personal phone. Ask who will answer the chat and during which hours, because a link that opens a chat no one reads does more harm than having no link.
If you have a long list of contacts to convert, such as a sheet of customers or staff, do not change the numbers by hand one at a time. Ask for a single column of digits, a check that flags any number with a plus sign, space or leading zero, and a sample test on a phone for a few rows from each country. A developer or a simple spreadsheet formula can do the conversion. A person still has to review the flagged rows, because a number that is wrong in the source sheet will produce a wrong link however carefully it is converted.
Check the messages with the team that answers them. A pre-filled line that promises a reply within a set time, or that quotes a price or a policy, should be approved by the person accountable for that promise. The link cannot make that decision.
Routine HR and payroll work shows the same pattern. Many employers now use AI workers to take over repeated tasks such as copying data between sheets, sending reminders, checking records against a payroll file, and preparing the first draft of a monthly report. The worker follows fixed rules and logs every change. A trained person checks the exceptions and signs off the output. Done this way, the staff member spends less time on copying and more time on the cases that need judgement.
How AiStaffo would automate this
AiStaffo builds AI workers for routine business work, and a contact list is a good example of that work. The worker would take the contact sheet your team already keeps, strip the plus signs, zeros and symbols from each number, and rebuild each number as digits starting with the country code. It would then encode the message for each contact and produce a checked list of links. Any row that fails the format check would be flagged for a person to fix. Your team still runs a sample test on a phone and on WhatsApp Web, and decides which number and message are the right ones to publish. To see how this would work on your own contact list, book a free automation audit.
Questions people ask
Why does my wa.me link open a chat but the message is empty?
Should I include the plus sign in a wa.me link?
Why does wa.me open the wrong person or a contact picker?
Can a wa.me link tell me whether a number is on WhatsApp?
Does a pre-filled message send itself when someone clicks the link?
Book a free automation audit
Thirty minutes. We look at one process you run every week and tell you exactly what an AI worker would take off your desk, and what it would not.





























