Skip to main content

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

GET/v1/webhooks

You can also query webhooks via OData:

GET/v1/odata/Webhook

Create a Webhook

Organization webhook:

POST/v1/webhooks

Person webhook:

POST/v1/webhooks

With custom headers:

POST/v1/webhooks

Delete a Webhook

DELETE/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.

note

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:

  1. Take the entire webhook body as a stringified JSON
  2. SHA-512 encode it using the webhook secret (found on the webhook management page) — this produces a hexadecimal string
  3. Convert the hex string to Base64
warning

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.

Deprecated

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 TypeDescription
Relation.OrganizationCompany created / updated / deleted
Relation.PersonPerson created / updated / deleted
Relationship.Organization.CustomerCustomer relationship changes
Activity.SalesOpportunityOpportunity changes
Activity.InvoiceInvoice changes
Activity.TaskTask changes
Activity.SupportTicketSupport ticket changes

Filtering Examples

GET/v1/odata/Webhook?$top={top}
GET/v1/odata/Webhook?$filter=contains(_Name, '{_Name}')&$top={top}
GET/v1/odata/Webhook?$filter=IsDeactivated eq {IsDeactivated}&$top={top}