Deskwoot events sent to your own URL the moment they happen
Webhooks send events from Deskwoot to a URL you choose the moment they happen: a new conversation, a new message, an assignment, a resolved conversation, a contact change or a CSAT rating. Each one arrives as JSON in a signed POST request, so your own systems react to events instead of asking the API for changes again and again.
Overview
Your support data often has to reach another system: a CRM that should hear about every new contact, a database that counts resolved conversations, your own automation that runs when a customer rates a chat. Webhooks do that without code that keeps checking Deskwoot for changes. Deskwoot calls your URL as soon as something happens.
You pick the events for each webhook: conversation created, updated, assigned and resolved, message created, contact created and updated, and CSAT submitted. On the Enterprise plan with tickets switched on, ticket created, updated, assigned and resolved are there too. A webhook with no event ticked gets every event except the ticket events, which go only to webhooks that pick them. For several URLs, create one webhook for each, with its own events.
Each event is a POST request with a JSON body that holds event (the name of the event), data (the data of the event, described in the API docs), timestamp and accountId. The header X-Deskwoot-Event names the event, and X-Deskwoot-Signature carries sha256= and the HMAC SHA256 of the raw body, signed with the webhook's secret.
Deskwoot sends each event right away, without a queue. Your endpoint has 10 seconds to answer with a 2xx status. If the request fails, gets an error or takes longer, Deskwoot tries once more after 5 seconds, and after that the event is dropped. Rarely an event arrives twice. The body has no event ID, but a repeat is an exact copy with the same timestamp, so use the event name, the ID of the object in data and the timestamp together to skip what you already processed. Deskwoot only sends to public HTTPS addresses.
A webhook only sends data out of Deskwoot. To answer customers from your own server, use a Custom Webhook bot under Settings → Bots (Startup plan and higher). To assign, label or resolve conversations or update contacts from your own code, use the REST API, which needs a paid Enterprise plan. Webhooks need the Startup plan or higher, and the 7 day trial includes them. On the Free plan, webhooks you made earlier stay listed but send nothing until your plan includes webhooks again.
What you get with the Webhooks integration
Events as they happen
New conversations, messages, assignments, resolved conversations, contact changes and CSAT ratings reach your URL right away, without polling.
Signed JSON
Every request is a POST with a JSON body, the event name in X-Deskwoot-Event and an HMAC SHA256 signature in X-Deskwoot-Signature.
Only the events you need
Pick the events for each webhook, and send different events to different URLs with one webhook each.
Pause without deleting
A switch turns a webhook off and on again, and Edit changes its URL or its events.
Getting started
Connect Webhooks in 3 steps.
- In Deskwoot, open Settings → Webhooks and click Add Webhook. Only administrators see this page.
- Enter a public HTTPS address under Endpoint URL and tick the events you want under Subscribe to Events.
- Click Create Webhook. From then on Deskwoot sends a POST request to your URL each time one of those events happens.
