Webhook Events

Conversion received event

Zernio stored an event: one sent to POST /v1/events or POST /v1/ads/conversions, or one a connected source sent for you (a lead form lead, a Shopify or WooCommerce order, a HubSpot deal). It fires again when a newer version of the same event is stored, such as an order that changed.

conversion has the fields of GET /v1/events/{eventId}, plus source, campaign (the campaign the event counts for, or null) and campaignMatch (why there is none). Personal data is never sent: hasEmail, hasPhone and hasExternalId only say what the event carried.

Deduplication

The event id follows the stored event and its version, so a resend of the same version carries the same id. Deduplicate on it.

Not sent for

Test events (they are never stored), corrections made with PATCH or DELETE /v1/events/{eventId}, and the hourly re-match that ties an earlier event to its campaign.

postWebhookconversion.received

Payload

idstring required

Stable webhook event ID: the dedupe key, also sent as the X-Zernio-Event-Id header. It follows the stored event and its version.

testboolean

Always true when present: only a sample sent by POST /v1/webhooks/test with an event carries it. Real deliveries never do.

event'conversion.received' required
profileIdstring required

The profile the event belongs to.

timestampstring date-time required

UTC time at which Zernio generated this event.

Example payload

{
  "profiles": [
    {
      "externalId": "tenant_42"
    }
  ]
}

Response

Webhook received successfully

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.