Revenue attribution
See what your messaging actually earned — direct, assisted, estimated, and saved revenue.
The Revenue page answers the question every messaging tool should be able to answer: did this make money?
Enscale attributes revenue to the message that influenced it, and is explicit about how confident that attribution is.
Attribution types
| Type | Meaning | Confidence |
|---|---|---|
| Direct | The customer clicked a link in your message and bought in that session. | Highest |
| Assisted | Your message touched the customer before they bought, but wasn't the last click. | Medium |
| Estimated | Modelled influence where a direct link can't be established. | Lowest |
| Savings | Cost avoided rather than revenue earned. | Different metric |
Report Direct separately from Estimated. They're different claims. Direct revenue is a click you can trace; estimated revenue is a model. Combining them into one headline number is how messaging tools end up claiming credit for revenue that would have happened anyway.
Attribution sources
| Source | Attributed when |
|---|---|
| Abandoned checkout | A recovery message preceded the purchase. |
| Broadcast | A campaign preceded the purchase. |
| Workflow | An automated message preceded the purchase. |
| AI chat | An AI conversation preceded the purchase. |
| Review widget | A storefront review influenced the purchase. |
| Coupon popup | A popup signup preceded the purchase. |
| Support savings | Support handled without a human. |
| Manual | You attributed it yourself. |
Getting accurate attribution
Direct attribution depends on links being tagged. Two rules:
Always use the Format link node
Don't paste raw URLs into messages. The Format link node adds UTM parameters and shortens the URL, and it's what makes a click traceable back to the specific message that carried it.
Defaults are utm_source=whatsapp and utm_medium=automation. Set utm_campaign per flow so you can tell your recovery flow from your review request.
A raw URL in a message produces untracked traffic, which lands in Estimated at best.
Connect ad-click triggers
The three ad-click triggers — WhatsApp Ad Click (CTWA), Instagram Ad Click, Facebook Ad Click (CTM) — tell Enscale which conversations came from paid ads. That connects ad spend to conversations to orders.
Ad tracking requires a paid plan.
Meta Conversions API
For contacts with an active ad attribution, Enscale forwards purchase events back to Meta through the Conversions API — Purchase, InitiateCheckout, OrderShipped, OrderDelivered, and OrderCanceled.
This closes the loop for Meta's ad optimisation: Meta learns which ad clicks became orders, which makes its targeting better.
Events are only sent for contacts with a live ad attribution. Customers who found you organically aren't reported to Meta.
Support savings
Savings measures cost avoided, not revenue earned — conversations an AI agent resolved that would otherwise have needed a person.
Treat it as a separate line, not as revenue. It's a real saving, but adding it to a revenue total produces a number that means nothing.
The honest comparison is: savings from AI-resolved conversations, minus what those resolutions cost you at your plan's rate. See AI usage and spend.
Reading the report
Filter by date range, source, and attribution type. Useful views:
- Direct revenue by source — which flows genuinely earn.
- Direct only, by campaign — which campaigns were worth sending.
- Savings — what AI handled on its own.
- Assisted vs direct — whether messaging opens conversations or closes them.
Troubleshooting
| Problem | What to check |
|---|---|
| No direct revenue | Links aren't tagged. Use the Format link node. |
| Everything is Estimated | Same cause — no traceable click. |
| Ad-sourced revenue missing | Confirm the ad-click triggers are in use and you're on a paid plan. |
| Numbers lower than expected | Attribution windows are finite. A purchase weeks after a message isn't attributed. |
| Totals don't match Shopify | Expected — Enscale counts messaging-influenced orders, not all orders. |
Next steps
- Node reference — the Format link node.
- Trigger reference — ad-click triggers.
- AI usage and spend