BACK TO BLOG
USE CASESNovember 11, 20269 min read

respond.io With Causality Engine: Check the Won Stage

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-11-11

The short answer: respond.io's Lifecycle report and Meta's Ads Manager can both show a healthy month of chat sales while the shop's revenue line stays flat, because both are counting a stage that a person or an AI agent set, not an order the store recorded. respond.io, the customer conversation platform that puts WhatsApp, Instagram, Messenger, TikTok, email and calls in one team inbox, defines its Overall Conversion Rate as the share of contacts who reach the Won stage out of all who entered the funnel (Lifecycle report article). Its Send Conversions API Event step can then pass Meta a Purchase whose Total Purchase Value is whatever a contact field or variable holds (CAPI step article). The store's own record of those buyers lives in GA4, if the links in the chat were tagged. The free first finding of Causality Engine, a causal attribution tool that reads GA4's Attribution paths export, sits at app.causalityengine.ai/start.

Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.

Three readings to take this week:

  • Work out what a Won stage is worth. For example, a Purchase value field filled with the quoted price, 175 Won contacts at €182 each, sends Meta 175 x 182 = €31,850 of purchases, paid or not. Check which field the workflow reads.
  • Pull the export you already have. Each broadcast lists its sent, delivered, read and failed messages, and the Broadcasts module exports all broadcasts to CSV (managing broadcasts article). Set that beside the shop's orders for the same days.
  • Search GA4 for the chat. Filter Traffic acquisition for source whatsapp. If the row is empty while the Won count grows, the links leaving the inbox carry no tags.

The two products in one table

