Events · Sources and import
import.document_failed
Import document failed
A document of a custom source was not imported or not indexed (data.reason is a neutral code).
- Object type
- source
- Delivered to
- Endpoints with the admin role
Payload
Object: EventImportDocumentFailed
idstringrequiredEvent ID (
evt_…), also sent as thewebhook-idheader. Use it to drop duplicate deliveries.typestringrequiredAllowed values:
import.document_failedcreated_atstring (date-time)requiredWhen the change happened (UTC).
org_idintegerrequiredapi_versionstringrequiredContract version of the
dataschema.sequenceintegerDelivery sequence number within the endpoint (absent for a test event).
payloadstringrequiredthinmeans nodata: read the object through the API.Allowed values:
fullthindataobjectFields
documentobjectrequiredThe custom source document; the push API document result reports the same outcome.
Fields
external_idstring | nullrequiredtitlestring | nullcard_idstring | nullrequired
run_idintegerjob_idinteger | nullThe indexing or export job.
reasonstringrequiredNeutral reason code (extensible enumeration: treat an unknown code as a generic failure). Values are document outcome codes:
content_invalid,file_rejected,too_large,limit_reached,index_failed.
testbooleanrequiredA test event sent by
POST /v1/webhooks/{webhook_id}/test.
Example delivery
{
"id": "evt_0123456789abcdef0123456789abcdef",
"type": "import.document_failed",
"created_at": "2026-10-24T10:00:03Z",
"org_id": 1,
"api_version": "1.62.0",
"sequence": 1042,
"object": {
"type": "source",
"id": "5"
},
"payload": "full",
"data": {
"source": {
"id": 5,
"name": "Help center",
"kind": "custom",
"collection_id": 3
},
"document": {
"external_id": "kb-article-118",
"title": "Shipping rates",
"card_id": null
},
"run_id": 902,
"reason": "content_invalid"
},
"test": false
}Receiving events
Each delivery is a POST request with this JSON body to your endpoint. Verify the webhook-signature header (Standard Webhooks) before you trust the body, answer with a 2xx status within a few seconds, and do the work afterwards. Deliveries to one endpoint keep the order of events; a failed delivery is retried with growing pauses.
New event types and new fields can appear at any time: skip the types and fields you do not know.