How to set up webhooks with Jobber on Tenklo
Learn how to receive real-time Jobber events in your app using Tenklo webhooks
This guide shows you how to receive real-time Jobber events in Tenklo by registering a webhook in your Jobber app settings.
How it works
- When a connection is created, Tenklo automatically fetches the connected Jobber account's ID and stores it for webhook routing — no setup needed on your end.
- Jobber sends a signed POST request to your Tenklo webhook URL when a subscribed event occurs.
- Tenklo verifies the signature, matches the payload's
accountIdto the correct connection, and forwards the event to your app.
Setup
1. Get your Tenklo webhook URL
In the Tenklo dashboard, open your Jobber integration and copy the Webhook URL.
2. Register the webhook in Jobber
- Go to Manage Apps and open your app.
- Add a webhook pointing to your Tenklo webhook URL, and select the topics you want to subscribe to.
There's no separate webhook secret to configure — Jobber signs webhook payloads with your app's OAuth Client Secret, which Tenklo already has from the integration setup.
3. Handle forwarded webhooks
Every request from Jobber includes an X-Jobber-Hmac-SHA256 header — a Base64-encoded HMAC-SHA256 of the raw request body, signed with your app's OAuth client secret. Tenklo verifies this automatically before forwarding the event. Example payload:
{
"data": {
"webHookEvent": {
"topic": "CLIENT_CREATE",
"appId": "3ef22a50-072d-430c-a78f-b7646657560b",
"accountId": "MQ==",
"itemId": "MQ==",
"occurredAt": "2021-08-12T16:31:36-06:00"
}
}
}Jobber provides at-least-once delivery. Your webhook handler should be idempotent and respond within 1 second — process payloads asynchronously to stay within this limit.
Handle the webhook
Once routed to a connection, you have two options:
- Forward it to your app — Tenklo verifies the signature and forwards the event to your webhook URL with connection attribution. See External webhook forwarding.
- Process it in a sync — run a sync when the webhook arrives using
webhookSubscriptionsandonWebhookin a sync script. See Real-time syncs.
Supported topics
Webhooks fire for any topic configured in your Jobber app. Examples:
| Topic | Description |
|---|---|
CLIENT_CREATE | A new client was created |
CLIENT_UPDATE | A client was updated |
CLIENT_DESTROY | A client was deleted |
For the full list, see WebHookTopicEnum in the Jobber GraphQL schema.