ConnectWiz + Meta Conversions API

Live integration

The ad that started the chat learns how it ended

Messaging ads optimize blind unless someone tells Meta what converted. ConnectWiz reports won deals as Purchase events — with real value and proper per-channel identity — into your own Events Manager dataset, behind four gates, with every refusal logged.

Your dataset, your token Four gates — consent first Refusals logged with reasons
Meta Conversions API × ConnectWiz
No match? Dropped, not guessed
Gate: consent permits ad use
Identity matched per channel
Purchase + value → your dataset
13
Standard event names — a fixed vocabulary, because a dataset’s name list is permanent
4
Gates before any event leaves — enabled, consent, well-formed, not yet sent
100%
Of refusals logged with a named reason — "we didn’t send" is a visible fact
24 h
Local dedup guard — deliberately shorter than Meta’s own 48-hour window

Ads

What it does — precisely

Deals become signals

Winning a deal reports a Purchase with its real value; moving into a mapped stage fires the event you chose — from any path: screen, automation or import.

Identity done right

WhatsApp uses the click ID, Messenger the page-scoped ID, Instagram its own — each channel’s proper matching key, hashed as Meta specifies.

Four gates, one door

Tenant enabled? Consent permits ad targeting? Event well-formed and matchable? Not already sent? Every refusal is logged with its reason — auditable, not mysterious.

A health panel

See what was sent and what was refused, and why — conversion plumbing you can actually inspect.

Meta’s own events, echoed right

Purchases Meta detects in-thread are echoed back with the value decoded from Meta’s own scale and the event ID derived from the message — so a webhook retry collapses instead of counting a second sale. An unknown amount sends no value at all: a fake zero would tell Meta the conversion was worthless.

Well-formedness, named

Events are validated before sending — name length, future or stale timestamps, parameter budget, matchability — and each violation is a named refusal in the log, not a mystery.

Under the hood

Conversion plumbing, done the careful way

Why the event names are fixed

A Meta dataset accepts 1,000 distinct event names permanently — they can’t be deleted, and past the ceiling nothing new is recorded at all. So event names come from a fixed vocabulary and variation lives in parameters, where it belongs.

Deterministic event IDs

Each event’s ID is derived from what it describes, not from randomness — so a retry produces the same ID and deduplicates, instead of counting the same sale twice. Randomness would defeat the whole mechanism.

Marked sent only after Meta accepts

The local dedup record is written after Meta’s acceptance, never before — a network failure retries; it can’t suppress itself into a lost conversion.

Normalization that matches Meta exactly

Emails are lowercased but Gmail dots and +tags are kept — because that’s what Meta does. Phones must resolve to 8–15 digits with a country; a countryless local number is dropped, not guessed. A dropped key costs one match; a wrong key costs a wrong person.

Per-channel identity, precisely

WhatsApp events carry the click ID plus phone — the click ID is legitimately absent on some placements, and the phone survives that. Messenger identity counts only as page + page-scoped user together; Instagram uses its own scoped ID; lead events carry the platform’s own lead ID, restricted to Meta-source leads.

A health panel that owns its arithmetic

Freshness, event frequency, strong-match-key coverage, purchase values and every refusal reason — measured over a 28-day window and labeled as our measurements, because presenting our arithmetic as Meta’s score would invent an authority we don’t have.

Setup

How it connects

01

Paste your dataset

Your Events Manager dataset ID and token — encrypted, yours, revocable.

02

Map your stages

Choose which pipeline stages fire which conversion events.

03

Win deals

The reporting happens on its own — gated, deduplicated, logged.

Better together

What it composes with

CRM pipelines

Won deals and mapped pipeline stages are what fire events — the funnel you already run is the signal source.

Click-to-message ads

Campaigns landing in WhatsApp, Messenger or Instagram finally learn which conversations became revenue.

Lead ads

Meta lead-form submissions already land in the CRM — this integration closes their loop by reporting lead quality back to the ad account.

Security & guarantees

The boring guarantees

Your dataset, your token

Events go to the dataset you paste from your own Events Manager — the access token is encrypted at rest and never rendered back. The data relationship is between your business and Meta.

Consent is a gate, not a setting

An event leaves only when the contact’s consent permits ad targeting — a pending double opt-in doesn’t count, and the refusal is logged by name.

Test mode is visible

A test event code left behind would silently stop real conversions counting — so test mode is surfaced as its own flag in the panel, impossible to forget invisibly.

The double-count question, asked

If you already run a CAPI or Signals Gateway, sending from here too would double-count — dedup can’t save two different IDs for one sale. The panel asks; unanswered means it warns rather than assumes.

The honest fine print

Boundaries, stated

No guessed identities

A phone number without a country code is dropped, not guessed — a wrong match spends someone else’s privacy. And a deal without a value sends nothing, never a fake zero.

Off is a valid state

The whole integration ships off; off is not a degraded mode. Your ad data leaves only when you decide it should.

Meta Conversions API FAQ

Straight answers

More in the full FAQ, or ask us directly.

Purchase events for won deals (with real value and per-channel identity), the conversion events you map to pipeline stages, and lead-quality signals from your CRM funnel — all into your own dataset, deduplicated against Meta’s own detection.

It’s one of the four gates: an event only leaves if the contact’s consent permits ad use. Refused events are logged with the reason, so "we didn’t send" is a visible fact.

No — you paste your own Events Manager dataset ID and access token. The data relationship is between your business and Meta; we’re the plumbing with gates.

Emails, phones, names, city/state/zip, birth dates and external IDs are SHA-256 hashed after Meta-exact normalization. Click IDs, browser IDs, page-scoped IDs and lead IDs are sent as-is — they’re already opaque, and Meta looks them up literally; hashing them would destroy them.

It would — which is why the integration asks. Two senders with different event IDs are, to Meta, two sales. If you acknowledge another sender, you choose which one owns which events; unanswered, the panel warns instead of assuming.

Connected honestly beats connected loudly.

Every integration here is described by what it really does — direction, ownership and limits included.