Skip to main content
B2B SaaSFor demo-led B2B SaaS

Get your B2B SaaS tracking to 95%+ accuracy guaranteed in writing.

If your pipeline runs on booked demos, the ad platforms are optimizing toward the cheapest form fill they can find, because that's the only signal you gave them. The stages that predict revenue live in Salesforce or HubSpot and never make it back. I wire the CRM into the ad platforms so bidding follows meetings that get held and deals that get won.

Free30 minutesNo obligation

B2B SaaS · what breaks

Where demo-led attribution falls apart — B2B SaaS

  1. 01

    Volume optimization finds the cheapest humans

    Tell Meta or Google to maximize form fills and they will, from the cheapest inventory available. You get students, job seekers, offshore agencies and competitors, all reported as conversions.

  2. 02

    Booked is not held

    Chili Piper, Calendly and Qualified fire on booking. A meaningful share of those never show, and the platforms keep bidding as if they did, because nobody ever sends the no-show back.

  3. 03

    gclid dies at Lead Conversion

    In Salesforce the click ID sits on the Lead. Convert to Contact and Opportunity without mapped fields and it's gone, which is why closed-won offline imports come back with terrible match rates.

  4. 04

    Closed-won lands outside every window

    A 90-day sales cycle means the deal closes long after Meta's 7-day click window shut. Setting closed-won as your optimization event just starves the algorithm of signal.

B2B SaaS · the fix

What changes when the CRM becomes the scoreboard — B2B SaaS

  • Optimization moves to qualified meeting held

    The earliest stage that is both inside the ad platform window and predictive of revenue. For most demo-led products that's days after the click, not months.

  • Junk never reaches the platform as a conversion

    The server container checks email domain, enrichment and firmographics before forwarding. A free-mail signup outside your ICP never becomes a Lead event in Meta or Google.

  • Every stage carries a value

    Meeting held, SQO, pilot and closed-won each get a value derived from your own stage conversion rates and average contract value, so bidding weights pipeline instead of activity.

  • Reporting and optimization stop fighting

    Closed-won still imports for measurement with the original click ID attached. It just isn't the thing you ask the algorithm to chase.

B2B SaaS · architecture

Where the CRM plugs into the ad platforms — B2B SaaS

Ad click, content or demo form, scheduler, meeting held, SQO, closed-won. Only the first two live in the browser; everything that predicts revenue lives in Salesforce or HubSpot.

  1. 1

    Click IDs captured and written to the Lead

    gclid, gbraid, wbraid, fbclid, li_fat_id and msclkid land in hidden form fields and onto the Lead record at the moment it's created.

  2. 2

    Field mapping that survives Lead conversion

    In Salesforce the same fields exist on Contact, Account and Opportunity and are mapped, so converting a Lead no longer erases the attribution.

  3. 3

    The ICP gate runs server-side

    Domain checks, free-mail exclusion, enrichment, headcount and region rules run in the container before anything is forwarded as a conversion.

  4. 4

    Scheduler and CRM report the stages

    Chili Piper, Calendly, Default or Qualified send booked, while CRM flows or workflows send held, no-show, SQO, closed-won and closed-lost.

  5. 5

    One server feed, four destinations

    The same event stream fans out to Google offline import, Meta CAPI, LinkedIn CAPI and Microsoft UET, deduplicated by event_id.

B2B SaaS · events

Pipeline stages as events, with one optimization target — B2B SaaS

Exactly one stage is the optimization event so the algorithm isn't split across three competing signals.

content_downloadA gated asset form submitsgclid, li_fat_id, em (hashed), form_id, event_idBrowser + server, deduped by event_id · reporting only
demo_requestedA demo or contact-sales form submits and clears the ICP gategclid, em (hashed), company_domain, event_idServer · reporting only
meeting_bookedChili Piper, Calendly or Qualified confirms a slotgclid or em (hashed), meeting_id, event_idServer · reporting only
meeting_heldThe rep marks the meeting attended in the CRMgclid or em (hashed), value (stage expected value), currency, conversion_date_timeServer · optimization (primary)
meeting_no_showA scheduled meeting passes with no attendance recordedmeeting_id, no valueServer · reporting only, suppresses meeting_booked
sqo_createdThe opportunity reaches sales-qualified stagegclid or em (hashed), value (stage expected value), currency, opportunity_idServer offline import · reporting only
closed_wonThe opportunity closes wongclid or em (hashed), value (ACV or first-year margin), currency, transaction_idServer offline import · reporting and value calibration
closed_lostThe opportunity closes lost with a reasonopportunity_id, loss_reasonServer · reporting only, feeds the ICP gate rules

