jump to content

Webhook Event Types

Reference for every the platform webhook event type and its data payload shape, covering third parties, users, obligations, and the document lifecycle.

View as Markdown

This reference maps each event name to the exact object delivered in data. Events cover third parties, users, obligations, rights requests, and the complete document lifecycle. Frameworks, controls, measures, risks, access reviews, devices, and cookie consent do not emit webhook events — use GraphQL, the CLI, MCP, or n8n for those domains. See What webhooks cover.

Webhook bodies and the X-Probo-Webhook-Event header use lowercase wire names such as third-party:created. The console API, CLI, and n8n node use uppercase enum names such as THIRD_PARTY_CREATED.

Every delivery wraps the resource payload in a root envelope (eventId, subscriptionId, organizationId, eventType, createdAt, data, and optional updatedFrom) and sets matching HTTP headers. See Webhooks Overview for the full header and root-field reference. The sections below describe only the nested data / updatedFrom resource shapes.

EventDescription
third-party:createdA third party was created
third-party:updatedA third party was updated
third-party:deletedA third party was deleted
EventDescription
user:createdA user was created
user:updatedA user was updated
user:deletedA user was deleted
EventDescription
obligation:createdAn obligation was created
obligation:updatedAn obligation was updated
obligation:deletedAn obligation was deleted
EventDescription
right-request:createdA data subject rights request was created
right-request:updatedA data subject rights request was updated
right-request:deletedA data subject rights request was deleted
EventDescription
document:createdA document was created
document:updatedA document was updated
document:archivedA document was archived
document:unarchivedA document was unarchived
document:deletedA document was deleted
EventDescription
document-version:createdA document version was created
document-version:updatedA document version was updated
document-version:publishedA document version was published
document-version:rejectedA document version was rejected
document-version:deletedA document version was deleted
EventDescription
document-version-signature:requestedA signature was requested
document-version-signature:signedA signature was completed
document-version-signature:cancelledA signature request was cancelled
EventDescription
document-version-approval-quorum:requestedAn approval quorum was requested
document-version-approval-quorum:updatedAn approval quorum was updated
document-version-approval-quorum:approvedAn approval quorum was approved
document-version-approval-quorum:rejectedAn approval quorum was rejected
document-version-approval-quorum:voidedAn approval quorum was voided

For any *:updated event, the payload includes:

  • data — the entity after the change
  • updatedFrom — 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.

  • 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, or PENDING.
  • Arrays are present even when empty.
  • Receivers should ignore fields they do not recognize so additive schema changes remain compatible.

The data field (and updatedFrom when present) contains the resource that triggered the event.

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"
}
FieldTypeDescription
idstringThird party identifier
namestringThird party name
categorystringCategory
descriptionstring | nullDescription
statusPageUrlstring | nullStatus page URL
termsOfServiceUrlstring | nullTerms of service URL
privacyPolicyUrlstring | nullPrivacy policy URL
serviceLevelAgreementUrlstring | nullSLA URL
dataProcessingAgreementUrlstring | nullDPA URL
businessAssociateAgreementUrlstring | nullBAA URL
subprocessorsListUrlstring | nullSubprocessors list URL
certificationsstring[]List of certifications
countriesstring[]Country codes where the third party operates
securityPageUrlstring | nullSecurity page URL
trustPageUrlstring | nullTrust page URL
headquarterAddressstring | nullHeadquarters address
legalNamestring | nullLegal entity name
websiteUrlstring | nullWebsite URL
administratorIdsstring[]User IDs of third-party administrators
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast 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"
  }
}
FieldTypeDescription
idstringUser identifier
organizationIdstringOrganization identifier
emailAddressstringPrimary email address
fullNamestringFull name
kindstring | nullUser kind (e.g. EMPLOYEE)
sourcestringProfile source (e.g. MANUAL)
additionalEmailAddressesstring[]Additional email addresses
positionstring | nullJob position
contractStartDatestring | nullContract start date (RFC 3339)
contractEndDatestring | nullContract end date (RFC 3339)
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast update timestamp (RFC 3339)
membershipobject | nullMembership details when present
membership.idstringMembership identifier
membership.rolestringMembership role
membership.statestringProfile/membership state (e.g. ACTIVE)

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": "IN_PROGRESS",
  "type": "LEGAL",
  "createdAt": "2024-06-01T10:00:00Z",
  "updatedAt": "2026-01-15T14:00:00Z"
}
FieldTypeDescription
idstringObligation identifier
organizationIdstringOrganization identifier
areastring | nullCompliance area
sourcestring | nullRegulatory source
requirementstring | nullRequirement description
actionsToBeImplementedstring | nullRequired actions
regulatorstring | nullRegulatory body
ownerIdstringOwner user ID
lastReviewDatestring | nullLast review date (RFC 3339)
dueDatestring | nullDue date (RFC 3339)
statusstringObligation status
typestringObligation type
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast update timestamp (RFC 3339)

