Analytics
Conversion Reporting
Report WhatsApp-attributed purchases and product views to Metaβs Conversions API via Connectly π§Ύ
POST
Conversion Reporting
When a customer clicks a Click-to-WhatsApp (CTWA) ad and later purchases on your site, Connectly can forward that conversion event to Metaβs Conversions API on your behalf β so the originating ad gets credit in Ads Manager. You send the event to Connectly; you never need to talk to Meta directly.
Endpoint
Integration journey
Get your API key
Open the Connectly inbox β Settings β General β API Key. Create a new key with all scopes unchecked (full access) or reuse an existing one if you still have the plaintext. The key is shown only once β copy and store it securely. Never expose it client-side or commit it to source control.
Enable purchase tracking in your campaign
In the Flow Builder, open the Audience step of your Click-to-WhatsApp card and tick βTrack purchases completed on my own site and report them to the Ads Managerβ. Without this, carousel CTA links will not carry the required tracking parameters.
Capture tracking parameters at landing
Once your campaign sends, Connectly auto-appends five query parameters to every CTA link:Persist all five values when the customer lands on your site β store them in the session or against the customer record β so theyβre available at checkout.
Call the conversion endpoint on purchase
When the customer completes a purchase, POST a single conversion event to Connectly with the tracking parameters captured at landing.
Request body
Top-level fields
Verbatim copy of the
cnct_tracking_id query parameter from the landing URL. Identifies the originating WhatsApp/CTWA session at the customer level.Meta CAPI event name. Accepted values:
"Purchase" or "ViewContent". Any other value returns 400 INVALID_ARGUMENT.Verbatim copy of the
sendout_id query parameter from the landing URL. Credits the conversion to the correct Connectly campaign.CTWA attribution data.
Per-event detail. For
Purchase, currency and value are required.Example request
Response
events_received: 1 confirms Connectly received and recorded the event. Connectly logs the conversion to your campaign analytics regardless of whether the Meta CAPI forward succeeds. If Meta rejects the event, you receive a non-200 response with Metaβs verbatim error message.
Error responses
| HTTP status | When |
|---|---|
400 INVALID_ARGUMENT | Missing or invalid required fields; missing currency/value for a Purchase event; unsupported event_name; or Meta rejected the forwarded event. |
401 Unauthenticated | Missing or invalid X-API-KEY. |
404 NOT_FOUND | Business not found, or the business has no WhatsApp Cloud channel configured. |
Notes
Send one event per API call. For multi-item orders, include all items in the
contents[] array within a single Purchase event β do not send multiple POST requests for the same order.cnct_tracking_id,sendout_id,ctwa_clid, andad_idmust be captured from the landing page URL at visit time and passed back when the customer converts β which may happen later in the same session.- Set
event_timeto the actual order timestamp, not the time you call the API. This matters if you flush events in batches or run backfills. order_iddoubles as Metaβs dedup key β keep it stable per order so retries are safe.
Get your API key
Open the Connectly inbox β Settings β General β API Key. Create a new key with all scopes unchecked (full access) or reuse an existing one if you still have the plaintext. The key is shown only once β copy and store it securely. Never expose it client-side or commit it to source control.
Enable purchase tracking in your campaign
In the Flow Builder, open the Audience step of your Click-to-WhatsApp card and tick βTrack purchases completed on my own site and report them to the Ads Managerβ. Without this, carousel CTA links will not carry the required tracking parameters.
Capture tracking parameters at landing
Once your campaign sends, Connectly auto-appends five query parameters to every CTA link:Persist all five values when the customer lands on your site β store them in the session or against the customer record β so theyβre available at checkout.
Call the conversion endpoint on purchase
When the customer completes a purchase, POST a single conversion event to Connectly with the tracking parameters captured at landing.
Request body
Verbatim copy of the
cnct_tracking_id query parameter from the landing URL. Identifies the originating WhatsApp/CTWA session at the customer level.Meta CAPI event name. Accepted values:
"Purchase" or "ViewContent". Any other value returns 400 INVALID_ARGUMENT.Verbatim copy of the
sendout_id query parameter from the landing URL. Credits the conversion to the correct Connectly campaign.CTWA attribution data.
Per-event detail. For
Purchase, currency and value are required.events_received: 1 confirms Connectly received and recorded the event. Connectly logs the conversion to your campaign analytics regardless of whether the Meta CAPI forward succeeds. If Meta rejects the event, you receive a non-200 response with Metaβs verbatim error message.
Error responses
| HTTP status | When |
|---|---|
400 INVALID_ARGUMENT | Missing or invalid required fields; missing currency/value for a Purchase event; unsupported event_name; or Meta rejected the forwarded event. |
401 Unauthenticated | Missing or invalid X-API-KEY. |
404 NOT_FOUND | Business not found, or the business has no WhatsApp Cloud channel configured. |
Send one event per API call. For multi-item orders, include all items in the
contents[] array within a single Purchase event β do not send multiple POST requests for the same order.cnct_tracking_id,sendout_id,ctwa_clid, andad_idmust be captured from the landing page URL at visit time and passed back when the customer converts β which may happen later in the same session.- Set
event_timeto the actual order timestamp, not the time you call the API. This matters if you flush events in batches or run backfills. order_iddoubles as Metaβs dedup key β keep it stable per order so retries are safe.
Get your API key
Open the Connectly inbox β Settings β General β API Key. Create a new key with all scopes unchecked (full access) or reuse an existing one if you still have the plaintext. The key is shown only once β copy and store it securely. Never expose it client-side or commit it to source control.
Enable purchase tracking in your campaign
In the Flow Builder, open the Audience step of your Click-to-WhatsApp card and tick βTrack purchases completed on my own site and report them to the Ads Managerβ. Without this, carousel CTA links will not carry the required tracking parameters.
Capture tracking parameters at landing
Once your campaign sends, Connectly auto-appends five query parameters to every CTA link:Persist all five values when the customer lands on your site β store them in the session or against the customer record β so theyβre available at checkout.
Call the conversion endpoint on purchase
When the customer completes a purchase, POST a single conversion event to Connectly with the tracking parameters captured at landing.
Request body
Verbatim copy of the
cnct_tracking_id query parameter from the landing URL. Identifies the originating WhatsApp/CTWA session at the customer level.Meta CAPI event name. Accepted values:
"Purchase" or "ViewContent". Any other value returns 400 INVALID_ARGUMENT.Verbatim copy of the
sendout_id query parameter from the landing URL. Credits the conversion to the correct Connectly campaign.CTWA attribution data.
Per-event detail. For
Purchase, currency and value are required.events_received: 1 confirms Connectly received and recorded the event. Connectly logs the conversion to your campaign analytics regardless of whether the Meta CAPI forward succeeds. If Meta rejects the event, you receive a non-200 response with Metaβs verbatim error message.
Error responses
| HTTP status | When |
|---|---|
400 INVALID_ARGUMENT | Missing or invalid required fields; missing currency/value for a Purchase event; unsupported event_name; or Meta rejected the forwarded event. |
401 Unauthenticated | Missing or invalid X-API-KEY. |
404 NOT_FOUND | Business not found, or the business has no WhatsApp Cloud channel configured. |
Send one event per API call. For multi-item orders, include all items in the
contents[] array within a single Purchase event β do not send multiple POST requests for the same order.cnct_tracking_id,sendout_id,ctwa_clid, andad_idmust be captured from the landing page URL at visit time and passed back when the customer converts β which may happen later in the same session.- Set
event_timeto the actual order timestamp, not the time you call the API. This matters if you flush events in batches or run backfills. order_iddoubles as Metaβs dedup key β keep it stable per order so retries are safe.