Itemrespond.ioCausality Engine
DefinitionTeam inbox for chats, calls and email with AI agents (entry)A causal read of a GA4 export (entry)
What counts as a saleA contact reaching the Won stage, from first stage assignment (Lifecycle report)A purchase in GA4, with Direct split back to its senders (how it works)
What it tells MetaLead or Purchase events with value and currency; the click-to-WhatsApp click ID is added automatically (CAPI step)Nothing; it adds no pixel
Broadcast reportSent, delivered, read, failed; status tracked up to 30 days (Broadcasts report)Reads the channel the visit landed in
GA4 channel for chat linksSet by the tags you type; whatsapp is a social source (Google's rules)Every channel in the file
IntegrationNoneNone (integrations)
Cost of a checkInside your planFree first finding; €99 per read, refundable for 30 days (pricing, checked on 11 November 2026)

How respond.io decides a contact converted

The Lifecycle report is a funnel model, and the Lifecycle report article states its rules in full. A contact enters on the date of their first lifecycle stage. They leave by reaching a Won stage, moving to a Lost stage, or having the stage cleared. A skipped stage still counts as passed through. A contact who is lost and later requalified starts a new journey. Contacts never given a stage are left out of every metric, which keeps the rate clean and also means a buyer who never chatted cannot lower it.

Who moves the stage is a setting, not a fact about the order. Agents can do it, workflows can, and an AI agent can, through the Update Lifecycle stage skill (AI skill article).

The Meta side follows. The CAPI step article offers two event types, Lead Generated and Purchase, and Purchase needs a currency and a Total Purchase Value that "can support Contact field variables or Workflow variables". At least one customer information field must be filled or the event is not sent, and Meta needs 50 events before it optimises well. Nothing in the step checks the value against a store.

Broadcasts are measured by delivery only. The Broadcasts report counts sent, delivered, read and failed messages, notes that contacts with read receipts off never show as Read, and stops updating a message's status after 30 days. There is no click column.

Getting chat traffic into GA4 under its own name

The respond.io help centre documents no automatic UTM tagging, so every store link an agent, a snippet or an AI agent sends is tagged by hand, once, in the text you save. Shopify connects through Zapier, using email as the identifier, to sync contacts and order status (Shopify via Zapier); it passes no source to GA4.

Google's default channel group page sets the rules, and the source list it publishes classes whatsapp, messenger and l.messenger.com as social. A link tagged utm_source=whatsapp&utm_medium=chat therefore lands in Organic Social. For chats opened by an ad, a medium beginning with paid moves the visit to Paid Social. Keep the values lowercase, since GA4 treats WhatsApp and whatsapp as different sources (URL builder page), and keep the tags on every link: untagged visits join (direct) / (none) (direct traffic page).

The claim gap, a worked example in euros

For example, with invented figures that describe no real business: in March, 1,250 contacts enter the funnel and 175 reach Won, an Overall Conversion Rate of 175 ÷ 1,250 = 14%. A workflow sends Meta a Purchase for each Won contact at a quoted €182, so Ads Manager gains €31,850 of chat purchases on top of €58,900 it already claims for other ads. Google Ads claims €67,300. The shop's revenue for March is €146,200.

Meta's total is 31,850 + 58,900 = €90,750, and with Google 90,750 + 67,300 = €158,050, which is 158,050 - 146,200 = €11,850 more than the shop took, organic search and email not yet counted. GA4's last-click view gives the tagged chat links €12,400 across Organic Social and Paid Social. The chat's own claim and GA4's figure differ by 31,850 - 12,400 = €19,450: quotes never paid, orders placed by phone, and buyers who typed the address.

The read does not decide which chat figure is right. As its how-it-works page describes, it splits Direct back to the channels that sent those buyers, sets what each caused next to its last-click credit, grades each with a data-health score from 0 to 100, and gives a next step to raise, cut or hold, tried in one region before the rest. If Paid Social's caused share is far below Meta's €90,750, test before the next budget step.

A holdout built from one import

The free check is by hand and uses two respond.io features as documented. Import to Broadcast brings in a CSV of opted-in contacts and recommends tagging the import, and a broadcast is sent to a segment. Split the CSV at random before importing, give each half its own tag, and broadcast to one half only.

For example, 2,400 contacts split into 1,200 and 1,200. Seven days later the shop's order export shows 66 orders from the first half and 47 from the second. The broadcast caused about 66 - 47 = 19 orders, whatever the Won count says. That result is enough on its own.

For a read of every channel together, Causality Engine, which I founded, takes the GA4 export on the start page: a free finding worked out in the browser, then one full read for €99 with a 30-day refund (one-off read).

Limits worth knowing first

  • Chat-only sales stay outside GA4. A transfer or a cash payment recorded as Won never fires a GA4 purchase, so the read cannot weigh it.
  • Channels, not agents or broadcasts. The read is per channel; Lifecycle reports and the Leaderboard answer which person or campaign sold.
  • Enough data. Twelve months or more of GA4 history reads best, and a channel under 1% of credit on both methods is called too small to act on (pricing for agents).

respond.io charges by Monthly Active Contact, anyone you talk to or who contacts you in the billing month, at $12 per extra 100 on Growth (pricing page, checked on 11 November 2026), so every broadcast recipient becomes billable the day the message goes out, while the Won stage that justifies the send is set inside the same product with no store order required.

See also

FAQ

Is there a respond.io integration with Causality Engine?

No. respond.io talks to Meta, Zapier and its own CRM integrations; Causality Engine reads a GA4 Attribution paths CSV and nothing else, so chat sales enter the read only as tagged visits GA4 recorded (integrations page).

Should the Purchase value come from the quote or the payment?

My recommendation: from a field filled only when payment is confirmed. The CAPI step article accepts any contact field or variable, so the choice of field is the whole of the accuracy.

Why does the Broadcasts report show fewer reads than deliveries?

Contacts who turned off read receipts in WhatsApp are counted as sent and delivered but never as read, and statuses stop updating after 30 days (Broadcasts report).

TAGS
Causality Enginerespond.ioConversational Commerce AttributionGA4Worked Example

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Agentic marketing, built for your team

The agents in this article, built into your workflows and handed over to your team: the first one within two weeks.

With Joris van Huët, interim and fractional CMO in Utrecht. From EUR 5,000 a month, monthly cycles, a 30-day exit.