Sent for right-request:created, right-request:updated, and right-request:deleted events.

{
  "id": "rr_01STU901",
  "organizationId": "org_01MNO345",
  "requestType": "ACCESS",
  "requestState": "OPEN",
  "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"
}
FieldTypeDescription
idstringRights request identifier
organizationIdstringOrganization identifier
requestTypestringType of request (e.g. ACCESS)
requestStatestringCurrent state (e.g. OPEN)
dataSubjectstring | nullData subject name
contactstring | nullContact details
detailsstring | nullRequest details
deadlinestring | nullResponse deadline (RFC 3339)
actionTakenstring | nullActions taken
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast update timestamp (RFC 3339)

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",
  "compliancePortalVisibility": "PRIVATE",
  "currentPublishedMajor": 1,
  "currentPublishedMinor": 0,
  "archivedAt": null,
  "createdAt": "2026-01-10T09:00:00Z",
  "updatedAt": "2026-07-02T11:00:00Z"
}
FieldTypeDescription
idstringDocument identifier
organizationIdstringOrganization identifier
titlestringDocument title
documentTypestringDocument type
statusstringDocument status
compliancePortalVisibilitystringVisibility on the compliance portal
currentPublishedMajornumber | nullCurrent published major version
currentPublishedMinornumber | nullCurrent published minor version
archivedAtstring | nullArchive timestamp (RFC 3339)
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast update timestamp (RFC 3339)

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",
    "compliancePortalVisibility": "PRIVATE",
    "currentPublishedMajor": 1,
    "currentPublishedMinor": 0,
    "archivedAt": null,
    "createdAt": "2026-01-10T09:00:00Z",
    "updatedAt": "2026-07-02T11:00:00Z"
  }
}
FieldTypeDescription
idstringDocument version identifier
documentIdstringParent document identifier
titlestringVersion title
majornumberMajor version number
minornumberMinor version number
classificationstringDocument classification enum
documentTypestringDocument type enum
changelogstringDescription of changes
statusstringVersion status enum
publishedAtstring | nullPublication timestamp (RFC 3339)
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast update timestamp (RFC 3339)
documentobjectParent document snapshot

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",
      "compliancePortalVisibility": "PRIVATE",
      "currentPublishedMajor": 1,
      "currentPublishedMinor": 0,
      "archivedAt": null,
      "createdAt": "2026-01-10T09:00:00Z",
      "updatedAt": "2026-07-02T11:00:00Z"
    }
  }
}
FieldTypeDescription
idstringSignature identifier
documentVersionIdstringDocument version identifier
statestringSignature state
signedBystringUser ID of the signer
signedAtstring | nullWhen the document was signed
requestedAtstringWhen the signature was requested
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast update timestamp (RFC 3339)
versionobjectNested document version snapshot

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",
      "compliancePortalVisibility": "PRIVATE",
      "currentPublishedMajor": 1,
      "currentPublishedMinor": 0,
      "archivedAt": null,
      "createdAt": "2026-01-10T09:00:00Z",
      "updatedAt": "2026-07-02T11:00:00Z"
    }
  }
}
FieldTypeDescription
idstringApproval quorum identifier
versionIdstringDocument version identifier
statusstringQuorum status
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast update timestamp (RFC 3339)
decisionsobject[]One decision object per approver
versionobjectNested document version snapshot

Each item in decisions has this shape:

FieldTypeDescription
idstringApproval decision identifier
approverIdstringApprover user identifier
statestringDecision state enum
commentstring | nullComment supplied by the approver
decidedAtstring | nullDecision timestamp (RFC 3339)
createdAtstringCreation timestamp (RFC 3339)
updatedAtstringLast update timestamp (RFC 3339)

Ultima actualizare: