Case.dev exposes the following customer-facing events through webhook endpoints. This page is generated from the router event catalog and typed payload contracts so it stays aligned with the API.Documentation Index
Fetch the complete documentation index at: https://docs.case.dev/llms.txt
Use this file to discover all available pages before exploring further.
Stable events keep their event name and payload shape frozen except for additive fields. Beta
events may change during their early access window.
apps/router/server/utils/webhooks/catalog.ts.
| Event | Stability | Scope | Resource | Description |
|---|---|---|---|---|
vault.upload.initiated | stable | vault | vault | A vault object upload was initiated. |
vault.upload.completed | stable | vault | vault | A vault object upload finished successfully. |
vault.upload.failed | stable | vault | vault | A vault object upload failed. |
vault.object.append.started | stable | vault | vault | Vault object append started. |
vault.object.append.completed | stable | vault | vault | Vault object append finished successfully. |
vault.object.append.failed | stable | vault | vault | Vault object append failed. |
vault.ingest.started | stable | vault | vault | Vault object ingest started. |
vault.ingest.completed | stable | vault | vault | Vault object ingest finished successfully. |
vault.ingest.failed | stable | vault | vault | Vault object ingest failed. |
ocr.job.created | stable | vision_ocr | - | An OCR job was enqueued. |
ocr.job.completed | stable | vision_ocr | - | An OCR job finished successfully. |
ocr.job.failed | stable | vision_ocr | - | An OCR job failed. |
voice.transcription.created | stable | transcription | - | A transcription job was created. |
voice.transcription.reused | stable | transcription | - | A completed transcription job was reused from cache. |
voice.transcription.completed | stable | transcription | - | A transcription job finished successfully. |
voice.transcription.failed | stable | transcription | - | A transcription job failed. |
voice.transcription.deleted | stable | transcription | - | A transcription job was deleted. |
agent.created | beta | agent | - | An agent definition was created. |
agent.updated | beta | agent | - | An agent definition was updated. |
agent.deleted | beta | agent | - | An agent definition was deleted. |
agent.run.created | beta | agent | - | An agent run was created. |
agent.run.started | beta | agent | - | An agent run began executing. |
agent.run.completed | beta | agent | - | An agent run finished successfully. |
agent.run.failed | beta | agent | - | An agent run failed. |
agent.run.cancelled | beta | agent | - | An agent run was cancelled. |
agent.runtime.started | beta | agent | - | An agent chat runtime sandbox was started. |
agent.runtime.reused | beta | agent | - | An existing agent chat runtime sandbox was reused. |
agent.runtime.failed | beta | agent | - | An agent chat runtime sandbox failed to start or resume. |
agent.scope.activated | beta | agent | - | A chat session scope was activated for the requested matter or vault authority. |
agent.scope.activation_failed | beta | agent | - | A chat session scope failed to activate. |
agent.scope.reused | beta | agent | - | An existing chat session scope was reused. |
agent.worker.ready | beta | agent | - | The agent worker inside a chat runtime is ready to accept work. |
agent.worker.failed | beta | agent | - | The agent worker inside a chat runtime failed to become available. |
agent.chat.session.created | beta | agent | - | An agent chat session was created. |
agent.chat.session.resumed | beta | agent | - | An agent chat session was resumed. |
agent.chat.session.aborted | beta | agent | - | An active agent chat generation was aborted. |
agent.chat.turn.accepted | beta | agent | - | An agent chat turn was accepted for processing. |
agent.chat.turn.started | beta | agent | - | An agent chat turn began executing. |
agent.chat.turn.completed | beta | agent | - | An agent chat turn completed successfully. |
agent.chat.turn.failed | beta | agent | - | An agent chat turn failed. |
agent.chat.turn.conflict | beta | agent | - | An agent chat turn was rejected because another turn was active. |
matter.created | beta | legal | matter | A matter was created. |
matter.updated | beta | legal | matter | A matter was updated. |
work_item.execution.completed | beta | legal | matter | A matter work item finished execution. |
work_item.execution.failed | beta | legal | matter | A matter work item execution failed. |
billing.charge.succeeded | stable | webhooks | - | A billing charge succeeded. |
billing.charge.failed | stable | webhooks | - | A billing charge failed. |
balance.changed | stable | webhooks | - | The organization credit balance changed. |
compute.run.completed | stable | compute | - | A compute function run completed successfully. |
compute.run.failed | stable | compute | - | A compute function run failed. |
deployment.succeeded | stable | webhooks | - | A deployment succeeded. |
deployment.failed | stable | webhooks | - | A deployment failed. |
webhook.endpoint.auto_disabled | stable | webhooks | - | A webhook endpoint was automatically disabled after too many consecutive delivery failures. Subscribe to this to be notified when a downstream customer endpoint starts failing. |
vault.upload.initiated
A vault object upload was initiated.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
filename | string | Yes | Original filename provided by the uploader. |
mimeType | string | No | MIME type of the uploaded file, if detected. |
Example
vault.upload.completed
A vault object upload finished successfully.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
filename | string | Yes | - |
mimeType | string | Yes | - |
sizeBytes | number | Yes | Size of the uploaded file in bytes. |
Example
vault.upload.failed
A vault object upload failed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
error | string | Yes | Human-readable error description. |
Example
vault.object.append.started
Vault object append started.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
appendObjectIds | string[] | Yes | Vault object IDs whose pages will be appended onto the target object, in order. |
Example
vault.object.append.completed
Vault object append finished successfully.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
appendObjectIds | string[] | Yes | Vault object IDs whose pages will be appended onto the target object, in order. |
sizeBytes | number | Yes | Size of the updated target object in bytes. |
pageCount | number | Yes | Page count of the updated target object. |
Example
vault.object.append.failed
Vault object append failed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
appendObjectIds | string[] | Yes | Vault object IDs whose pages will be appended onto the target object, in order. |
error | string | Yes | Human-readable error description. |
Example
vault.ingest.started
Vault object ingest started.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
stage | string | No | Pipeline stage that began (e.g. ‘extraction’, ‘chunking’). |
Example
vault.ingest.completed
Vault object ingest finished successfully.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
durationMs | number | Yes | Total ingest duration in milliseconds. |
chunkCount | number | No | Number of chunks produced. |
Example
vault.ingest.failed
Vault object ingest failed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vault |
| Resource scope | vault |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
vaultId | string | Yes | The vault this event pertains to. |
objectId | string | Yes | The object within the vault. |
error | string | Yes | Human-readable error description. |
stage | string | No | Pipeline stage that failed, if applicable. |
Example
ocr.job.created
An OCR job was enqueued.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vision_ocr |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | OCR job identifier. |
objectId | string | Yes | The vault object being processed. |
vaultId | string | Yes | - |
pageCount | number | No | Number of pages queued for OCR. |
Example
ocr.job.completed
An OCR job finished successfully.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vision_ocr |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | OCR job identifier. |
objectId | string | Yes | The vault object being processed. |
vaultId | string | Yes | - |
durationMs | number | Yes | Processing duration in milliseconds. |
pageCount | number | Yes | Number of pages processed. |
Example
ocr.job.failed
An OCR job failed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | vision_ocr |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | OCR job identifier. |
objectId | string | Yes | The vault object being processed. |
vaultId | string | Yes | - |
error | string | Yes | - |
Example
voice.transcription.created
A transcription job was created.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | transcription |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | - |
vaultId | string | No | Vault that owns the source object, when the transcription came from a vault workflow. |
assemblyaiId | string | No | AssemblyAI transcript identifier. |
objectId | string | No | Source vault object for vault-backed jobs. |
format | string | No | Requested transcript output format. |
mode | 'vault' | 'direct' | Yes | Transcription mode used by the request. |
status | string | No | Provider status returned at job creation time. |
speakerLabels | boolean | No | - |
autoHighlights | boolean | No | - |
contentSafety | boolean | No | - |
languageDetection | boolean | No | - |
Example
voice.transcription.reused
A completed transcription job was reused from cache.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | transcription |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | - |
vaultId | string | No | Vault that owns the source object, when the transcription came from a vault workflow. |
assemblyaiId | string | No | AssemblyAI transcript identifier. |
objectId | string | Yes | - |
format | string | No | - |
mode | 'vault' | Yes | - |
from_cache | true | Yes | - |
options_hash | string | No | - |
Example
voice.transcription.completed
A transcription job finished successfully.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | transcription |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | - |
vaultId | string | No | Vault that owns the source object, when the transcription came from a vault workflow. |
assemblyaiId | string | No | AssemblyAI transcript identifier. |
sourceObjectId | string | Yes | - |
resultObjectId | string | Yes | - |
audioDurationSeconds | number | No | - |
wordCount | number | Yes | - |
confidence | number | No | - |
textLength | number | Yes | - |
Example
voice.transcription.failed
A transcription job failed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | transcription |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | - |
vaultId | string | No | Vault that owns the source object, when the transcription came from a vault workflow. |
assemblyaiId | string | No | AssemblyAI transcript identifier. |
sourceObjectId | string | No | - |
error | string | Yes | - |
Example
voice.transcription.deleted
A transcription job was deleted.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | transcription |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
jobId | string | Yes | - |
vaultId | string | No | Vault that owns the source object, when the transcription came from a vault workflow. |
assemblyaiId | string | No | AssemblyAI transcript identifier. |
transcriptId | string | Yes | - |
mode | 'vault' | 'direct' | Yes | - |
providerDeleted | boolean | Yes | - |
providerAlreadyDeleted | boolean | Yes | - |
providerDeleteFailed | boolean | Yes | - |
providerErrorStatusCode | number | No | - |
resultObjectDeleted | boolean | Yes | - |
localRecordDeleted | boolean | Yes | - |
Example
agent.created
An agent definition was created.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | - |
model | string | No | - |
adhoc | boolean | No | - |
version | string | No | - |
Example
agent.updated
An agent definition was updated.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
fields | string[] | Yes | - |
Example
agent.deleted
An agent definition was deleted.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
| (none) | - | - | Empty data object. |
Example
agent.run.created
An agent run was created.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
runId | string | Yes | - |
agentId | string | No | The skill or agent definition that was invoked. |
source | string | No | API surface or workflow source that emitted the event. |
version | string | No | - |
input | object | No | Input prompt or parameters, if safe to expose. |
promptLength | number | No | - |
Example
agent.run.started
An agent run began executing.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
runId | string | Yes | - |
agentId | string | No | The skill or agent definition that was invoked. |
source | string | No | API surface or workflow source that emitted the event. |
version | string | No | - |
workflowId | string | No | - |
adhoc | boolean | No | - |
Example
agent.run.completed
An agent run finished successfully.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
runId | string | Yes | - |
agentId | string | No | The skill or agent definition that was invoked. |
source | string | No | API surface or workflow source that emitted the event. |
version | string | No | - |
durationMs | number | Yes | - |
usage | {inputTokens: number; outputTokens: number} | No | Token usage summary. |
Example
agent.run.failed
An agent run failed.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
runId | string | Yes | - |
agentId | string | No | The skill or agent definition that was invoked. |
source | string | No | API surface or workflow source that emitted the event. |
version | string | No | - |
adhoc | boolean | No | - |
runtime | string | No | - |
error | string | Yes | - |
Example
agent.run.cancelled
An agent run was cancelled.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
runId | string | Yes | - |
agentId | string | No | The skill or agent definition that was invoked. |
source | string | No | API surface or workflow source that emitted the event. |
version | string | No | - |
reason | string | No | Cancellation reason, if one was provided. |
Example
agent.runtime.started
An agent chat runtime sandbox was started.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
error | string | No | - |
Example
agent.runtime.reused
An existing agent chat runtime sandbox was reused.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
error | string | No | - |
Example
agent.runtime.failed
An agent chat runtime sandbox failed to start or resume.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
error | string | No | - |
Example
agent.scope.activated
A chat session scope was activated for the requested matter or vault authority.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
vaultIds | string[] | null | No | - |
matterIds | string[] | null | No | - |
error | string | No | - |
Example
agent.scope.activation_failed
A chat session scope failed to activate.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
vaultIds | string[] | null | No | - |
matterIds | string[] | null | No | - |
error | string | No | - |
Example
agent.scope.reused
An existing chat session scope was reused.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
vaultIds | string[] | null | No | - |
matterIds | string[] | null | No | - |
error | string | No | - |
Example
agent.worker.ready
The agent worker inside a chat runtime is ready to accept work.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
error | string | No | - |
Example
agent.worker.failed
The agent worker inside a chat runtime failed to become available.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
error | string | No | - |
Example
agent.chat.session.created
An agent chat session was created.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
title | string | null | No | - |
model | string | null | No | - |
reason | string | null | No | - |
Example
agent.chat.session.resumed
An agent chat session was resumed.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
title | string | null | No | - |
model | string | null | No | - |
reason | string | null | No | - |
Example
agent.chat.session.aborted
An active agent chat generation was aborted.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
title | string | null | No | - |
model | string | null | No | - |
reason | string | null | No | - |
Example
agent.chat.turn.accepted
An agent chat turn was accepted for processing.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
turnId | string | Yes | - |
messageId | string | null | No | - |
finishReason | string | null | No | - |
error | string | No | - |
Example
agent.chat.turn.started
An agent chat turn began executing.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
turnId | string | Yes | - |
messageId | string | null | No | - |
finishReason | string | null | No | - |
error | string | No | - |
Example
agent.chat.turn.completed
An agent chat turn completed successfully.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
turnId | string | Yes | - |
messageId | string | null | No | - |
finishReason | string | null | No | - |
error | string | No | - |
Example
agent.chat.turn.failed
An agent chat turn failed.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
turnId | string | Yes | - |
messageId | string | null | No | - |
finishReason | string | null | No | - |
error | string | No | - |
Example
agent.chat.turn.conflict
An agent chat turn was rejected because another turn was active.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | agent |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chatId | string | Yes | - |
runtimeProvider | string | No | - |
runtimeId | string | null | No | - |
runtimeState | string | null | No | - |
sessionId | string | null | No | - |
turnId | string | Yes | - |
messageId | string | null | No | - |
finishReason | string | null | No | - |
error | string | No | - |
Example
matter.created
A matter was created.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | legal |
| Resource scope | matter |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
matterId | string | Yes | - |
title | string | No | Human-readable matter title. |
status | string | Yes | Matter status at creation time. |
Example
matter.updated
A matter was updated.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | legal |
| Resource scope | matter |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
matterId | string | Yes | - |
object | object | Yes | Current state of the matter. |
previous_attributes | object | No | Only-changed fields with their previous values. Present when the emitter supports change tracking. |
Example
work_item.execution.completed
A matter work item finished execution.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | legal |
| Resource scope | matter |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
matterId | string | Yes | - |
workItemId | string | Yes | - |
durationMs | number | Yes | - |
Example
work_item.execution.failed
A matter work item execution failed.| Property | Value |
|---|---|
| Stability | beta |
| Required scope | legal |
| Resource scope | matter |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
matterId | string | Yes | - |
workItemId | string | Yes | - |
error | string | Yes | - |
Example
billing.charge.succeeded
A billing charge succeeded.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | webhooks |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chargeId | string | Yes | Stripe charge or invoice ID. |
amountCents | number | Yes | Amount in cents. |
currency | string | Yes | ISO 4217 currency code. |
Example
billing.charge.failed
A billing charge failed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | webhooks |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
chargeId | string | Yes | - |
amountCents | number | Yes | - |
currency | string | Yes | - |
error | string | Yes | - |
Example
balance.changed
The organization credit balance changed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | webhooks |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
balanceCents | number | Yes | New credit balance in cents. |
deltaCents | number | Yes | Change amount (positive = credit added, negative = deducted). |
reason | string | No | Reason for the change (e.g. ‘charge’, ‘top_up’, ‘promo’). |
Example
compute.run.completed
A compute function run completed successfully.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | compute |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
runId | string | Yes | - |
functionId | string | Yes | - |
durationMs | number | Yes | - |
exitCode | number | No | Exit code of the compute function. |
Example
compute.run.failed
A compute function run failed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | compute |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
runId | string | Yes | - |
functionId | string | Yes | - |
error | string | Yes | - |
exitCode | number | No | - |
Example
deployment.succeeded
A deployment succeeded.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | webhooks |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
deploymentId | string | Yes | - |
appName | string | No | Application or project name. |
url | string | No | URL of the deployed application. |
durationMs | number | No | - |
Example
deployment.failed
A deployment failed.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | webhooks |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
deploymentId | string | Yes | - |
appName | string | No | Application or project name. |
error | string | Yes | - |
Example
webhook.endpoint.auto_disabled
A webhook endpoint was automatically disabled after too many consecutive delivery failures. Subscribe to this to be notified when a downstream customer endpoint starts failing.| Property | Value |
|---|---|
| Stability | stable |
| Required scope | webhooks |
| Resource scope | None |
Payload
| Field | Type | Required | Description |
|---|---|---|---|
endpointId | string | Yes | The endpoint that was disabled. |
url | string | Yes | URL of the disabled endpoint. |
consecutiveFailures | number | Yes | Number of consecutive failures that triggered the disable. |
lastFailureAt | string | Yes | Timestamp of the last failed delivery attempt. |

