Event
core.document.upload_completed
This event fires when a document’s asynchronous processing finishes without issues. The document is fully indexed, searchable, and ready to be used in workflows.
Payload Example
{
"event": "core.document.upload_completed",
"event_id": "evt_01HXYZ2233445566",
"organization_id": "org_abc123",
"timestamp": "2025-06-01T14:34:10Z",
"data": {
"document_processing_id": 12345,
"file_id": "file_abc123",
"file_name": "master_services_agreement.pdf",
"file_extension": "pdf",
"uploaded_by": "john.doe@example.com",
"processing_duration_ms": 8320,
"attributes": [
{
"name": "contract_type",
"data_type": "text",
"value": "Master Services Agreement"
},
{
"name": "effective_date",
"data_type": "date",
"value": "2025-01-01"
}
]
}
}
Payload Fields
Envelope
| Field | Type | Description |
|---|
event | string | Always core.document.upload_completed |
event_id | string | Unique delivery ID — use to deduplicate retries |
organization_id | string | ID of the organization that owns the document |
timestamp | string | ISO 8601 UTC timestamp of the event |
data | object | Event-specific payload (see below) |
Data Object
| Field | Type | Description |
|---|
document_processing_id | integer | ID of the async processing job |
file_id | string | Permanent unique identifier for the document |
file_name | string | Original file name |
file_extension | string | File extension (e.g., pdf, docx) |
uploaded_by | string | Email of the user who triggered the upload |
processing_duration_ms | integer | Time taken to process the document, in milliseconds |
attributes | array | Final metadata attributes on the document |
Notes
Use this event to trigger downstream actions — such as starting a workflow or updating a record in your system — only after a document is fully processed and ready.