B2B SaaS · prove

Verified against the CRM, not against the ads interface — B2B SaaS

Salesforce or HubSpot is the scoreboard. Each month we check that the platforms received what the CRM says actually happened.

Source of truth

Meetings held, SQOs and closed-won opportunities in Salesforce or HubSpot

  • Export meetings held, SQOs and closed-won for the month with the click ID and source stored on each record.
  • Check the click-ID fill rate on Opportunity, not just on Lead — a drop there means the conversion mapping broke again.
  • Compare meeting_held counts to Google Ads and Meta reported conversions by conversion date.
  • Review the ICP gate log: how many leads were filtered, and would any of them plausibly have become real pipeline?
  • Re-derive stage values from the last four quarters of pipeline and update the conversion actions if the rates moved.
  • Separate window and model differences from unmatched records, and fix only the unmatched records.

B2B SaaS · free audit

What we check in the free audit

  • Volume optimization finds the cheapest humans
  • Booked is not held
  • gclid dies at Lead Conversion
  • Closed-won lands outside every window

Checked against

Meetings held, SQOs and closed-won opportunities in Salesforce or HubSpot

Get my free conversion tracking audit

Free30 minutesNo obligation

B2B SaaS · when not to buy

When a SaaS team shouldn't build this

Four cases where the right answer is to wait.

  • Pre-product-market-fit with a handful of demos a month. A spreadsheet is more accurate than any attribution system at that volume.
  • Nearly all pipeline comes from outbound, partnerships or the founder's network. Instrument the small paid slice and skip the stack.
  • Your reps don't use CRM stages consistently. Fix stage hygiene first, or we'd be optimizing toward a field nobody fills in.
  • You're pure self-serve with no sales motion. Signup, activation and paid conversion all happen on your own domain, which is a smaller job.

B2B SaaS · what we deliver

What we build for a demo-led SaaS funnel

  • Click-ID persistence through the CRM object chain

    gclid, gbraid, wbraid, fbclid, li_fat_id and msclkid captured, written to the Lead, and mapped so they survive conversion to Contact, Account and Opportunity.

  • Stage-change webhooks from Salesforce or HubSpot

    Flows or workflows fire on the transitions that matter — meeting held, SQO, closed-won, closed-lost — into the server container in near real time.

  • ICP gate inside the server container

    Domain checks, free-mail exclusion, headcount and region rules run server-side, so only leads that match your ideal profile are forwarded as conversions.

  • Booked, held and no-show as separate events

    Scheduler events from Chili Piper, Calendly, Default or Qualified split from actual attendance, with no-shows suppressing the conversion rather than quietly inflating it.

  • Stage-weighted values from your own funnel math

    We calculate expected value per stage from your last four quarters of pipeline, write those into the conversion actions, and revisit them quarterly as the rates move.

  • One server feed to LinkedIn, Google, Meta and Microsoft

    A single server-side event stream fans out to LinkedIn CAPI, Google offline import, Meta CAPI and UET, deduplicated by event_id so browser and server events never double count.

Written guarantee

95%+ tracking accuracy

Measured against Meetings held, SQOs and closed-won opportunities in Salesforce or HubSpot. Miss it and we keep working at no cost.

Get my free conversion tracking audit

FAQ

B2B SaaS questions, answered

Because algorithms need volume and recency, and a B2B account rarely produces enough closed-won events inside the attribution window to train anything. Optimize on the earliest stage that correlates with revenue; report on closed-won. Two different jobs, two different events.

Free · 30 min

Make the CRM the thing your bidding follows

Free30 minutesNo obligation