Skip to content

document.deleted

POST

A document is deleted. data.object is the document as it was. Sent to the account’s webhooks, and to an OAuth app that subscribes to it while its installation grants knowledge:read.

X-Talki-Signature
required
string

t=<unix seconds>,v1=<hex HMAC-SHA256>, the HMAC computed over <t>.<raw body> with the signing secret. During a secret rotation it carries one v1 per secret: accept the request if any matches.

X-Talki-Event
required
string

The event type, as in type.

X-Talki-Delivery
required
string

The event ID, as in id.

Media typeapplication/json
object
id
required
Id

The event’s ID, evt_ and 32 hex characters. Equal to the X-Talki-Delivery header and unchanged on a redelivery: deduplicate on it.

string
type
required
string
Allowed values: document.deleted
created_at
required
Created At

When the event was written, ISO 8601 with a +00:00 offset, possibly with microseconds. Parse it as an instant.

string format: date-time
api_version
required
Api Version

The dated contract version data is shaped for: the endpoint’s version on a webhook, the app’s on an app event.

string
account_id
required
Account Id

The Talki account the event happened on.

string
livemode
required
Livemode

false for an event from a sandbox account.

boolean
origin
required
Any of:
EventOrigin
object
source
required
Source

Where the change came from: voice (the assistant, during a call), dashboard (a person in the Talki web or mobile app), api (a credential through the API) or system (a rule Talki applied on its own). New values may be added; treat one you do not recognise as unknown.

string
credential_id
required
Any of:
string
idempotency_key
required
Any of:
string
installation_id
Any of:
string
data
required

The event’s payload.

object
object
required

The Document object, as the REST API returns it.

object
id
required
Id

Document identifier.

string
location_id
required
Location Id

The location whose assistant uses it (GET /v1/locations). Never null, and it never changes.

string
title
required
Title

The note’s title, the uploaded file’s name, or the imported site’s address.

string
source
required
Source

text for a note written as text, file for an uploaded file, website for pages imported from a site.

string
Allowed values: text file website
mime_type
required
Mime Type

The content type: text/markdown for a note, the file’s type for a file, text/html for a website.

string
size_bytes
required
Size Bytes

What it counts against the account’s knowledge storage: the note’s text, the file as uploaded, or the text extracted from the site. 0 for an upload that failed holding nothing.

integer
chunk_count
required
Chunk Count

How many passages its content is searched as. While it is processing, the count of the content it still answers with; for a new document, 0 until its content has been read. A new copy may show its count from the start.

integer
file_available
required
File Available

True when the uploaded file is kept and GET /v1/documents/{document_id}/file returns it: shortly after the file is first ready, later for a copy at another location. False for a note, a website, a file whose first upload is not ready yet or failed, and a file Talki did not keep. A file being replaced keeps its previous file until the new one has been read, then has none until shortly after the new version is ready.

boolean
status
required
Status

processing while its latest content is being read and indexed, ready once the assistant uses it, failed when its latest content could not be indexed (status_error says why). A document that was ready before keeps answering with its previous content while processing and after failed.

string
Allowed values: processing ready failed
status_error
required
Any of:
string
enabled
required
Enabled

False when it is switched off: kept, but the assistant does not use it until it is switched on again.

boolean
faq
required
Faq

True for the location’s FAQ note, which the answers taught with POST /v1/unresolved_requests/{request_id}/teach are added to. A location has one at most.

boolean
copy_group_id
required
Any of:
string
created_at
required
Created At

RFC 3339 UTC.

string format: date-time
updated_at
required
Updated At

When its title or content was last written, RFC 3339 UTC: a note’s text or title when it is saved, a file’s title when it is renamed, and a replaced file’s or a website’s new content, a dropped page included, when it is ready. Sending the same text, file or pages again counts as a write; switching it on or off does not.

string format: date-time
Example
{
"id": "evt_04d8e87897db4ecab459a456ea55e754",
"type": "document.deleted",
"created_at": "2026-09-22T15:04:06.218734+00:00",
"api_version": "2026-10-01",
"account_id": "f7e39b9a-1ac8-45e4-93da-2600f17cb286",
"livemode": true,
"origin": {
"source": "dashboard",
"credential_id": null,
"idempotency_key": null
},
"data": {
"object": {
"id": "5d2e8b17-3c9a-4f60-b4e1-8a7c2d9f0e36",
"location_id": "0b7d4e19-8a2c-4f61-9d3e-5c1a7b2f8e40",
"title": "Is there parking?",
"source": "text",
"mime_type": "text/markdown",
"size_bytes": 59,
"chunk_count": 1,
"status": "ready",
"status_error": null,
"enabled": true,
"faq": false,
"file_available": false,
"copy_group_id": "c41f7a29-6e3b-4d85-9f02-1b8e5c7a3d94",
"created_at": "2026-10-28T09:12:40Z",
"updated_at": "2026-10-28T09:12:40Z"
}
}
}

Any 2xx acknowledges the event. Any other status, a redirect, or no answer within 10 seconds is a failure and is retried; 410 disables a webhook endpoint at once.