Events & webhooks
Every event SalesOS delivers, the versioned envelope, signatures, retries, the delivery log and replay.
A webhook subscribes an HTTPS endpoint to one or more event types. When one of
them happens in your organization, SalesOS sends a signed POST with a JSON
body. Manage webhooks under Settings → API & Webhooks → Webhooks, or with
/v1/webhooks (API keys need the WEBHOOKS scope).
The catalog below is also served, unauthenticated, at
GET /v1/events/catalog: every
type with its version, description, JSON Schema (draft-07) for data, and a
sample. GET /v1/events/catalog/{type} returns one entry.
Webhooks can also subscribe to your organization's own
custom events (custom.<apiName>), and an
endpoint behind a login can receive deliveries through a
named credential: set namedCredentialId on
the webhook and its URL must start with the credential's base URL; deliveries
then carry the credential's authentication on top of the signature.
GET /v1/events/org-catalog (authenticated; keys need READ_EVENTS) returns
this catalog plus the organization's custom types.
The envelope
New webhooks receive this body (payloadVersion: 2):
{
"id": "evt_3f9c2a7d1b8e4c60a5d2f1e0b9c8a7d6",
"type": "opportunity.stage_changed",
"version": 1,
"occurredAt": "2026-10-01T12:00:00.000Z",
"organizationId": "org_4k2j9x",
"data": {
"object": "opportunity",
"id": "cmopp01",
"record": {
"id": "cmopp01",
"name": "Northwind — Fleet rollout",
"amount": 48000,
"currency": "USD",
"stage": "NEGOTIATION_REVIEW",
"probability": 80,
"closeDate": "2026-10-31T00:00:00.000Z",
"accountId": "cmaccount01",
"isClosed": false,
"isWon": false,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"previousStage": "PROPOSAL_PRICE_QUOTE",
"stage": "NEGOTIATION_REVIEW"
}
}
| Field | Meaning |
|---|---|
id | Unique event id (evt_…). Retries and replays reuse it, so dedupe on it. |
type | The event type, e.g. opportunity.stage_changed. |
version | Schema version of data for this type. The catalog writes it as opportunity.stage_changed@1. |
occurredAt | When the event happened (ISO 8601, UTC). |
organizationId | Your organization. |
data | The payload, shaped by the type's schema. |
test | true only on "Send test event" deliveries. |
Record events carry data.object, data.id, data.record (every column of
the record plus customFields, keyed by custom field API name), previous
and changedFields on updates, and actorId (the user who caused it, or
null for system events). Relations are never embedded: follow the …Id
fields through the REST API.
Versioning
A change that could break a receiver (removing or retyping a field) ships as a
new version of that type; adding an optional field does not. Check version
before you parse data.
Legacy payloads
Webhooks created before the envelope keep the body they have always received:
{ "event", "eventId", "timestamp", "data" }, where data is
{ id, entityType, record, previous, changedFields, userId }. Switch one to the
envelope with PATCH /v1/webhooks/{id} and {"payloadVersion": 2} (or back
with 1). Every catalog event is delivered in both formats.
Verifying signatures
Each delivery has an X-SalesOS-Signature header:
v1 is the hex HMAC-SHA256 of "<t>.<raw request body>" keyed with your
webhook's signing secret. Reject the request when the signature doesn't match
or t is more than 300 seconds from your clock — that stops a captured
request from being replayed later. Compute the HMAC over the raw bytes you
received, before any JSON parsing. A header may carry more than one v1=;
accept the request if any of them matches.
The older X-Webhook-Signature header (hex HMAC-SHA256 of the body alone,
with X-Webhook-Timestamp in milliseconds) is still sent for existing
receivers. It has no replay protection; prefer X-SalesOS-Signature.
Other headers: X-SalesOS-Event, X-SalesOS-Event-Id,
X-SalesOS-Event-Version, X-SalesOS-Delivery (this attempt) and
X-SalesOS-Attempt, plus any custom headers you configured.
Delivery, retries and auto-disable
- Respond with any
2xxwithin 10 seconds. Anything else — another status, a timeout, a redirect — is a failed attempt. Do slow work after acknowledging. - Failed attempts are retried with exponential backoff and jitter, starting at
the webhook's
retryDelaySeconds(default 60s, doubling each time, capped at 6 hours).retryAttempts(default 3, max 10) is the number of retries after the first attempt. ARetry-Afterheader on a429/503is honoured when it asks for longer. - After 10 events in a row fail every attempt, the webhook is turned off and its owner is notified. Fix the endpoint and turn it back on; that resets the count.
- Deliveries are at-least-once and not ordered. Use
idto dedupe andoccurredAtto order.
Delivery log, replay and test events
Every attempt is kept for 30 days: request headers (including the signature; custom header values are redacted), the body, the response status and the first 2 KB of the response body, latency and attempt number. Open it from the webhook's Deliveries button, or:
A replay re-sends the stored body unchanged — same event id — with a
fresh signature, so a receiver that dedupes treats it as the event it may
already have. Send test event delivers the catalog sample for any type,
with "test": true. Neither is retried or counts toward auto-disable, and both
work on a webhook that is turned off.
Listening without a public endpoint
For local development, stream your organization's events over Server-Sent
Events instead of exposing a URL. salesos listen does this for you and
forwards each event to a local port, signed; see
CLI → Listen to live events.
- The stream sends a
readyframe, then oneeventframe per event whosedatais exactly the envelope body a webhook would receive, plusdropped(events skipped because the reader fell behind) andendframes.eventstakes up to 64 types, with<object>.*wildcards such asopportunity.*(custom.*for every custom event); omit it for everything. - Listening is equivalent to owning a webhook for the whole organization: org
owners and admins only; API keys and OAuth tokens need
WRITE_WEBHOOKS. - Up to 5 streams per organization; each ends after 15 minutes (reconnect). Events that occur while you are disconnected are not replayed.
triggersends a type's catalog sample, flagged"test": true, to your listen sessions only — never to real webhooks.
Catalog
Leads
lead.createdv1
A lead was created (UI, API, import, web form or automation).
Sample data
{
"object": "lead",
"id": "cmlead01",
"record": {
"id": "cmlead01",
"firstName": "Priya",
"lastName": "Shah",
"email": "[email protected]",
"phone": null,
"company": "Northwind",
"title": "VP Operations",
"status": "NEW",
"leadSource": "WEB",
"rating": "WARM",
"leadScore": 72,
"convertedAccountId": null,
"convertedContactId": null,
"convertedOpportunityId": null,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"lead_region__c": "EMEA"
}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "lead"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"company": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"leadSource": {
"type": "string"
},
"rating": {
"type": [
"string",
"null"
]
},
"leadScore": {
"type": [
"integer",
"null"
]
},
"convertedAccountId": {
"type": [
"string",
"null"
]
},
"convertedContactId": {
"type": [
"string",
"null"
]
},
"convertedOpportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}lead.updatedv1
A lead was edited. `previous` holds the record before the change and `changedFields` lists what changed.
Sample data
{
"object": "lead",
"id": "cmlead01",
"record": {
"id": "cmlead01",
"firstName": "Priya",
"lastName": "Shah",
"email": "[email protected]",
"phone": null,
"company": "Northwind",
"title": "VP Operations",
"status": "NEW",
"leadSource": "WEB",
"rating": "WARM",
"leadScore": 72,
"convertedAccountId": null,
"convertedContactId": null,
"convertedOpportunityId": null,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"lead_region__c": "EMEA"
}
},
"previous": {
"id": "cmlead01",
"firstName": "Priya",
"lastName": "Shah",
"email": "[email protected]",
"phone": null,
"company": "Northwind",
"title": "VP Operations",
"status": "CONTACTED",
"leadSource": "WEB",
"rating": "WARM",
"leadScore": 72,
"convertedAccountId": null,
"convertedContactId": null,
"convertedOpportunityId": null,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"lead_region__c": "EMEA"
}
},
"changedFields": [
"status"
],
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "lead"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"company": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"leadSource": {
"type": "string"
},
"rating": {
"type": [
"string",
"null"
]
},
"leadScore": {
"type": [
"integer",
"null"
]
},
"convertedAccountId": {
"type": [
"string",
"null"
]
},
"convertedContactId": {
"type": [
"string",
"null"
]
},
"convertedOpportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}lead.deletedv1
A lead was deleted. `record` is its last state.
Sample data
{
"object": "lead",
"id": "cmlead01",
"record": {
"id": "cmlead01",
"firstName": "Priya",
"lastName": "Shah",
"email": "[email protected]",
"phone": null,
"company": "Northwind",
"title": "VP Operations",
"status": "NEW",
"leadSource": "WEB",
"rating": "WARM",
"leadScore": 72,
"convertedAccountId": null,
"convertedContactId": null,
"convertedOpportunityId": null,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"lead_region__c": "EMEA"
}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "lead"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"company": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"leadSource": {
"type": "string"
},
"rating": {
"type": [
"string",
"null"
]
},
"leadScore": {
"type": [
"integer",
"null"
]
},
"convertedAccountId": {
"type": [
"string",
"null"
]
},
"convertedContactId": {
"type": [
"string",
"null"
]
},
"convertedOpportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}lead.convertedv1
A lead was converted. `convertedAccountId`, `convertedContactId` and (when a deal was created) `convertedOpportunityId` are set on the record.
Sample data
{
"object": "lead",
"id": "cmlead01",
"record": {
"id": "cmlead01",
"firstName": "Priya",
"lastName": "Shah",
"email": "[email protected]",
"phone": null,
"company": "Northwind",
"title": "VP Operations",
"status": "CONVERTED",
"leadSource": "WEB",
"rating": "WARM",
"leadScore": 72,
"convertedAccountId": "cmaccount01",
"convertedContactId": "cmcontact01",
"convertedOpportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"lead_region__c": "EMEA"
}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "lead"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"company": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"leadSource": {
"type": "string"
},
"rating": {
"type": [
"string",
"null"
]
},
"leadScore": {
"type": [
"integer",
"null"
]
},
"convertedAccountId": {
"type": [
"string",
"null"
]
},
"convertedContactId": {
"type": [
"string",
"null"
]
},
"convertedOpportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}Contacts
contact.createdv1
A contact was created (UI, API, import, web form or automation).
Sample data
{
"object": "contact",
"id": "cmcontact01",
"record": {
"id": "cmcontact01",
"firstName": "Jonas",
"lastName": "Berg",
"email": "[email protected]",
"phone": "+46 8 555 0101",
"title": "Head of IT",
"accountId": "cmaccount01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "contact"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}contact.updatedv1
A contact was edited. `previous` holds the record before the change and `changedFields` lists what changed.
Sample data
{
"object": "contact",
"id": "cmcontact01",
"record": {
"id": "cmcontact01",
"firstName": "Jonas",
"lastName": "Berg",
"email": "[email protected]",
"phone": "+46 8 555 0101",
"title": "Head of IT",
"accountId": "cmaccount01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": {
"id": "cmcontact01",
"firstName": "Jonas",
"lastName": "Berg",
"email": "[email protected]",
"phone": "+46 8 555 0101",
"title": "IT Manager",
"accountId": "cmaccount01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"changedFields": [
"title"
],
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "contact"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}contact.deletedv1
A contact was deleted. `record` is its last state.
Sample data
{
"object": "contact",
"id": "cmcontact01",
"record": {
"id": "cmcontact01",
"firstName": "Jonas",
"lastName": "Berg",
"email": "[email protected]",
"phone": "+46 8 555 0101",
"title": "Head of IT",
"accountId": "cmaccount01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "contact"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
]
},
"phone": {
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}Accounts
account.createdv1
A account was created (UI, API, import, web form or automation).
Sample data
{
"object": "account",
"id": "cmaccount01",
"record": {
"id": "cmaccount01",
"name": "Northwind",
"website": "https://northwind.example",
"domain": "northwind.example",
"industry": "Logistics",
"type": "CUSTOMER",
"externalId": "ERP-10442",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"erp_tier__c": "Gold"
}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "account"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"website": {
"type": [
"string",
"null"
]
},
"domain": {
"type": [
"string",
"null"
]
},
"industry": {
"type": [
"string",
"null"
]
},
"type": {
"type": "string"
},
"externalId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}account.updatedv1
A account was edited. `previous` holds the record before the change and `changedFields` lists what changed.
Sample data
{
"object": "account",
"id": "cmaccount01",
"record": {
"id": "cmaccount01",
"name": "Northwind",
"website": "https://northwind.example",
"domain": "northwind.example",
"industry": "Logistics",
"type": "CUSTOMER",
"externalId": "ERP-10442",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"erp_tier__c": "Gold"
}
},
"previous": {
"id": "cmaccount01",
"name": "Northwind",
"website": "https://northwind.example",
"domain": "northwind.example",
"industry": null,
"type": "CUSTOMER",
"externalId": "ERP-10442",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"erp_tier__c": "Gold"
}
},
"changedFields": [
"industry"
],
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "account"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"website": {
"type": [
"string",
"null"
]
},
"domain": {
"type": [
"string",
"null"
]
},
"industry": {
"type": [
"string",
"null"
]
},
"type": {
"type": "string"
},
"externalId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}account.deletedv1
A account was deleted. `record` is its last state.
Sample data
{
"object": "account",
"id": "cmaccount01",
"record": {
"id": "cmaccount01",
"name": "Northwind",
"website": "https://northwind.example",
"domain": "northwind.example",
"industry": "Logistics",
"type": "CUSTOMER",
"externalId": "ERP-10442",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {
"erp_tier__c": "Gold"
}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "account"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"website": {
"type": [
"string",
"null"
]
},
"domain": {
"type": [
"string",
"null"
]
},
"industry": {
"type": [
"string",
"null"
]
},
"type": {
"type": "string"
},
"externalId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}Deals
opportunity.createdv1
A deal was created (UI, API, import, web form or automation).
Sample data
{
"object": "opportunity",
"id": "cmopp01",
"record": {
"id": "cmopp01",
"name": "Northwind — Fleet rollout",
"amount": 48000,
"currency": "USD",
"stage": "NEGOTIATION_REVIEW",
"probability": 80,
"closeDate": "2026-10-31T00:00:00.000Z",
"accountId": "cmaccount01",
"isClosed": false,
"isWon": false,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "opportunity"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"probability": {
"type": [
"integer",
"null"
]
},
"closeDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"accountId": {
"type": "string"
},
"isClosed": {
"type": "boolean"
},
"isWon": {
"type": "boolean"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}opportunity.updatedv1
A deal was edited. `previous` holds the record before the change and `changedFields` lists what changed.
Sample data
{
"object": "opportunity",
"id": "cmopp01",
"record": {
"id": "cmopp01",
"name": "Northwind — Fleet rollout",
"amount": 48000,
"currency": "USD",
"stage": "NEGOTIATION_REVIEW",
"probability": 80,
"closeDate": "2026-10-31T00:00:00.000Z",
"accountId": "cmaccount01",
"isClosed": false,
"isWon": false,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": {
"id": "cmopp01",
"name": "Northwind — Fleet rollout",
"amount": 42000,
"currency": "USD",
"stage": "NEGOTIATION_REVIEW",
"probability": 80,
"closeDate": "2026-10-31T00:00:00.000Z",
"accountId": "cmaccount01",
"isClosed": false,
"isWon": false,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"changedFields": [
"amount"
],
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "opportunity"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"probability": {
"type": [
"integer",
"null"
]
},
"closeDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"accountId": {
"type": "string"
},
"isClosed": {
"type": "boolean"
},
"isWon": {
"type": "boolean"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}opportunity.deletedv1
A deal was deleted. `record` is its last state.
Sample data
{
"object": "opportunity",
"id": "cmopp01",
"record": {
"id": "cmopp01",
"name": "Northwind — Fleet rollout",
"amount": 48000,
"currency": "USD",
"stage": "NEGOTIATION_REVIEW",
"probability": 80,
"closeDate": "2026-10-31T00:00:00.000Z",
"accountId": "cmaccount01",
"isClosed": false,
"isWon": false,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "opportunity"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"probability": {
"type": [
"integer",
"null"
]
},
"closeDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"accountId": {
"type": "string"
},
"isClosed": {
"type": "boolean"
},
"isWon": {
"type": "boolean"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}opportunity.stage_changedv1
A deal moved to a different pipeline stage, including into Closed Won / Closed Lost.
Sample data
{
"object": "opportunity",
"id": "cmopp01",
"record": {
"id": "cmopp01",
"name": "Northwind — Fleet rollout",
"amount": 48000,
"currency": "USD",
"stage": "NEGOTIATION_REVIEW",
"probability": 80,
"closeDate": "2026-10-31T00:00:00.000Z",
"accountId": "cmaccount01",
"isClosed": false,
"isWon": false,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"previousStage": "PROPOSAL_PRICE_QUOTE",
"stage": "NEGOTIATION_REVIEW"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "opportunity"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"probability": {
"type": [
"integer",
"null"
]
},
"closeDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"accountId": {
"type": "string"
},
"isClosed": {
"type": "boolean"
},
"isWon": {
"type": "boolean"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"previousStage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"stage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
}
}
}opportunity.wonv1
A deal moved into Closed Won.
Sample data
{
"object": "opportunity",
"id": "cmopp01",
"record": {
"id": "cmopp01",
"name": "Northwind — Fleet rollout",
"amount": 48000,
"currency": "USD",
"stage": "CLOSED_WON",
"probability": 100,
"closeDate": "2026-10-31T00:00:00.000Z",
"accountId": "cmaccount01",
"isClosed": true,
"isWon": true,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"previousStage": "NEGOTIATION_REVIEW",
"stage": "CLOSED_WON"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "opportunity"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"probability": {
"type": [
"integer",
"null"
]
},
"closeDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"accountId": {
"type": "string"
},
"isClosed": {
"type": "boolean"
},
"isWon": {
"type": "boolean"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"previousStage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"stage": {
"const": "CLOSED_WON"
}
}
}opportunity.lostv1
A deal moved into Closed Lost.
Sample data
{
"object": "opportunity",
"id": "cmopp01",
"record": {
"id": "cmopp01",
"name": "Northwind — Fleet rollout",
"amount": 48000,
"currency": "USD",
"stage": "CLOSED_LOST",
"probability": 0,
"closeDate": "2026-10-31T00:00:00.000Z",
"accountId": "cmaccount01",
"isClosed": true,
"isWon": false,
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"previousStage": "NEGOTIATION_REVIEW",
"stage": "CLOSED_LOST"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "opportunity"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"stage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"probability": {
"type": [
"integer",
"null"
]
},
"closeDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"accountId": {
"type": "string"
},
"isClosed": {
"type": "boolean"
},
"isWon": {
"type": "boolean"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"previousStage": {
"type": "string",
"enum": [
"PROSPECTING",
"QUALIFICATION",
"NEEDS_ANALYSIS",
"VALUE_PROPOSITION",
"DECISION_MAKERS_IDENTIFIED",
"PERCEPTION_ANALYSIS",
"PROPOSAL_PRICE_QUOTE",
"NEGOTIATION_REVIEW",
"CLOSED_WON",
"CLOSED_LOST"
]
},
"stage": {
"const": "CLOSED_LOST"
}
}
}Tasks
task.createdv1
A task was created (UI, API, import, web form or automation).
Sample data
{
"object": "task",
"id": "cmtask01",
"record": {
"id": "cmtask01",
"subject": "Send revised proposal",
"status": "NOT_STARTED",
"priority": "HIGH",
"dueDate": "2026-10-03T17:00:00.000Z",
"completedDate": null,
"assignedToId": "usr_8f2k1m",
"leadId": null,
"contactId": "cmcontact01",
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "task"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"subject": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"dueDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completedDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"assignedToId": {
"type": [
"string",
"null"
]
},
"leadId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"opportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}task.updatedv1
A task was edited. `previous` holds the record before the change and `changedFields` lists what changed.
Sample data
{
"object": "task",
"id": "cmtask01",
"record": {
"id": "cmtask01",
"subject": "Send revised proposal",
"status": "NOT_STARTED",
"priority": "HIGH",
"dueDate": "2026-10-03T17:00:00.000Z",
"completedDate": null,
"assignedToId": "usr_8f2k1m",
"leadId": null,
"contactId": "cmcontact01",
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": {
"id": "cmtask01",
"subject": "Send revised proposal",
"status": "NOT_STARTED",
"priority": "NORMAL",
"dueDate": "2026-10-03T17:00:00.000Z",
"completedDate": null,
"assignedToId": "usr_8f2k1m",
"leadId": null,
"contactId": "cmcontact01",
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"changedFields": [
"priority"
],
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "task"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"subject": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"dueDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completedDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"assignedToId": {
"type": [
"string",
"null"
]
},
"leadId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"opportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}task.completedv1
A task was marked completed.
Sample data
{
"object": "task",
"id": "cmtask01",
"record": {
"id": "cmtask01",
"subject": "Send revised proposal",
"status": "COMPLETED",
"priority": "HIGH",
"dueDate": "2026-10-03T17:00:00.000Z",
"completedDate": "2026-10-01T12:00:00.000Z",
"assignedToId": "usr_8f2k1m",
"leadId": null,
"contactId": "cmcontact01",
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": {
"id": "cmtask01",
"subject": "Send revised proposal",
"status": "IN_PROGRESS",
"priority": "HIGH",
"dueDate": "2026-10-03T17:00:00.000Z",
"completedDate": null,
"assignedToId": "usr_8f2k1m",
"leadId": null,
"contactId": "cmcontact01",
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"changedFields": [
"status",
"completedDate"
],
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "task"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"subject": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"dueDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completedDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"assignedToId": {
"type": [
"string",
"null"
]
},
"leadId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"opportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}task.deletedv1
A task was deleted. `record` is its last state.
Sample data
{
"object": "task",
"id": "cmtask01",
"record": {
"id": "cmtask01",
"subject": "Send revised proposal",
"status": "NOT_STARTED",
"priority": "HIGH",
"dueDate": "2026-10-03T17:00:00.000Z",
"completedDate": null,
"assignedToId": "usr_8f2k1m",
"leadId": null,
"contactId": "cmcontact01",
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "task"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"subject": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"dueDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completedDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"assignedToId": {
"type": [
"string",
"null"
]
},
"leadId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"opportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}task.overduev1
An open task passed its due date. Sent once per task, shortly after it becomes overdue.
Sample data
{
"object": "task",
"id": "cmtask01",
"record": {
"id": "cmtask01",
"subject": "Send revised proposal",
"status": "NOT_STARTED",
"priority": "HIGH",
"dueDate": "2026-10-03T17:00:00.000Z",
"completedDate": null,
"assignedToId": "usr_8f2k1m",
"leadId": null,
"contactId": "cmcontact01",
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": null,
"relatedTo": {
"object": "Opportunity",
"id": "cmopp01"
}
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "task"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"subject": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"dueDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completedDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"assignedToId": {
"type": [
"string",
"null"
]
},
"leadId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"opportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"relatedTo": {
"type": [
"object",
"null"
],
"description": "The CRM record this event is about, when there is one",
"required": [
"object",
"id"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
}
}
}
}
}Activities
activity.createdv1
A call, email, meeting or other activity was logged against a record.
Sample data
{
"object": "activity",
"id": "cmact01",
"record": {
"id": "cmact01",
"type": "CALL",
"subject": "Discovery call",
"activityDate": "2026-10-01T12:00:00.000Z",
"leadId": null,
"contactId": "cmcontact01",
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"userId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"relatedTo": {
"object": "Opportunity",
"id": "cmopp01"
}
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "activity"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"subject": {
"type": "string"
},
"activityDate": {
"type": "string",
"format": "date-time"
},
"leadId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"opportunityId": {
"type": [
"string",
"null"
]
},
"userId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"relatedTo": {
"type": [
"object",
"null"
],
"description": "The CRM record this event is about, when there is one",
"required": [
"object",
"id"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
}
}
}
}
}meeting.completedv1
A meeting finished: either a MEETING activity was logged (`object: "activity"`) or a recorded meeting was analysed (`object: "meeting"`).
Sample data
{
"object": "meeting",
"id": "cmmeet01",
"record": {
"id": "cmmeet01",
"title": "Northwind QBR",
"status": "COMPLETED",
"scheduledStart": "2026-10-01T12:00:00.000Z",
"actualEnd": "2026-10-01T12:00:00.000Z",
"leadId": null,
"accountId": "cmaccount01",
"opportunityId": "cmopp01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"relatedTo": {
"object": "Opportunity",
"id": "cmopp01"
}
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"enum": [
"meeting",
"activity"
]
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "string"
},
"scheduledStart": {
"type": "string",
"format": "date-time"
},
"actualEnd": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"leadId": {
"type": [
"string",
"null"
]
},
"accountId": {
"type": [
"string",
"null"
]
},
"opportunityId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"relatedTo": {
"type": [
"object",
"null"
],
"description": "The CRM record this event is about, when there is one",
"required": [
"object",
"id"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
}
}
}
}
}email.receivedv1
An inbound email arrived on a synced thread. `bodyText` is capped at 10,000 characters.
Sample data
{
"object": "email_message",
"id": "cmemail01",
"record": {
"id": "cmemail01",
"threadId": "cmthread01",
"subject": "Re: Fleet rollout pricing",
"fromEmail": "[email protected]",
"fromName": "Jonas Berg",
"toEmails": [
"[email protected]"
],
"direction": "INBOUND",
"receivedAt": "2026-10-01T12:00:00.000Z",
"bodyText": "Thanks — the revised numbers work for us.",
"createdAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": null,
"relatedTo": {
"object": "Opportunity",
"id": "cmopp01"
}
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "email_message"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"threadId": {
"type": "string"
},
"subject": {
"type": "string"
},
"fromEmail": {
"type": "string"
},
"fromName": {
"type": [
"string",
"null"
]
},
"toEmails": {
"type": "array",
"items": {
"type": "string"
}
},
"direction": {
"type": "string"
},
"receivedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"bodyText": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"relatedTo": {
"type": [
"object",
"null"
],
"description": "The CRM record this event is about, when there is one",
"required": [
"object",
"id"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
}
}
}
}
}email.repliedv1
A prospect replied to an email the team sent (an inbound email that is a reply, not unsolicited).
Sample data
{
"object": "email_message",
"id": "cmemail01",
"record": {
"id": "cmemail01",
"threadId": "cmthread01",
"subject": "Re: Fleet rollout pricing",
"fromEmail": "[email protected]",
"fromName": "Jonas Berg",
"toEmails": [
"[email protected]"
],
"direction": "INBOUND",
"receivedAt": "2026-10-01T12:00:00.000Z",
"bodyText": "Thanks — the revised numbers work for us.",
"createdAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": null,
"relatedTo": {
"object": "Opportunity",
"id": "cmopp01"
}
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "email_message"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"threadId": {
"type": "string"
},
"subject": {
"type": "string"
},
"fromEmail": {
"type": "string"
},
"fromName": {
"type": [
"string",
"null"
]
},
"toEmails": {
"type": "array",
"items": {
"type": "string"
}
},
"direction": {
"type": "string"
},
"receivedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"bodyText": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"relatedTo": {
"type": [
"object",
"null"
],
"description": "The CRM record this event is about, when there is one",
"required": [
"object",
"id"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
}
}
}
}
}Quotes & orders
quote.sentv1
A quote was sent to the customer.
Sample data
{
"object": "quote",
"id": "cmquote01",
"record": {
"id": "cmquote01",
"quoteNumber": "Q-2026-0042",
"name": "Fleet rollout — 120 seats",
"status": "SENT",
"totalPrice": 48000,
"currency": "USD",
"opportunityId": "cmopp01",
"accountId": "cmaccount01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "quote"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"quoteNumber": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
},
"totalPrice": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"opportunityId": {
"type": "string"
},
"accountId": {
"type": "string"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}quote.acceptedv1
A quote was accepted (by the customer or marked accepted).
Sample data
{
"object": "quote",
"id": "cmquote01",
"record": {
"id": "cmquote01",
"quoteNumber": "Q-2026-0042",
"name": "Fleet rollout — 120 seats",
"status": "ACCEPTED",
"totalPrice": 48000,
"currency": "USD",
"opportunityId": "cmopp01",
"accountId": "cmaccount01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"customFields": {}
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"relatedTo": {
"object": "Opportunity",
"id": "cmopp01"
}
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "quote"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"quoteNumber": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
},
"totalPrice": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"opportunityId": {
"type": "string"
},
"accountId": {
"type": "string"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"customFields": {
"type": "object",
"description": "Custom field values keyed by API name",
"additionalProperties": true
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"relatedTo": {
"type": [
"object",
"null"
],
"description": "The CRM record this event is about, when there is one",
"required": [
"object",
"id"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
}
}
}
}
}order.createdv1
An order was created, directly or by converting a quote.
Sample data
{
"object": "order",
"id": "cmorder01",
"record": {
"id": "cmorder01",
"orderNumber": "ORD-2026-0007",
"name": "Fleet rollout",
"status": "PENDING",
"total": 48000,
"currency": "USD",
"accountId": "cmaccount01",
"quoteId": "cmquote01",
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "order"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"orderNumber": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
},
"total": {
"type": [
"number",
"null"
]
},
"currency": {
"type": "string"
},
"accountId": {
"type": "string"
},
"quoteId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}invoice.createdv1
A customer invoice was created. Amounts are in minor units.
Sample data
{
"object": "invoice",
"id": "cminv01",
"record": {
"id": "cminv01",
"invoiceNumber": "INV-2026-0019",
"status": "DRAFT",
"currency": "USD",
"total": 4800000,
"amountPaid": 0,
"amountDue": 4800000,
"dueDate": "2026-10-31T00:00:00.000Z",
"paidAt": null,
"accountId": "cmaccount01",
"orderId": "cmorder01",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "invoice"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"invoiceNumber": {
"type": "string"
},
"status": {
"type": "string"
},
"currency": {
"type": "string"
},
"total": {
"type": "integer",
"description": "Minor units (cents)"
},
"amountPaid": {
"type": "integer",
"description": "Minor units (cents)"
},
"amountDue": {
"type": "integer",
"description": "Minor units (cents)"
},
"dueDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"paidAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"accountId": {
"type": [
"string",
"null"
]
},
"orderId": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}invoice.paidv1
A customer invoice was paid in full.
Sample data
{
"object": "invoice",
"id": "cminv01",
"record": {
"id": "cminv01",
"invoiceNumber": "INV-2026-0019",
"status": "PAID",
"currency": "USD",
"total": 4800000,
"amountPaid": 4800000,
"amountDue": 0,
"dueDate": "2026-10-31T00:00:00.000Z",
"paidAt": "2026-10-01T12:00:00.000Z",
"accountId": "cmaccount01",
"orderId": "cmorder01",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "invoice"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"invoiceNumber": {
"type": "string"
},
"status": {
"type": "string"
},
"currency": {
"type": "string"
},
"total": {
"type": "integer",
"description": "Minor units (cents)"
},
"amountPaid": {
"type": "integer",
"description": "Minor units (cents)"
},
"amountDue": {
"type": "integer",
"description": "Minor units (cents)"
},
"dueDate": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"paidAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"accountId": {
"type": [
"string",
"null"
]
},
"orderId": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}Cases
case.createdv1
A service case was created (UI, API, import, web form or automation).
Sample data
{
"object": "case",
"id": "cmcase01",
"record": {
"id": "cmcase01",
"caseNumber": 1042,
"subject": "Driver app login fails",
"status": "NEW",
"priority": "HIGH",
"accountId": "cmaccount01",
"contactId": "cmcontact01",
"ownerId": "usr_8f2k1m",
"assignedToId": null,
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "case"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"caseNumber": {
"type": "integer"
},
"subject": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"accountId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"assignedToId": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}case.updatedv1
A service case was edited. `previous` holds the record before the change and `changedFields` lists what changed.
Sample data
{
"object": "case",
"id": "cmcase01",
"record": {
"id": "cmcase01",
"caseNumber": 1042,
"subject": "Driver app login fails",
"status": "NEW",
"priority": "HIGH",
"accountId": "cmaccount01",
"contactId": "cmcontact01",
"ownerId": "usr_8f2k1m",
"assignedToId": null,
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": {
"id": "cmcase01",
"caseNumber": 1042,
"subject": "Driver app login fails",
"status": "OPEN",
"priority": "HIGH",
"accountId": "cmaccount01",
"contactId": "cmcontact01",
"ownerId": "usr_8f2k1m",
"assignedToId": null,
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"changedFields": [
"status"
],
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "case"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"caseNumber": {
"type": "integer"
},
"subject": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"accountId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"assignedToId": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}case.deletedv1
A service case was deleted. `record` is its last state.
Sample data
{
"object": "case",
"id": "cmcase01",
"record": {
"id": "cmcase01",
"caseNumber": 1042,
"subject": "Driver app login fails",
"status": "NEW",
"priority": "HIGH",
"accountId": "cmaccount01",
"contactId": "cmcontact01",
"ownerId": "usr_8f2k1m",
"assignedToId": null,
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "case"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"caseNumber": {
"type": "integer"
},
"subject": {
"type": "string"
},
"status": {
"type": "string"
},
"priority": {
"type": "string"
},
"accountId": {
"type": [
"string",
"null"
]
},
"contactId": {
"type": [
"string",
"null"
]
},
"ownerId": {
"type": "string"
},
"assignedToId": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
}
}
}Custom objects
custom_object.record.createdv1
A record of a custom object was created. `objectApiName` names the object.
Sample data
{
"object": "custom_object_record",
"id": "cmrec01",
"record": {
"id": "cmrec01",
"objectId": "cmobj01",
"data": {
"vehicle_vin": "1HGBH41JXMN109186",
"mileage": 42000
},
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"objectApiName": "vehicle"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "custom_object_record"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"objectId": {
"type": "string"
},
"data": {
"type": "object",
"description": "Field values keyed by field name"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"objectApiName": {
"type": "string",
"description": "The custom object API name"
}
}
}custom_object.record.updatedv1
A custom object record was edited.
Sample data
{
"object": "custom_object_record",
"id": "cmrec01",
"record": {
"id": "cmrec01",
"objectId": "cmobj01",
"data": {
"vehicle_vin": "1HGBH41JXMN109186",
"mileage": 42000
},
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": {
"id": "cmrec01",
"objectId": "cmobj01",
"data": {
"vehicle_vin": "1HGBH41JXMN109186",
"mileage": 39000
},
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"changedFields": [
"data"
],
"actorId": "usr_8f2k1m",
"objectApiName": "vehicle"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "custom_object_record"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"objectId": {
"type": "string"
},
"data": {
"type": "object",
"description": "Field values keyed by field name"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"objectApiName": {
"type": "string",
"description": "The custom object API name"
}
}
}custom_object.record.deletedv1
A custom object record was deleted. `record` is its last state.
Sample data
{
"object": "custom_object_record",
"id": "cmrec01",
"record": {
"id": "cmrec01",
"objectId": "cmobj01",
"data": {
"vehicle_vin": "1HGBH41JXMN109186",
"mileage": 42000
},
"ownerId": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"objectApiName": "vehicle"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "custom_object_record"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"objectId": {
"type": "string"
},
"data": {
"type": "object",
"description": "Field values keyed by field name"
},
"ownerId": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"objectApiName": {
"type": "string",
"description": "The custom object API name"
}
}
}Apps
app.installedv1
An app was installed or upgraded in the organization. `app` names it; `previousVersion` is set on upgrades.
Sample data
{
"object": "app_installation",
"id": "cminst01",
"record": {
"id": "cminst01",
"appId": "cmapp01",
"versionId": "cmappver01",
"status": "ACTIVE",
"grantedScopes": [
"READ_LEADS",
"WRITE_LEADS"
],
"installedById": "usr_8f2k1m",
"uninstalledAt": null,
"uninstalledById": null,
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"app": {
"id": "cmapp01",
"slug": "acme-enrich",
"name": "Acme Enrich",
"version": "1.2.0"
},
"previousVersion": null
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "app_installation"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"appId": {
"type": "string"
},
"versionId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ACTIVE",
"UNINSTALLED"
]
},
"grantedScopes": {
"type": "array",
"items": {
"type": "string"
}
},
"installedById": {
"type": "string"
},
"uninstalledAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"uninstalledById": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"app": {
"type": "object",
"required": [
"id",
"slug",
"name",
"version"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"previousVersion": {
"type": [
"string",
"null"
],
"description": "The version this upgrade replaced (app.installed only)"
},
"removedComponents": {
"type": "integer",
"description": "Components removed (app.uninstalled only)"
},
"retainedFields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Custom fields kept with their data, as OBJECT.name"
}
}
}app.uninstalledv1
An app was uninstalled. `removedComponents` counts what was removed; `retainedFields` lists custom fields kept with their data.
Sample data
{
"object": "app_installation",
"id": "cminst01",
"record": {
"id": "cminst01",
"appId": "cmapp01",
"versionId": "cmappver01",
"status": "UNINSTALLED",
"grantedScopes": [
"READ_LEADS",
"WRITE_LEADS"
],
"installedById": "usr_8f2k1m",
"uninstalledAt": "2026-10-01T12:00:00.000Z",
"uninstalledById": "usr_8f2k1m",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"app": {
"id": "cmapp01",
"slug": "acme-enrich",
"name": "Acme Enrich",
"version": "1.2.0"
},
"removedComponents": 4,
"retainedFields": [
"LEAD.acme_score"
]
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "app_installation"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"appId": {
"type": "string"
},
"versionId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ACTIVE",
"UNINSTALLED"
]
},
"grantedScopes": {
"type": "array",
"items": {
"type": "string"
}
},
"installedById": {
"type": "string"
},
"uninstalledAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"uninstalledById": {
"type": [
"string",
"null"
]
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"app": {
"type": "object",
"required": [
"id",
"slug",
"name",
"version"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"previousVersion": {
"type": [
"string",
"null"
],
"description": "The version this upgrade replaced (app.installed only)"
},
"removedComponents": {
"type": "integer",
"description": "Components removed (app.uninstalled only)"
},
"retainedFields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Custom fields kept with their data, as OBJECT.name"
}
}
}Approvals
approval.approvedv1
An approval request was approved at its last step. `relatedTo` is the record (lead, contact, account, opportunity, case, task, quote, order, contract or custom:<object>).
Sample data
{
"object": "approval_request",
"id": "cmapr01",
"record": {
"id": "cmapr01",
"workflowId": "cmapw01",
"entityType": "OPPORTUNITY",
"entityId": "cmopp01",
"entityName": "Northwind expansion",
"status": "APPROVED",
"currentStepOrder": 2,
"requestedById": "usr_8f2k1m",
"submittedAt": "2026-10-01T12:00:00.000Z",
"completedAt": "2026-10-01T12:00:00.000Z",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"relatedTo": {
"object": "opportunity",
"id": "cmopp01"
},
"workflowName": "Large deal review",
"comment": "Within the discount policy"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "approval_request"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"workflowId": {
"type": "string"
},
"entityType": {
"type": "string"
},
"entityId": {
"type": "string"
},
"entityName": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"PENDING",
"APPROVED",
"REJECTED",
"CANCELLED",
"EXPIRED"
]
},
"currentStepOrder": {
"type": "integer"
},
"requestedById": {
"type": "string"
},
"submittedAt": {
"type": "string",
"format": "date-time"
},
"completedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"relatedTo": {
"type": [
"object",
"null"
],
"description": "The CRM record this event is about, when there is one",
"required": [
"object",
"id"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
}
}
},
"workflowName": {
"type": "string",
"description": "The approval process"
},
"comment": {
"type": [
"string",
"null"
],
"description": "The deciding approver's comment"
}
}
}approval.rejectedv1
An approval request was rejected; `comment` is the reason.
Sample data
{
"object": "approval_request",
"id": "cmapr01",
"record": {
"id": "cmapr01",
"workflowId": "cmapw01",
"entityType": "OPPORTUNITY",
"entityId": "cmopp01",
"entityName": "Northwind expansion",
"status": "REJECTED",
"currentStepOrder": 1,
"requestedById": "usr_8f2k1m",
"submittedAt": "2026-10-01T12:00:00.000Z",
"completedAt": "2026-10-01T12:00:00.000Z",
"createdAt": "2026-10-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
},
"previous": null,
"changedFields": null,
"actorId": "usr_8f2k1m",
"relatedTo": {
"object": "opportunity",
"id": "cmopp01"
},
"workflowName": "Large deal review",
"comment": "Discount above the policy limit"
}JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"object",
"id",
"record"
],
"additionalProperties": false,
"properties": {
"object": {
"const": "approval_request"
},
"id": {
"type": "string"
},
"record": {
"type": "object",
"required": [
"id"
],
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"workflowId": {
"type": "string"
},
"entityType": {
"type": "string"
},
"entityId": {
"type": "string"
},
"entityName": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"PENDING",
"APPROVED",
"REJECTED",
"CANCELLED",
"EXPIRED"
]
},
"currentStepOrder": {
"type": "integer"
},
"requestedById": {
"type": "string"
},
"submittedAt": {
"type": "string",
"format": "date-time"
},
"completedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
}
}
},
"previous": {
"type": [
"object",
"null"
],
"description": "The record before the change (updates only)"
},
"changedFields": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "Fields that changed (updates only)"
},
"actorId": {
"type": [
"string",
"null"
],
"description": "User who caused the event; null for system events"
},
"relatedTo": {
"type": [
"object",
"null"
],
"description": "The CRM record this event is about, when there is one",
"required": [
"object",
"id"
],
"additionalProperties": false,
"properties": {
"object": {
"type": "string"
},
"id": {
"type": "string"
}
}
},
"workflowName": {
"type": "string",
"description": "The approval process"
},
"comment": {
"type": [
"string",
"null"
],
"description": "The deciding approver's comment"
}
}
}Custom labels and translations
Reusable tenant text and translations of your own metadata — labels, objects, fields, picklist values, flow screens and page titles — per language.
Custom events
Define your own platform events with a versioned payload schema, publish them from the API, functions, flows and workflows, and subscribe with webhooks, functions, flows, the CLI and GraphQL.