🛍️ Shopify on WhatsApp

Measuring what WhatsApp actually earns you

Your analytics probably credits WhatsApp with nothing. That is a tagging problem, not a performance one.

WhatsApp traffic arriving at your store generally lands in "direct" unless the links you send are tagged — which makes the channel look like it contributes nothing, and leads merchants to cut the thing that was working.

Fixing it takes about twenty minutes and is the highest-value measurement change most stores can make.

Why it disappears

A customer taps a link in a chat, the browser opens without a referrer your analytics recognises, and the session is recorded as direct. Nothing is broken; there is simply no information attached to the link saying where it came from.

Email does not have this problem because email tools tag links automatically. WhatsApp links are whatever you typed.

The fix

  1. Add UTM parameters to every link a flow or broadcast sends. At minimum a source and a campaign identifying which flow sent it.
  2. Use a consistent naming scheme, so "order-confirmation" is not also "order confirm" and "confirmation".
  3. Distinguish flows from campaigns, so you can tell automated messages from broadcasts.
  4. Check it works by tapping one of your own links and confirming the session appears correctly.

After that, your existing store analytics separates WhatsApp-driven sessions from everything else, and you can compare against email and paid on the same basis.

What the platform can and cannot tell you

MetricAvailable?Caveat
DeliveredYesThe reliable one
ReadYesStructurally undercounted — recipients can disable read receipts
Link clicksA raw countNo click-through rate, and you cannot segment on who clicked
RepliesYesThe best engagement signal you have
RevenueNoComes from your store analytics, once links are tagged

The third row surprises people. Tracked links give a count of clicks, not a rate, and there is no way to build an audience of people who clicked — so "re-target everyone who clicked but did not buy" is not something you can do.

The attribution trap

Any recovery flow will report impressive numbers, because a share of the people it messages would have come back regardless. A tool that credits itself with every subsequent purchase is measuring your customers' intentions, not its own effect.

The honest way to find out is a holdout: for a period, exclude a random slice of eligible customers from the flow and compare conversion between the two groups. If the messaged group converts meaningfully better, the flow works. If not, you have learned something expensive for free.

Be sceptical of published benchmarks. Figures like "98% open rate" and specific cart-recovery percentages generally trace to vendor marketing rather than to a study with a method. We went looking for their origins and could not find them, which is why none appear on this site. When comparing tools, ask how a number was measured rather than what it is.

What to measure per flow

Different flows deserve different questions, and a single "WhatsApp revenue" figure hides more than it shows.

Cost per outcome, not total spend

Total spend tells you nothing about whether the channel works. Cost per outcome does, and it also shows you which flow to fix first.

The arithmetic is unusually favourable here because messages sent inside an open conversation window are free under Meta's pricing rules — service conversations have been free and unlimited since 1 November 2024. So a support-deflection flow has a marginal cost of close to zero, while a marketing broadcast is charged on every delivered message.

Rank your flows this way and you will usually find one marketing flow accounts for most of the spend while the utility flows run for nothing. That concentration is where the first improvement is.

The conversation that has no click

A genuine limit worth accepting: a customer asks a question, disappears for two days, then buys through your website without touching a link. No tagging scheme catches that, and it is a real share of WhatsApp's contribution.

Two partial answers. Compare repeat-purchase rate between customers who have an open conversation with you and those who do not — imperfect, but directional. And track support cost separately, since a deflected conversation is a saving whether or not it produced a sale.

A monthly review that takes twenty minutes

  1. Are links still tagged? A new flow often ships without them.
  2. WhatsApp sessions and revenue in your store analytics, month over month.
  3. Cost per outcome for your most expensive flow.
  4. Any automation with zero runs — broken or unnecessary, both worth knowing.
  5. Quality rating still green?

Method and the wider measurement picture are in measuring whether your automation works, and the frequency implications in how many automations a store should run.

A tagging scheme that survives

