Configuration
1
Navigate to webhooks
Go to Admin → Integrations → Webhooks in your Libredesk dashboard
2
Create webhook
Click Create Webhook and fill in:
- Name: a name you will recognize later
- URL: where Libredesk sends the payload
- Events: the events to subscribe to
- Secret: optional, used to sign the payload
- Status: enabled or disabled
3
Test webhook
Use the test button to send a sample payload to verify your endpoint is working
Security
Signature verification
When you set a secret, Libredesk signs the payload with HMAC-SHA256 and sends the result in theX-Libredesk-Signature header as sha256=<signature>.
Headers
Every request carries these headers:SSRF protection
Webhook URLs are one of several admin-configured outbound URLs covered by Libredesk’s optional SSRF guard, which is disabled by default. See SSRF protection for details and how to enable it.Events
Conversation events
conversation.created
conversation.created
Triggered when a new conversation is created.
conversation.status_changed
conversation.status_changed
Triggered when a conversation’s status is updated.
conversation.assigned
conversation.assigned
Triggered when a conversation is assigned to a user.
conversation.unassigned
conversation.unassigned
Triggered when a conversation is unassigned from a user.
Message events
message.created
message.created
Triggered when a new message is created in a conversation.
message.updated
message.updated
Triggered when an existing message is updated.
Delivery and retries
- Deliveries run in a background worker pool.
- The request timeout is set in
config.toml. - Failed deliveries are not retried.
- Events can be dropped when the delivery queue is full. The queue size is set in
config.toml.
Testing
Both of these give you a throwaway URL that shows the payloads Libredesk sends:Webhook.site
Generate a temporary URL to inspect webhook payloads
RequestBin
Collect and inspect HTTP requests

