By implementing the Webhook Notifications API, you will be able to receive notifications about events happened within the Witboost platform.
The Webhook Notifications API is helpful for integrating with third-party messaging systems like Microsoft Teams, Slack, Discord etc.
Your configured webhook URL will receive a POST request with a JSON payload representing a notification.
The body field of the notification payload is a free-form object whose structure depends on the kind of the notification.
Each notification kind defines its own body schema.
The payload includes a messages array containing pre-built messages, each targeted to a specific audience (recipient type).
Witboost provides a suggested title and message for each audience, but you are free to ignore them and compose your own custom message using the fields available in the notification body.
The responsibility of your webhook service is to deliver a message to each recipient, treating them according to their recipient type. This means the service should send personalized messages based on the audience (e.g. a system owner may receive a different message than the requester).
Each message includes a recipientType (legacy) and recipientType_v2 (new) field indicating the target audience.
The recipientType_v2 field was introduced to avoid breaking changes for new recipient types from team roles and glossary renaming.
Note: in the legacy field, recipient-type:project-data-access-manager is mapped to recipient-type:system-owner for backward compatibility.
By default, each recipient object contains only the userRef field (the user entity reference as known by witboost).
However, recipients can be enriched with additional user entity fields (e.g. metadata.name, spec.email, kind)
by configuring the notifications.webhooks.userEntityFields property in app-config.
When configured, the specified fields are resolved from the user entity catalog and attached to each recipient object.
If a user reference or a configured field is invalid or empty, it will be filled with a null value.
See Forwarding user entity fields for details.
The complete list of notification kinds and their respective body schemas can be consulted either in the Notifications section of the documentation or directly from Witboost > Administration Panel > Developer Tools > Notification Schemas.
Endpoint invoked by Witboost to deliver a notification to your webhook.
The webhook notification payload containing the notification kind, body, messages for each audience, and metadata.
| kind required | string The notification kind identifier (e.g. |
| sender required | string The sender of the notification. |
required | object Free-form object whose structure depends on the notification |
required | Array of objects (NotificationMessage) List of pre-built messages, each targeted to a specific audience (recipient type).
Witboost provides a suggested title and message for each audience, but you are free to ignore them
and compose your own custom message using the fields available in the notification The responsibility of the webhook service is to deliver a message to each recipient, treating them according to their recipient type. This means the service should send personalized messages based on the audience (e.g. a system owner may receive a different message than the requester). |
required | object (NotificationMetadata) |
{- "kind": "notification:access-control-request-failed",
- "sender": "platform:witboost",
- "body": {
- "verb": "ReadData",
- "requestStatus": "FAILED",
- "requester": {
- "userRef": "user:default/john.smith_company.com",
- "displayName": "John Smith"
}, - "requestedResource": {
- "owner": {
- "userRef": "user:default/jane.doe_company.com",
- "displayName": "Jane Doe"
}, - "consumableInterface": {
- "urn": "urn:dmb:cmp:finance:revenue:0:api",
- "displayName": "Revenue API",
- "type": "outputport"
}, - "parentSystem": {
- "urn": "urn:dmb:dp:finance:revenue:0",
- "displayName": "Revenue Data Product",
- "version": "0.1.0",
- "domain": "finance",
- "relativeLink": "/catalog/default/system/finance.revenue.0"
}, - "environment": "production"
}, - "requestedUsers": [
- "user:default/john.smith_company.com"
], - "requestedAt": "2026-05-09T10:30:00Z",
- "displayFields": { }
}, - "messages": [
- {
- "recipientType": "recipient-type:system-owner",
- "recipientType_v2": "recipient-type:system-owner",
- "recipients": [
- {
- "userRef": "user:default/jane.doe_company.com"
}
], - "title": "Access control request failed",
- "message": "The access request by John Smith for ReadData on Revenue API has failed."
}, - {
- "recipientType": "recipient-type:access-control-requester",
- "recipientType_v2": "recipient-type:access-control-requester",
- "recipients": [
- {
- "userRef": "user:default/john.smith_company.com"
}
], - "title": "Your access request has failed",
- "message": "Your request for ReadData access on Revenue API has failed. Please contact the system owner."
}
], - "metadata": {
- "eventId": "evt-abc123-def456",
- "createdAt": "2026-05-09T10:30:05Z"
}
}