Decide the scheme once and apply it everywhere, because inconsistent tags are almost as unhelpful as none.

ParameterUseExample values
SourceAlways the samewhatsapp
MediumAutomated or broadcastautomation, broadcast
CampaignWhich flow or sendorder-confirmation, cart-recovery

Three parameters, lowercase, hyphenated. That is enough to answer both questions that matter: how much revenue the channel produces, and which flow produced it.

Numbers worth knowing before you compare

Two facts change how the arithmetic reads. First, messages inside an open 24-hour window are free, and service conversations have been free and unlimited since 1 November 2024 under Meta's pricing documentation — so support-deflection flows have a marginal cost near zero.

Second, your messaging tier caps how many unique customers you start conversations with, beginning at 250 per rolling 24 hours and rising through 2,000, 10,000 and 100,000 per Meta's messaging limits documentation. A campaign's reach is bounded by that, not by your list size — so "revenue per send" can look flat simply because delivery stopped.

Comparing WhatsApp with email fairly

The two channels report different things, so a direct comparison flatters one of them by accident. Email gives opens and clicks; WhatsApp gives delivered, an undercounted read, and a raw click count.

The honest basis is revenue per recipient after costs, on the same audience, over the same period. Anything else compares a metric one channel reports well against a metric the other does not report at all.

What to do first

  1. Tag every link a flow or broadcast sends.
  2. Check one of your own links lands correctly in your analytics.
  3. Pick a single flow and run a holdout on it.
  4. Work out cost per outcome for your most expensive flow.
  5. Review monthly, and re-check tagging whenever a new flow ships.

Point five is the one that decays. A flow built in a hurry almost always ships with an untagged link, and a quarter later the channel looks like it stopped working. It did not — the measurement did.

What to report upward

If you have to justify the channel to a partner or a board, three numbers do it better than a revenue figure alone:

Reporting message volume or open rates instead invites the obvious question of what any of it earned, and you will not have an answer.

Three mistakes that make the numbers lie

  1. Counting recovered carts instead of incremental ones. A share of those customers were returning anyway, and without a holdout you are crediting the flow with their intentions.
  2. Ignoring the free half. Support deflection has almost no marginal cost, because messages inside an open window are free under Meta's pricing rules. Leaving it out of the picture makes the channel look worse than it is.
  3. Comparing against a benchmark with no method. Most published figures in this category trace to vendor marketing rather than research, so a flow that "underperforms" them may be doing fine.

Between them these three explain most of the disagreements merchants have about whether WhatsApp is working.

Tag your links today; the rest can wait a week. Untagged links are the single reason most stores believe this channel earns nothing.

What a good month looks like on paper

Once tagging is in place and you have run one holdout, a defensible monthly picture has four lines rather than one:

  1. Attributed revenue from tagged WhatsApp sessions in your store analytics.
  2. Incremental revenue from whichever flow you holdout-tested, which is the honest subset of the first number.
  3. Support conversations deflected, valued at whatever an hour of your team's time is worth.
  4. Total message spend, split between the flows that cost money and the ones that do not.

Four lines, and between them they answer the only question that matters: whether this earns more than it costs. A single revenue figure never does, because it includes sales that were coming anyway and excludes the labour you stopped spending.

Frequently asked questions

Why does my analytics show no revenue from WhatsApp?

Because links sent in chat arrive without a recognised referrer and get recorded as direct. Add UTM parameters to every link a flow or broadcast sends and the sessions attribute correctly.

Can I see click-through rates on WhatsApp links?

No. Tracked links give a raw click count only — there is no click-through rate, and you cannot build an audience of people who clicked.

How do I know a recovery flow actually caused the sale?

Run a holdout: exclude a random slice of eligible customers for a period and compare conversion. Without one, the flow claims orders that would have arrived anyway.

Why is read count lower than delivered?

Because recipients can disable read receipts, so read is structurally undercounted. Treat delivered as the reliable number and replies as the best engagement signal.

Need help? Message us