Analytics · Attribution

Stop guessing which message drove the sale

Attribution on WhatsApp is usually fiction — a last-touch number on a marketing slide nobody believes. SabNode runs multi-touch, last-touch and incremental-lift attribution against the same event spine that powers operations, so the number on the slide matches the number in the warehouse, and both are defensible.

  • Multi-touch, last-touch and lift models
  • Attribution at campaign, flow and channel level
  • Configurable lookback windows and decay
  • Holdout-based incrementality on supported campaigns
The problem

Attribution on WhatsApp is mostly storytelling

WhatsApp does not give you click IDs. There is no equivalent of gclid or fbclid baked into the message envelope. So when a customer receives a marketing template, taps a button, lands on a checkout, and converts, the link between message and conversion has to be reconstructed from your own data — and most operators reconstruct it badly. They pick a 24-hour last-touch window, attribute everything in it to whatever the most recent send was, and call it done. The marketing slide says WhatsApp drove 47 percent of revenue. Finance does not believe it. Nobody re-runs the analysis with a different model because nobody knows how.

The failure modes are predictable. A customer receives a Marketing template, ignores it, gets an email two days later, clicks through and buys — but the WhatsApp template gets the credit because attribution windows overlap. Or a flow runs every day for a week and conversion is attributed only to the last touch even though the first message was the one that built the intent. Or a holdout campaign proves a 12 percent lift but the slide quotes 38 percent because last-touch is over-counting.

Real attribution acknowledges the messiness. It supports multiple models — last-touch for ops dashboards, multi-touch for marketing planning, holdout-based incrementality for budget decisions — and lets you run them against the same events so the differences are visible and explainable. Then nobody is lying; everyone is just looking at the right model for the right question.

What it is

Attribution, in depth.

SabNode Attribution runs against the same event spine that powers operations and warehouse exports. Every message touch, every flow entry, every campaign exposure and every conversion event lives in one canonical store keyed by the contact, so attribution joins are trivial and consistent. You do not need to stitch identities across systems — the same contact ID flows through marketing, inbox, flows, payments and CSAT.

Multiple models run side by side. Last-touch attributes the conversion to the most recent qualifying touch within the lookback window. First-touch credits the earliest. Linear distributes credit evenly across all touches. Time-decay weights more recent touches higher. Position-based gives 40 percent each to first and last touches and distributes 20 percent across middle touches. Each model is configurable for lookback window and touch eligibility (which channels, which campaign types qualify).

Incremental lift is the gold standard, available where you ran a holdout. Multi-step campaigns and flows that include a holdout group produce a clean lift estimate — treated conversion rate minus held-out conversion rate, with confidence intervals. The lift number is the closest you can get to "this is what the campaign actually caused" rather than "this is what correlated with the campaign". Where holdouts are not available, multi-touch is the next-best honest model.

Reporting is operator-friendly. The attribution dashboard surfaces revenue and conversions by campaign, flow, channel and segment under each model side by side, so the gap between last-touch and incremental lift is visible. Drill into a campaign to see the underlying touches, the contacts attributed and the conversion paths. Export the model output to BigQuery or Snowflake for your finance team to reconcile against ledger truth.

Capabilities

Everything you get with Attribution.

7 capabilities
01

Last-touch attribution

Attribute each conversion to the most recent qualifying touch within a configurable lookback window (default 7 days for marketing, 1 day for transactional). Operator-friendly default for daily dashboards and same-day decisions.

02

Multi-touch models

First-touch, linear, time-decay and position-based models run against the same event spine. Configure lookback per model and compare side by side to understand where each model over- or under-credits.

03

Incremental lift

For campaigns and flows with holdouts, compute true incremental lift — treated minus holdout conversion rate with confidence intervals. The honest model that survives scrutiny in finance and board reviews.

04

Campaign and flow attribution

Attribute conversions to the specific campaign or flow that drove them, not just the channel. A customer touched by three flows in a week gets credit distributed by the model you select, not assigned arbitrarily to the loudest one.

05

Channel attribution

Cross-channel attribution joins WhatsApp, Instagram, email and web chat touches under the same contact ID. See whether your WhatsApp ROI is real or whether email is doing the heavy lifting hidden behind a last-touch WhatsApp tap.

06

Lookback and decay control

Configure lookback windows by channel and by event type. Authentication touches usually do not deserve marketing credit; Marketing touches in the last 24 hours probably do. The platform makes the rules explicit.

07

Warehouse-grade exports

Attribution model outputs export to BigQuery, Snowflake or Postgres alongside raw events. Your analysts can rebuild the model in dbt if they want to, but the canonical results stay defensible and consistent across teams.

Use cases

Built for the way teams actually work.

D2C
Case 01

Quarterly budget reallocation

