How webhooks work
- You register an HTTPS endpoint in Plane.
- You select which events you want to receive.
- When a matching event occurs, Plane sends a signed HTTP POST to your endpoint.
- Your server verifies the signature and processes the event.
Configure your endpoint
Navigate to webhook settings
In your Plane dashboard, go to Developers > Webhooks. You need admin access.
Add an endpoint
Click Add Endpoint and enter the URL where you want to receive events. This must be a publicly accessible HTTPS URL.
Select events
Choose which event types to subscribe to. You can start with all events or pick specific types like
payment.created or worker.updated.Handle incoming webhooks
When an event fires, Plane sends a POST request with a JSON payload:Example payload
Verify the signature
Every webhook includes headers for signature verification. Always verify signatures before processing events in production.Best practices
Respond quickly
Respond quickly
Return a
2xx status within 30 seconds. If your processing takes longer, acknowledge receipt immediately and handle the event asynchronously with a queue or background job.Handle duplicates
Handle duplicates
Webhooks may be delivered more than once. Use the
svix-id header to deduplicate events and make your processing idempotent.Test in a sandbox
Test in a sandbox
Configure webhooks inside a sandbox first. Sandbox webhooks deliver events for test activity only, so you can validate your handler without affecting live data.
Monitor delivery
Plane’s webhook dashboard (powered by Svix) shows you:- All sent webhooks with payloads and response codes
- Failed deliveries with retry status
- Endpoint health and success rates
Next steps
Events reference
See every event type Plane can send.
Webhooks reference
Full webhook documentation including retry behavior and payload structure.