The trade we made on our own contact page
This site has no contact form. The fastest route to us is WhatsApp, the number is printed as readable text rather than hidden inside a link, and the button in the hero opens a chat with the first line already written. We chose that deliberately, and it cost us something specific. That is why this piece exists rather than a page selling chat funnels.
The gain is real. People message. They message at 10pm from a phone, in one line, with the question they actually have rather than the one a form would have asked them, and the reply arrives as a notification on a device already in their hand.
The loss is real too, and it is measurement. Analytics can record that somebody tapped the button. Everything after that — the question, the budget, the three-week gap, the close — happens inside an app with no reporting surface that you or your agency can read.
What we will not do is quote you a conversion uplift figure. Almost every percentage circulating for click-to-WhatsApp comes from a company selling WhatsApp software, none of them publish a methodology, and our own sample is one agency in one category. The mechanism and the cost are stable enough to write about. The uplift number is not.
What actually changes when the button says WhatsApp
Four things move, and they do not all move in your favour. The first three are the reason the channel keeps winning in India. The fourth is the reason so many teams quietly go back to a form six months later.
- Friction collapses. A form asks for name, email, phone, company and message before it will accept anything at all. A chat asks for nothing. The visitor's identity arrives with the message, because it is their phone number, already verified by the app.
- The opening message beats the form's message field. People write to a chat the way they speak — *do you work with a dental clinic in Nashik, and what does it cost* — which hands you the category, the geography and the intent in one line, unprompted.
- The reply lands where people look. An email to a stranger has to survive spam filtering, a promotions tab and the general habit of not reading email. A WhatsApp notification does not have to survive any of that.
- Qualification gets worse before it gets better. No fields means no budget, no company size, no timeline. You get *price?* and you now need three exchanges to reach what one screen of a form would have collected.
- The thread has no state and no owner. A form submission lands in a system where it has a status and somebody's name on it. A chat sits in an inbox with four hundred other chats and a red dot, and it goes cold silently rather than showing up in a stale-lead report.
Exactly what you lose in measurement
The boundary sits earlier than most people assume, so here it is precisely.
Analytics fires an outbound click event each time somebody clicks a link that leads away from your domain to another site. A wa.me link qualifies, so on GA4 the click is captured by enhanced measurement with no tagging work at all. That event is also the last thing your analytics will ever learn about this person.
There is no thank-you page to attach a conversion to, no transaction ID, and no mechanism that ties an order closed three weeks later back to the pricing page that started the conversation — unless a human wrote it down.
It degrades further on the surfaces where Indian traffic actually arrives. A tap inside an in-app browser — Instagram, or a Chrome custom tab opened from another app — can hand the visitor to WhatsApp before the click event has reached Google's servers, so some share of the taps you did get are not recorded either. And plenty of people who open the chat never send the message. The instrumentation that closes as much of this gap as can be closed is in how to track WhatsApp and phone leads in GA4; this page is about the decision rather than the tagging.
| Hop | Recorded automatically | Recoverable if you plan for it |
|---|---|---|
| Search result to landing page | Query group, landing page and device, in Search Console and GA4. | Everything you need. |
| Landing page to WhatsApp tap | An outbound click event, with the page it happened on. | Which button and which template, if the links are built for it. |
| Tap to first message sent | Nothing. | The origin code you put in the pre-filled text, read by a human. |
| Message to qualified enquiry | Nothing. | A CRM row created the same day, with the code copied into it. |
| Enquiry to revenue | Nothing. | Only the CRM. No analytics configuration reaches this row. |
The fixable part: a link that carries its own origin
Most of the attribution loss above is structural. One piece of it is not, and it is a ten-minute change that a surprising number of Indian sites have never made, including sites spending lakhs a month on the traffic feeding the button.
- Get the format right.
https://wa.me/<country code><number>?text=<url-encoded message>— digits only, no plus sign, no spaces, no dashes.919315776817, never+91 93157 76817. Thetextparameter pre-fills the composer; it does not send anything, so nothing goes out without the visitor tapping send. - Put the origin at the front of the message. People edit the pre-filled text before sending, and they overwrite from the end far more often than from the beginning. A first line reading
[PRICING]survives being edited. A tracking code appended after their question does not. - Make the code readable by a person, not by a lookup table.
[PRICING]beats?ref=a91f. The person reading it is your salesperson at 9pm on a Saturday, and no team on earth maintains the decoder sheet past month two. - One code per template, not per URL. Product pages get one, the pricing page gets one, the city pages get one. Encoding four hundred URLs produces four hundred codes that nobody can group into a finding.
- Tag the anchor with UTM parameters as well.
utm_source,utm_mediumandutm_campaignare the three Google says to always use. They attribute the click itself inside GA4, even though nothing past it is visible. The parameters serve the report; the message text serves the human. Only one of those two gets read every day. - Test on a real handset, on both platforms, and inside Instagram's in-app browser. Encoding mistakes surface as a literal
%20sitting in the composer, and the in-app browsers are where these links break first and most invisibly.
Our own links, and their ceiling
We run two of these. The hero button carries one pre-filled message; the closing call-to-action block carries a different one. So we can tell which of the two placements somebody tapped — and nothing more, because the hero button is identical on the home page, the SEO page, the social page, the performance page and the pricing page, and neither link carries UTM parameters.
That is a ceiling we accepted, not a technique we recommend. The fix would have taken ten minutes. If your traffic is larger and more varied than ours, take the ten minutes.
When the form still wins
The correct answer is almost never *replace every form with WhatsApp*. It is *pick a primary call to action per page template and make the other one secondary*. A pricing page and a compliance-heavy intake page have no business sharing a primary CTA.
- Keep both on the page. Make one visually primary. Two equally weighted buttons split the click and teach you nothing about preference.
- Watch which one your best customers use, not which one gets more clicks. Volume and value diverge here more sharply than on most channels.
- If your category has a long consideration gap, capture an email address at some point in the chat. Ask for it in the reply, not in a form. It is the only asset that outlives the thread.
| Buying pattern | Primary CTA | Why |
|---|---|---|
| Local service, price or availability question | The answer is one line or one photo, and the buyer is comparing three suppliers this evening. | |
| D2C support turning into a sale | The thread already exists, and order history is context your agent can read without a system. | |
| B2B with procurement and a committee | Form | You need structured fields for routing and scoring, and a record the buyer's own process can reference. |
| Regulated intake — lending, insurance, diagnostics | Form | Consent has to be captured as a record with a timestamp, not implied by somebody sending a message. |
| Anything needing a document, spec or prescription | Form or email | Attachments arrive, then get lost in a chat scroll with no filename anyone can search. |
| High-ticket considered purchase, months long | Form, with WhatsApp secondary | Chat threads die between touchpoints. Email survives a three-month gap; a chat rarely does. |
Twenty-four hours is a staffing commitment, not a button
This is the part that gets skipped in the decision meeting and then determines whether the channel works.
If you run WhatsApp through the Business Platform — the API route, usually via a provider — a customer's message starts a 24-hour customer service window. While it is open you can reply with ordinary free-form messages. Once it closes you can only send pre-approved template messages, and since 1 July 2025 Meta charges on a per-message basis, with non-template messages inside an open window free and template messages billed when they are delivered.
Read that as an operations rule rather than a pricing note. An enquiry arriving at 11pm on Friday from a landing page you are paying to rank, answered at 11am on Monday, is answered outside the window. You either pay for a template message that reads like a notification, or you send nothing at all.
On the free WhatsApp Business app the commercial version of this problem does not exist — you can reply on Monday for nothing. The human version does. The person who asked you on Friday night asked three other suppliers on Friday night, and one of them replied on Friday night.
So the question before adding the button is not whether chat converts better. It is who holds this number at 9pm on a Saturday, and what happens to the thread when they are on leave.
- Name an owner and a backup, in writing. Not a rota nobody reads — one name per shift, and a rule about what happens when both are unavailable.
- Set a first-reply target you can actually meet and publish it on the page. Ten minutes during working hours and *we reply the next morning* overnight is far better than an unstated promise the channel implies and you break.
- Do not point a WhatsApp CTA at a number that goes to a personal handset. It works beautifully for four months and then somebody resigns.
- Decide before you launch whether you will pay for template messages. If the answer is no, the channel is only as good as your out-of-hours cover, and you should staff it or say so on the page.
What breaks when the enquiries live in somebody's phone
Every failure below is one we have watched cost a client a quarter of measurement, and none of them announce themselves in a report.
- The salesperson replies from their personal WhatsApp. The business inbox shows one inbound message and silence after it. The deal closes and no record of it exists anywhere your reporting can reach.
- Somebody leaves and the history leaves with them. Chat history lives on a device. Unless the number sits on a business account with a shared inbox, resignation is a data loss event.
- Nothing reaches the CRM, so nothing can be counted. Enquiries that exist only as chat threads cannot be totalled, compared month to month, or attributed to anything. They are invisible in exactly the argument you need them for.
- Chat content is personal data. Names, phone numbers, medical or financial detail typed into a thread sit under the same obligations as anything else you collect — worth reading alongside whether the DPDP Act applies to your website analytics before you export a year of conversations into a spreadsheet.
- The tracking discipline stops after three weeks. Copying the origin code into the CRM feels pointless on a quiet Tuesday. Make it a required field, not a good habit.
Why this matters more if anybody has guaranteed you a number
Our own arrangement is denominated in qualified leads from organic search: we freeze the client's trailing 90 days on day one, and if we have not beaten it in 90 days we keep working free until we do. How that works is on the SEO page.
A promise like that is only settleable if both sides can count. On a business where most enquiries arrive as chats in a personal handset, neither of us can — and the party who suffers from an uncountable baseline is whichever one is telling the truth. So the intake step is the measuring instrument, and it goes in during week one, before the baseline is frozen.
How we would sequence it, in a week
Nothing here needs a platform, a provider or a budget line. It needs one afternoon of implementation and one decision that somebody is willing to enforce.
- Pick a primary CTA per page template. Write it down as a table — template, primary, secondary. Ten minutes, and it settles an argument that otherwise recurs every quarter.
- Build the links properly. Correct number format, origin code at the front of the pre-filled message, UTM parameters on the anchor, one code per template.
- Move the number onto a business account nobody takes home. Shared inbox if the volume warrants it, a dedicated handset if it does not.
- Log every conversation the same day with the origin code and one line on what they asked. A spreadsheet is fine in month one. It is not fine in month six.
- Fire the click events and label them honestly. They are chat opens, not leads. Anyone reporting them as conversions is inflating a number that has no revenue behind it.
- At sixty days, look at the ratios rather than the totals. Chat opens to logged conversations to qualified enquiries to closed deals. The ratios are the finding, and the month one of them shifts is the month something broke.