Webhooks
Webhooks allow you to receive real-time HTTP notifications when records are created, updated, or deleted in Tribe CRM. Instead of polling the API, Tribe CRM will push a payload to your endpoint as events occur.
Creating a Webhook
Webhooks can be created through the Tribe CRM configuration page at app.tribecrm.nl/v2/configuration/api.
To create a new webhook, provide:
- The webhook endpoint HTTPS URL
- The entity type to bind to this webhook (e.g.
Relation.Organization)
After creation, additional filters can be added to limit which events trigger the webhook.
There is no limit to the number of webhooks in an environment.
Webhook API
Webhooks can be managed programmatically via the REST API at /v1/webhooks.
List Webhooks
/v1/webhooksYou can also query webhooks via OData:
/v1/odata/WebhookCreate a Webhook
Organization webhook:
/v1/webhooksPerson webhook:
/v1/webhooksWith custom headers:
/v1/webhooksDelete a Webhook
/v1/webhooks/{id}Webhook Payload
The structure of a webhook message depends on the entity type and the event kind. Specific payload schemas are available on the Webhooks tab of the configuration API page.
The base webhook payload:
{
"webhookId": "string",
"payload": {
// one of:
// EntityCreationMutation
// EntityUpdateMutation
// EntityDeletionMutation
// RelationshipCreationMutation
// RelationshipUpdateMutation
// RelationshipDeletionMutation
}
}
The entityId or relationshipId in the payload are most commonly used to retrieve the full record via a follow-up API call.
Tribe CRM does not support customizing the webhook payload.
Signature Verification
Each webhook event includes a signature in the message header. Use it to verify the authenticity of incoming requests.
The signature is generated as follows:
- Take the entire webhook body as a stringified JSON
- SHA-512 encode it using the webhook secret (found on the webhook management page) — this produces a hexadecimal string
- Convert the hex string to Base64
Use a hex-to-Base64 converter, not a text-to-Base64 converter — they produce different outputs.
To validate: compare the generated signature with the value in the webhook message header.
A signature field is also included in the webhook body, but it is deprecated and will be removed in the near future. Use the header signature instead.
Authentication
A webhook can use basic authentication to connect with your endpoint. Username and password configuration must be requested via Tribe Support — no UI is currently available for this setting.
Logging
Webhooks appear in the event log when they are pending or failed. Logs are deleted after successful delivery.
When a webhook fails, it is retried 5 times with an increasing backoff interval. After 5 failed attempts, automatic retries stop. A manual retry is available from the log page.
Failure Threshold
If a webhook endpoint keeps failing, the webhook will be automatically deactivated. The threshold is:
- 100 failed events within 24 hours
The deactivation is shown on the webhook management page. You can reactivate the webhook after fixing the endpoint issue.
Supported Entity Types
Any entity that has an OData EntitySet can be bound to a webhook. Common examples:
| Entity Type | Description |
|---|---|
Relation.Organization | Company created / updated / deleted |
Relation.Person | Person created / updated / deleted |
Relationship.Organization.Customer | Customer relationship changes |
Activity.SalesOpportunity | Opportunity changes |
Activity.Invoice | Invoice changes |
Activity.Task | Task changes |
Activity.SupportTicket | Support ticket changes |
Filtering Examples
/v1/odata/Webhook?$top={top}/v1/odata/Webhook?$filter=contains(_Name, '{_Name}')&$top={top}/v1/odata/Webhook?$filter=IsDeactivated eq {IsDeactivated}&$top={top}