Skip to content
API PlatformDevelopers

Webhook events · contacts

contact.import.completed/1

Contact import finished. A bulk import finished, with its totals.

Payload

We POST this JSON to your endpoint. Answer any 2xx within 30 seconds. The same id arrives again on a retry — skip ones you have handled.

Payload fields
FieldTypeWhat it is
idrequiredstringEvent id. The same on every retry: use it to skip duplicates.pattern ^evt_[0-9A-HJKMNP-TV-Z]{26}$
typerequiredstringEvent type.always contact.import.completed
versionrequiredstringPayload version.always 1
api_versionrequiredstringThe endpoint's API version.
occurred_atrequiredstringWhen it happened.date-time
company_idrequiredintegerYour workspace id.
datarequiredobject
batch_idstring or nullImport id.
file_namestring or nullFile name, for file imports.
totalsrequiredobject
createdrequiredintegerCreated.
failedrequiredintegerFailed.
processedrequiredintegerProcessed.
updatedrequiredintegerUpdated.
started_atstring or nullISO 8601.
finished_atstring or nullISO 8601.

Example

{
  "id": "evt_01J8Z7BZQ4F6G8J2K5N7Q9S1VC",
  "type": "contact.import.completed",
  "version": "1",
  "api_version": "2026-10-01",
  "occurred_at": "2026-09-24T09:20:00Z",
  "company_id": 1001,
  "data": {
    "batch_id": "imp_2211",
    "file_name": null,
    "totals": {
      "created": 820,
      "failed": 3,
      "processed": 1000,
      "updated": 177
    },
    "started_at": "2026-09-23T01:00:00Z",
    "finished_at": "2026-09-23T01:01:12Z"
  }
}

Headers

  • Webhook-Signature: t=…,v1=… — how to check it
  • Webhook-Id (also Webhook-Event-Id): the event id, the same on every retry — skip ones you have handled
  • Webhook-Delivery-Id: this delivery attempt, new on every try

API calls that can cause it