Skip to content

When Timi sends Purchase to Meta from WhatsApp (M-Pesa, mark sold)

Close the loop between M-Pesa confirm and mark sold in Feed so Purchase events reach Meta Ads Manager — not just qualified leads.

7 August 2026 · 6 min read · Timi Labs

Monday stand-up: Ads Manager shows forty-seven qualified leads from last week's Click-to-WhatsApp campaign. Purchase is zero. Your till book shows nine M-Pesa payments from WhatsApp — all real sales, all from buyers who messaged after tapping your Instagram ad. The tracking is not broken. Purchase never fired because nobody confirmed M-Pesa in Feed or marked those chats sold. Meta optimises on the events it receives. If Purchase stays flat while money hits your till, ad spend drifts toward browsers — not payers.

This guide covers when Timi sends Purchase to Meta and the team habits that close the loop. For OAuth setup see connect Meta Ads. For reading ROAS on your seller dashboard see read ROAS on Timi's Ads page.

Why Purchase matters more than conversation count

Meta can optimise toward many signals — link clicks, conversations, leads. Kenyan WhatsApp sellers care about M-Pesa in the till. A campaign that produces two hundred "hi" chats and three payments is worse than one that produces forty chats and twelve payments — even if cost per chat looks cheaper on the first.

Purchase is the event that tells Meta which ad sets produced paying buyers. Qualified lead events show interest; Purchase shows money changed hands. If you scale budget while Purchase is missing, you are asking Meta to find more people like your tyre-kickers — not your till payers.

That is YMYL territory for your business: real ad spend, real margin. Treat Purchase discipline like inventory control — not a nice-to-have after creative review.

Three paths that fire Purchase

Timi sends Purchase for Click-to-WhatsApp ad chats only when one of these happens:

  1. M-Pesa confirmed in chat — your team confirms the buyer's M-Pesa message or screenshot in Feed
  2. Mark sold in Feed — you mark the chat sold for cash, till, or any offline payment you record in Timi
  3. In-flight Paystack checkout paid — a buyer Paystack link already sent before checkout was retired can still mark paid

Each path closes the same loop: Meta learns which ad traffic converted to revenue. New sales close on Till / Paybill — Timi does not send buyer checkout links. Confirm or mark sold so Purchase fires.

For quoting totals and Till collection habits, see delivery fees and M-Pesa on WhatsApp. Purchase reporting still depends on you recording the sale in Timi — not only in your till book.

Team playbook: who does what

Assign one habit per payment type so Purchase is not orphaned:

Till and Paybill M-Pesa. The buyer pays; a confirmation SMS or screenshot lands in chat. Someone on the team confirms M-Pesa in Feed the same day — ideally within an hour while the ad set is still learning. If only finance sees the till notification and never opens Timi, Purchase stays zero.

Cash on delivery or walk-in handoff. Driver collects cash; chat started from an ad last week. Mark sold in Feed when dispatch confirms payment — link the chat to the sale even if payment happened offline.

Write a one-line rule in your team WhatsApp group: "Ad chat paid → confirm M-Pesa or mark sold before close of day." Fifteen seconds per sale beats a KES 30,000 weekend optimising on leads alone.

CTWA-only: organic sales do not feed ad optimisation

A buyer from your Instagram bio can pay KES 8,000 by Till. That is a win in Feed and CRM — Timi does not send that sale to Meta as an ad conversion. Only chats that arrived with Click-to-WhatsApp referral carry the data Meta needs to optimise paid campaigns.

That is intentional. Mixing organic till into ad reporting would teach Meta the wrong lesson — boosting spend toward Status posts instead of the Reel ad that actually converts.

Nurture organic in Feed. Use CTWA when you want Meta to shift budget toward payers. Separate weekly reviews: ad ROAS on Timi Ads and Ads Manager; organic revenue in your internal sheet.

Cross-check one sale end to end

Pick one known sale from last week and walk the chain:

  1. Feed — chat shows paid / ad attribution label (from CTWA)
  2. Payment action — M-Pesa confirmed or mark sold recorded
  3. Settings → Ad conversion tracking — Signal health shows Purchase sent in the last seven days; event log row status Sent
  4. Meta Events Manager — Purchase on your dataset within expected lag (often same day)

If step 1 passes but step 3 fails, fix team habit before blaming OAuth. If step 3 passes but step 4 lags, check you are viewing the same dataset you selected during connect — see connect Meta Ads troubleshooting.

Purchase in Meta vs your ops record

Till / M-Pesa business SMS

Purpose
Cashflow and finance
Purchase to Meta?
No — until confirmed or mark sold in Timi

Timi Feed mark sold / M-Pesa confirm

Purpose
Sales ops + ad loop
Purchase to Meta?
Yes — for CTWA chats

Friday spreadsheet upload

Purpose
Legacy media buyer habit
Purchase to Meta?
Avoid if CAPI live — duplicates risk

Record scenarios above.

Your accountant still needs till exports. CAPI Purchase replaces the Meta upload bridge — not your books.

Common mistakes

  • Qualified leads rising, Purchase flat — team collects M-Pesa but never confirms in Feed
  • Comparing till total to Ads Manager Purchase without filtering CTWA-attributed sales
  • Waiting for a checkout link to mark paid — buyer checkout is retired; confirm Till yourself
  • Expecting Purchase from organic bio traffic — only CTWA ad chats report to Meta
  • Blaming broken CAPI when ad destination was wa.me instead of Click-to-WhatsApp
  • Duplicate reporting — CSV upload plus live CAPI for the same sale

Read the WhatsApp ads pillar guide for campaign structure and budget discipline.

FAQ

How fast does Purchase appear after I mark sold? Usually within minutes. Events Manager can batch — allow a few hours before panicking.

We only use Till — do we need a checkout link for Purchase? No. Confirm M-Pesa in chat or mark sold for every CTWA sale. Timi does not send buyer checkout links.

Purchase fired twice — is that bad? Timi deduplicates by event design for the same milestone. Do not also upload the same sale via spreadsheet.

Can my rider mark sold? Anyone with Feed access can — assign who owns ad-chat closes so nothing slips.

Does partial deposit count as Purchase? Purchase reflects how you record the sale in Timi when payment is confirmed or marked sold — align with your shop policy for deposits vs full pay.

What if the buyer paid but the chat has no Paid label? They may be organic, not CTWA. Purchase to Meta applies to ad-attributed chats only.

When Timi sends Purchase to Meta from WhatsApp (M-Pesa, mark sold) | Timi