Webhook Event Types
Reference for every Probo webhook event type and its data payload shape, covering third parties, users, obligations, rights requests, and the document lifecycle.
This page is the payload lookup for webhook data (and updatedFrom on update events). For the root envelope, headers, and delivery behavior, see Delivery and recovery. For supported domains, see What webhooks cover.
Wire names and API enums
Section titled “Wire names and API enums”Webhook bodies and the X-Probo-Webhook-Event header use lowercase wire names such as third-party:created. The console, CLI (prb webhook create --event), MCP, and n8n use uppercase enum names such as THIRD_PARTY_CREATED.
The wire prefix is right-request. CLI, MCP, and n8n resource names use rights-request for the product object; the event enum is still RIGHT_REQUEST_*.
Third party
Section titled “Third party”| Wire name | API / CLI enum | Description |
|---|---|---|
third-party:created | THIRD_PARTY_CREATED | A third party was created |
third-party:updated | THIRD_PARTY_UPDATED | A third party was updated |
third-party:deleted | THIRD_PARTY_DELETED | A third party was deleted |
| Wire name | API / CLI enum | Description |
|---|---|---|
user:created | USER_CREATED | A user was created |
user:updated | USER_UPDATED | A user was updated |
user:deleted | USER_DELETED | A user was deleted |
Obligation
Section titled “Obligation”| Wire name | API / CLI enum | Description |
|---|---|---|
obligation:created | OBLIGATION_CREATED | An obligation was created |
obligation:updated | OBLIGATION_UPDATED | An obligation was updated |
obligation:deleted | OBLIGATION_DELETED | An obligation was deleted |
Rights request
Section titled “Rights request”| Wire name | API / CLI enum | Description |
|---|---|---|
right-request:created | RIGHT_REQUEST_CREATED | A data subject rights request was created |
right-request:updated | RIGHT_REQUEST_UPDATED | A data subject rights request was updated |
right-request:deleted | RIGHT_REQUEST_DELETED | A data subject rights request was deleted |
Document
Section titled “Document”| Wire name | API / CLI enum | Description |
|---|---|---|
document:created | DOCUMENT_CREATED | A document was created |
document:updated | DOCUMENT_UPDATED | A document was updated |
document:archived | DOCUMENT_ARCHIVED | A document was archived |
document:unarchived | DOCUMENT_UNARCHIVED | A document was unarchived |
document:deleted | DOCUMENT_DELETED | A document was deleted |
Document version
Section titled “Document version”| Wire name | API / CLI enum | Description |
|---|---|---|
document-version:created | DOCUMENT_VERSION_CREATED | A document version was created |
document-version:updated | DOCUMENT_VERSION_UPDATED | A document version was updated |
document-version:published | DOCUMENT_VERSION_PUBLISHED | A document version was published |
document-version:rejected | DOCUMENT_VERSION_REJECTED | A document version was rejected |
document-version:deleted | DOCUMENT_VERSION_DELETED | A document version was deleted |
Document version signature
Section titled “Document version signature”| Wire name | API / CLI enum | Description |
|---|---|---|
document-version-signature:requested | DOCUMENT_VERSION_SIGNATURE_REQUESTED | A signature was requested |
document-version-signature:signed | DOCUMENT_VERSION_SIGNATURE_SIGNED | A signature was completed |
document-version-signature:cancelled | DOCUMENT_VERSION_SIGNATURE_CANCELLED | A signature request was cancelled |
Document version approval quorum
Section titled “Document version approval quorum”| Wire name | API / CLI enum | Description |
|---|---|---|
document-version-approval-quorum:requested | DOCUMENT_VERSION_APPROVAL_QUORUM_REQUESTED | An approval quorum was requested |
document-version-approval-quorum:updated | DOCUMENT_VERSION_APPROVAL_QUORUM_UPDATED | An approval quorum was updated |
document-version-approval-quorum:approved | DOCUMENT_VERSION_APPROVAL_QUORUM_APPROVED | An approval quorum was approved |
document-version-approval-quorum:rejected | DOCUMENT_VERSION_APPROVAL_QUORUM_REJECTED | An approval quorum was rejected |
document-version-approval-quorum:voided | DOCUMENT_VERSION_APPROVAL_QUORUM_VOIDED | An approval quorum was voided |
Update events and updatedFrom
Section titled “Update events and updatedFrom”For any *:updated event, the payload includes:
data— the entity after the changeupdatedFrom— a full snapshot of the same entity shape before the change
Non-update events omit updatedFrom.
The two objects have the same schema, which makes field-level comparisons safe:
if (event.eventType === "user:updated") { const oldRole = event.updatedFrom.membership?.role; const newRole = event.data.membership?.role;
if (oldRole !== newRole) { await syncAccess(event.data.id, newRole); }}Delete events carry the last resource snapshot captured before deletion. Lifecycle events such as archive, publish, sign, and approve carry the resource after that transition.
Compatibility
Section titled “Compatibility”- Timestamps are RFC 3339 strings.
- Nullable values appear as
null; fields are not omitted from resource objects. - Enum values are uppercase strings such as
ACTIVE,PUBLISHED, orPENDING. - Arrays are present even when empty.
- Receivers should ignore fields they do not recognize so additive schema changes remain compatible.
Payload structures
Section titled “Payload structures”The data field (and updatedFrom when present) contains the resource that triggered the event.
Third party
Section titled “Third party”Sent for third-party:created, third-party:updated, and third-party:deleted events.
{ "id": "thp_01DEF456", "name": "Acme Cloud", "category": "CLOUD_INFRASTRUCTURE", "description": "Cloud hosting provider", "statusPageUrl": "https://status.acme.cloud", "termsOfServiceUrl": "https://acme.cloud/tos", "privacyPolicyUrl": "https://acme.cloud/privacy", "serviceLevelAgreementUrl": "https://acme.cloud/sla", "dataProcessingAgreementUrl": null, "businessAssociateAgreementUrl": null, "subprocessorsListUrl": "https://acme.cloud/subprocessors", "certifications": ["SOC2", "ISO27001"], "countries": ["US", "DE"], "securityPageUrl": "https://acme.cloud/security", "trustPageUrl": "https://acme.cloud/trust", "headquarterAddress": "123 Cloud St, San Francisco, CA", "legalName": "Acme Cloud Inc.", "websiteUrl": "https://acme.cloud", "administratorIds": ["usr_01GHI789", "usr_01JKL012"], "createdAt": "2026-01-05T10:00:00Z", "updatedAt": "2026-01-05T10:00:00Z"}| Field | Type | Description |
|---|---|---|
id | string | Third party identifier |
name | string | Third party name |
category | string | Category |
description | string | null | Description |
statusPageUrl | string | null | Status page URL |
termsOfServiceUrl | string | null | Terms of service URL |
privacyPolicyUrl | string | null | Privacy policy URL |
serviceLevelAgreementUrl | string | null | SLA URL |
dataProcessingAgreementUrl | string | null | DPA URL |
businessAssociateAgreementUrl | string | null | BAA URL |
subprocessorsListUrl | string | null | Subprocessors list URL |
certifications | string[] | List of certifications |
countries | string[] | Country codes where the third party operates |
securityPageUrl | string | null | Security page URL |
trustPageUrl | string | null | Trust page URL |
headquarterAddress | string | null | Headquarters address |
legalName | string | null | Legal entity name |
websiteUrl | string | null | Website URL |
administratorIds | string[] | User IDs of third-party administrators |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |
Sent for user:created, user:updated, and user:deleted events.
{ "id": "usr_01GHI789", "organizationId": "org_01MNO345", "emailAddress": "jane@example.com", "fullName": "Jane Doe", "kind": "EMPLOYEE", "source": "MANUAL", "additionalEmailAddresses": ["jane.doe@example.com"], "position": "Security Engineer", "contractStartDate": "2024-01-15T00:00:00Z", "contractEndDate": null, "createdAt": "2024-01-15T09:00:00Z", "updatedAt": "2026-02-01T11:00:00Z", "membership": { "id": "mem_01ABC123", "role": "ADMIN", "state": "ACTIVE" }}| Field | Type | Description |
|---|---|---|
id | string | User identifier |
organizationId | string | Organization identifier |
emailAddress | string | Primary email address |
fullName | string | Full name |
kind | string | null | User kind (e.g. EMPLOYEE) |
source | string | Profile source: MANUAL, SAML, or SCIM |
additionalEmailAddresses | string[] | Additional email addresses |
position | string | null | Job position |
contractStartDate | string | null | Contract start date (RFC 3339) |
contractEndDate | string | null | Contract end date (RFC 3339) |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |
membership | object | null | Membership details when present |
membership.id | string | Membership identifier |
membership.role | string | Membership role: OWNER, ADMIN, EMPLOYEE, or VIEWER |
membership.state | string | Profile state: PENDING, ACTIVE, or DEACTIVATED |
Obligation
Section titled “Obligation”Sent for obligation:created, obligation:updated, and obligation:deleted events.
{ "id": "obl_01PQR678", "organizationId": "org_01MNO345", "area": "Data Protection", "source": "GDPR", "requirement": "Maintain records of processing activities", "actionsToBeImplemented": "Implement ROPA template and quarterly review", "regulator": "CNIL", "ownerId": "usr_01GHI789", "lastReviewDate": "2026-01-01T00:00:00Z", "dueDate": "2026-06-30T00:00:00Z", "status": "COMPLIANT", "type": "LEGAL", "createdAt": "2024-06-01T10:00:00Z", "updatedAt": "2026-01-15T14:00:00Z"}| Field | Type | Description |
|---|---|---|
id | string | Obligation identifier |
organizationId | string | Organization identifier |
area | string | null | Compliance area |
source | string | null | Regulatory source |
requirement | string | null | Requirement description |
actionsToBeImplemented | string | null | Required actions |
regulator | string | null | Regulatory body |
ownerId | string | Owner user ID |
lastReviewDate | string | null | Last review date (RFC 3339) |
dueDate | string | null | Due date (RFC 3339) |
status | string | NON_COMPLIANT, PARTIALLY_COMPLIANT, or COMPLIANT |
type | string | LEGAL or CONTRACTUAL |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |
Rights request
Section titled “Rights request”Sent for right-request:created, right-request:updated, and right-request:deleted events.
{ "id": "rr_01STU901", "organizationId": "org_01MNO345", "requestType": "ACCESS", "requestState": "TODO", "dataSubject": "Jane Doe", "contact": "jane@example.com", "details": "Please provide a copy of my personal data.", "deadline": "2026-08-15T00:00:00Z", "actionTaken": null, "createdAt": "2026-07-20T10:00:00Z", "updatedAt": "2026-07-20T10:00:00Z"}| Field | Type | Description |
|---|---|---|
id | string | Rights request identifier |
organizationId | string | Organization identifier |
requestType | string | ACCESS, DELETION, RECTIFICATION, PORTABILITY, OBJECTION, or COMPLAINT |
requestState | string | TODO, IN_PROGRESS, DONE, or REJECTED |
dataSubject | string | null | Data subject name |
contact | string | null | Contact details |
details | string | null | Request details |
deadline | string | null | Response deadline (RFC 3339) |
actionTaken | string | null | Actions taken |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |
Document
Section titled “Document”Sent for document:created, document:updated, document:archived, document:unarchived, and document:deleted events.
{ "id": "doc_01VWX234", "organizationId": "org_01MNO345", "title": "Information Security Policy", "documentType": "POLICY", "status": "ACTIVE", "currentPublishedMajor": 1, "currentPublishedMinor": 0, "archivedAt": null, "createdAt": "2026-01-10T09:00:00Z", "updatedAt": "2026-07-02T11:00:00Z"}| Field | Type | Description |
|---|---|---|
id | string | Document identifier |
organizationId | string | Organization identifier |
title | string | Document title |
documentType | string | OTHER, GOVERNANCE, POLICY, PROCEDURE, PLAN, REGISTER, RECORD, REPORT, TEMPLATE, or STATEMENT_OF_APPLICABILITY |
status | string | ACTIVE or ARCHIVED |
currentPublishedMajor | number | null | Current published major version |
currentPublishedMinor | number | null | Current published minor version |
archivedAt | string | null | Archive timestamp (RFC 3339) |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |
Document version
Section titled “Document version”Sent for document-version:* events. Includes the nested parent document.
{ "id": "docv_01YZA567", "documentId": "doc_01VWX234", "title": "Information Security Policy", "major": 1, "minor": 1, "classification": "INTERNAL", "documentType": "POLICY", "changelog": "Updated remote work section", "status": "DRAFT", "publishedAt": null, "createdAt": "2026-07-02T11:00:00Z", "updatedAt": "2026-07-02T11:00:00Z", "document": { "id": "doc_01VWX234", "organizationId": "org_01MNO345", "title": "Information Security Policy", "documentType": "POLICY", "status": "ACTIVE", "currentPublishedMajor": 1, "currentPublishedMinor": 0, "archivedAt": null, "createdAt": "2026-01-10T09:00:00Z", "updatedAt": "2026-07-02T11:00:00Z" }}| Field | Type | Description |
|---|---|---|
id | string | Document version identifier |
documentId | string | Parent document identifier |
title | string | Version title |
major | number | Major version number |
minor | number | Minor version number |
classification | string | PUBLIC, INTERNAL, CONFIDENTIAL, or SECRET |
documentType | string | Same values as document documentType |
changelog | string | Description of changes |
status | string | DRAFT, PENDING_APPROVAL, or PUBLISHED |
publishedAt | string | null | Publication timestamp (RFC 3339) |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |
document | object | Parent document snapshot |
Document version signature
Section titled “Document version signature”Sent for document-version-signature:* events. Includes the nested version (with its document).
{ "id": "docs_01BCD890", "documentVersionId": "docv_01YZA567", "state": "REQUESTED", "signedBy": "usr_01GHI789", "signedAt": null, "requestedAt": "2026-07-02T12:00:00Z", "createdAt": "2026-07-02T12:00:00Z", "updatedAt": "2026-07-02T12:00:00Z", "version": { "id": "docv_01YZA567", "documentId": "doc_01VWX234", "title": "Information Security Policy", "major": 1, "minor": 1, "classification": "INTERNAL", "documentType": "POLICY", "changelog": "Updated remote work section", "status": "DRAFT", "publishedAt": null, "createdAt": "2026-07-02T11:00:00Z", "updatedAt": "2026-07-02T11:00:00Z", "document": { "id": "doc_01VWX234", "organizationId": "org_01MNO345", "title": "Information Security Policy", "documentType": "POLICY", "status": "ACTIVE", "currentPublishedMajor": 1, "currentPublishedMinor": 0, "archivedAt": null, "createdAt": "2026-01-10T09:00:00Z", "updatedAt": "2026-07-02T11:00:00Z" } }}| Field | Type | Description |
|---|---|---|
id | string | Signature identifier |
documentVersionId | string | Document version identifier |
state | string | REQUESTED or SIGNED |
signedBy | string | User ID of the signer |
signedAt | string | null | When the document was signed |
requestedAt | string | When the signature was requested |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |
version | object | Nested document version snapshot |
Document version approval quorum
Section titled “Document version approval quorum”Sent for document-version-approval-quorum:* events. Includes decisions and the nested version.
{ "id": "daq_01EFG123", "versionId": "docv_01YZA567", "status": "PENDING", "createdAt": "2026-07-02T13:00:00Z", "updatedAt": "2026-07-02T13:00:00Z", "decisions": [ { "id": "dad_01HIJ456", "approverId": "usr_01GHI789", "state": "PENDING", "comment": null, "decidedAt": null, "createdAt": "2026-07-02T13:00:00Z", "updatedAt": "2026-07-02T13:00:00Z" } ], "version": { "id": "docv_01YZA567", "documentId": "doc_01VWX234", "title": "Information Security Policy", "major": 1, "minor": 1, "classification": "INTERNAL", "documentType": "POLICY", "changelog": "Updated remote work section", "status": "DRAFT", "publishedAt": null, "createdAt": "2026-07-02T11:00:00Z", "updatedAt": "2026-07-02T11:00:00Z", "document": { "id": "doc_01VWX234", "organizationId": "org_01MNO345", "title": "Information Security Policy", "documentType": "POLICY", "status": "ACTIVE", "currentPublishedMajor": 1, "currentPublishedMinor": 0, "archivedAt": null, "createdAt": "2026-01-10T09:00:00Z", "updatedAt": "2026-07-02T11:00:00Z" } }}| Field | Type | Description |
|---|---|---|
id | string | Approval quorum identifier |
versionId | string | Document version identifier |
status | string | PENDING, APPROVED, REJECTED, or VOIDED |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |
decisions | object[] | One decision object per approver |
version | object | Nested document version snapshot |
Each item in decisions has this shape:
| Field | Type | Description |
|---|---|---|
id | string | Approval decision identifier |
approverId | string | Approver user identifier |
state | string | PENDING, APPROVED, REJECTED, or VOIDED |
comment | string | null | Comment supplied by the approver |
decidedAt | string | null | Decision timestamp (RFC 3339) |
createdAt | string | Creation timestamp (RFC 3339) |
updatedAt | string | Last update timestamp (RFC 3339) |