A D2C growth team runs holdout-tested attribution across WhatsApp, Instagram DM and email. The honest lift number reallocates a six-figure quarterly budget toward WhatsApp Marketing templates after proving a 14 percent incremental lift versus last-touch's 38 percent.

SaaS
Case 02

Flow performance review

A B2B SaaS reviews flow performance with multi-touch attribution rather than last-touch. The onboarding flow gets first-touch credit it deserves on conversions weeks later, justifying continued investment in onboarding copy and flow design.

EdTech
Case 03

Channel ROI for the CFO

An edtech CFO asks for channel ROI. The attribution dashboard shows last-touch, multi-touch and incremental lift side by side, with the gaps explained. The CFO signs off on the WhatsApp budget once the lift number is reconciled against the ledger.

E-commerce
Case 04

Campaign A/B winner promotion

An e-commerce brand runs a campaign with an A/B split and a holdout. Attribution shows arm A drove a 7 percent incremental lift versus arm B's 2 percent. Arm A is promoted to 100 percent for the next campaign without internal debate.

Real Estate
Case 05

Real-estate broker performance

A developer attributes site visits and bookings to the specific outbound message and broker that touched the lead. Multi-touch model credits both the initial brochure send and the broker's follow-up, ending arguments about which message moved the lead.

How it works

From signup to first send in minutes.

Attribution is included on every SabNode workspace. No separate billing, no extra setup — flip it on from your workspace settings.

  1. 01

    Define a conversion event

    Pick the conversion — a purchase, a payment, a signup, a reply, a custom webhook. Events can be defined per business and per campaign goal.

  2. 02

    Pick attribution models

    Enable last-touch, multi-touch (first, linear, time-decay, position) and incremental lift where holdouts exist. Each runs in parallel against the same data.

  3. 03

    Set lookback and rules

    Configure lookback windows per channel and event eligibility (which touches qualify). Authentication usually does not qualify for marketing credit.

  4. 04

    View attribution dashboard

    See revenue and conversions by campaign, flow, channel and segment under each model. Drill into a campaign to see the underlying touches and paths.

  5. 05

    Reconcile and decide

    Export model outputs to your warehouse for finance reconciliation. Use incremental lift for budget reallocation and last-touch for daily operations.

Plays well with

Works with the tools you already ship on.

ShopifyStripeRazorpayHubSpotSalesforceBigQuerySnowflakeMixpanel
Frequently asked

Questions about Attribution.

Can't find what you're looking for? Talk to our team.

Why does my last-touch attribution number differ so much from incremental lift?
Last-touch credits every conversion in the lookback window to the most recent touch, which over-counts touches that happened near the conversion but did not cause it. Incremental lift compares treated and held-out audiences, which isolates true causation. The gap is real — a 38 percent last-touch share might be a 14 percent incremental lift, and the gap is mostly customers who would have converted anyway.
Which model should I use for budget decisions?
Incremental lift where you have a holdout. Multi-touch (time-decay or position-based) where you do not. Last-touch is fine for daily ops dashboards where the question is "who did we touch today" rather than "what did the touch cause". The dashboard surfaces all three side by side so you can pick the right one for the question.
How are touches across channels reconciled?
Through the shared contact ID. Every WhatsApp send, Instagram DM, email open and web chat session is keyed by the same canonical contact, so a customer touched by three channels in a week has all three touches available to whichever attribution model you run. Identity resolution is at the contact level, not at the channel level.
What counts as a qualifying touch?
Configurable per channel. By default, Marketing template sends qualify for marketing attribution; Authentication and most Utility sends do not. Email opens, link clicks and replies all qualify. You can override these defaults per campaign — for example, a transactional Utility template that included a soft-cross-sell might be promoted to qualify for attribution credit.
How is the holdout for incremental lift different from a campaign A/B?
A campaign A/B compares two treatment arms (e.g., copy A vs copy B). A holdout compares the treated audience against an audience that received zero campaign messages. Both are valuable but they answer different questions: A/B says "which variant is better"; holdout says "did the campaign cause anything at all". Together they tell you which arm is best and how much it moved the needle absolutely.
How fast does attribution show up on the dashboard?
New conversions are attributed within minutes. Models that depend on a full lookback window (e.g., 7-day multi-touch) stabilise as the window completes — a conversion attributed on day 1 might have its model output adjusted as later touches fall outside the window. The dashboard shows both the immediate and the stabilised number with a small icon explaining the difference.
Can I rebuild attribution in dbt against the raw events?
Yes. The warehouse export includes every event the attribution engine sees, with documented schema and stable IDs. Analysts who want to rebuild the model in dbt or run custom analyses (e.g., Shapley value attribution, Markov chain models) can do so against the same canonical data. The platform-computed result is the reference; analysts replicate or extend.
Analytics · Attribution

Ship attribution into production this week.

No credit card. No sales call required. Spin up a workspace, plug in a number, and your team is live in under an hour.