Webhooks are available on the Enterprise plan. See pricing for details.
Setting up a webhook
- Log in to your DroneBundle dashboard
- Click Create Webhook
- Give it a name (e.g., “n8n Sync”, “HubSpot Integration”)
- Enter your HTTPS endpoint URL
- Select the events you want to subscribe to
- Copy the signing secret and store it somewhere safe
Events
Subscribe to any combination of the following events:| Event | Triggered when |
|---|---|
project.created | A new project is created |
project.updated | A project is modified |
project.deleted | A project is deleted |
job.created | A new job is created |
job.updated | A job is modified |
job.deleted | A job is deleted |
job_type.created | A new job type is created |
job_type.updated | A job type is modified |
job_type.deleted | A job type is deleted |
Payload format
Every webhook delivery sends aPOST request to your endpoint with a JSON body:
data contains only the resource ID:
Headers
Each delivery includes the following headers:| Header | Description |
|---|---|
X-DroneBundle-Signature | HMAC-SHA256 signature for verifying authenticity (e.g., sha256=abc123...) |
X-DroneBundle-Event | The event type (e.g., project.created) |
X-DroneBundle-Delivery | Unique delivery ID for idempotency tracking |
User-Agent | DroneBundle-Webhook/1.0 |
Content-Type | application/json |
Verifying signatures
Every delivery is signed with your webhook’s secret using HMAC-SHA256. Always verify the signature before processing the payload. See Verify Signatures for code examples in Node.js, Python, Java, C#, PHP, Go, and Rust.Delivery behavior
- Your endpoint must respond with a
2xxstatus code within 10 seconds - Non-
2xxresponses or timeouts are treated as failures - After 10 consecutive failures, the webhook is automatically paused
- Reactivating a paused webhook from the dashboard resets the failure counter
- Delivery logs are available in the dashboard for 30 days
Retry policy
If a delivery fails, it is retried up to 2 more times (3 total attempts) with a ~4 minute interval between each attempt. If all attempts fail, the event is dropped and the failure counter is incremented.Deliveries may arrive more than once. Use the
delivery_id field to deduplicate events on your end.