QUE Webhooks
With QUE, you can set up webhooks to broadcast your QUE campaign's job additions and changes to other apps, to use in a broader production workflow.
What is a webhook?
Also called a "one-way API" or "reverse API", a webhook is a web request sent from a provider (us) to a consumer (you), usually triggered by some event on the provider's side. For example, when you register a webhook with Dataclay's QUE, you can choose to receive a webhook when a job has its render-status set to done. Then after you set up a server or no-code solution to consume this webhook, you can process it any way you'd like; maybe your workflow sends a Slack message or an aggregated email every hour.
Instead of continuously polling our API, webhooks push data to your application as events happen, making your integrations more efficient and responsive.
Register a webhook
-
Navigate to que.dataclay.com and click Integrations.
-
In the QUE Webhook Service section, click New Webhook and fill in the fields to register your webhook event and specific triggers for the event.
- Add any additional job fields you'd like to include in the webhook's data payload.
- Be sure your Endpoint URL is correct and active to receive data.
-
Click Register to save.
TIP You are able to send various events to the same URL endpoint, as well as the same event to multiple different URL endpoints.
QUE webhook events reference
Webhooks can be configured to trigger on three QUE events:
-
Job creation
-
Job render-status update
-
Job stream-status update
QUE event: job created
QUE event: job render-status changed
QUE event: job stream-status changed
Configuring and troubleshooting webhooks
This is not going to be an exhaustive guide on how to set up a server to consume webhooks.We have a first-party Zapier integration built into the QUE Dash, but you are not limited to building your webhooks workflow on Zapier's platform. See our Example webhook receivers below for more resources.
Response
We expect a successful status code (200) to be returned. No body is expected.
Timeout and error policy
- Our service allows 5 seconds of processing time once we reach your servers.
- Any failed attempts are retried once, approximately 30 seconds apart.
- All failed webhooks are placed in a new collection, and you can force retrying them from the webhook admin in the QUE Dash.
Force resend of failed webhooks
From the webhook admin in the QUE Dash, locate the Actions column, then click Resend Failed Events for the webhook you'd like resent.
All failed webhooks for that specific event and endpoint will be queued to retry in the next 1-2 minutes.
Delete a webhook
From the webhook admin in the QUE Dash, locate the trash can icon in the Actions column for the webhook you'd like to unregister. Deleting the webhook will also clear any failed messages that were triggered by this specific webhook.
Large payloads
If your webhook would return data over 256 KB, it will be split into multiple webhooks. This typically only happens for the Job Created webhook, when uploading job data via the QUE dashboard.
Best practices
Slow, unstable, or incorrectly configured receivers may be disabled automatically. Invalid HTTP responses are treated as failed requests.
To optimize your webhook receivers:
- Respond quickly with a 200 status:
- Avoid processing webhooks in the same request to avoid timeouts (offload to another service, for example).
- Use a queue to handle webhooks after receiving them.
- Handle potential duplicate events:
- Prepare for duplicate events if a webhook times out (use the provided webhookId in the payload to keep track).
- Ensure your endpoint is consistently fast and stable.
- Events are not guaranteed to be in order, so plan accordingly.
- Minimize response headers and body:
- Limit the number and size of returned headers.
- Consider responding with an empty body.
- . Use appropriate status codes:
- Return client error status responses (4xx range) only for misconfigured webhooks.
- Avoid 500 server error responses for handled events.
Example webhook receivers
-
ngrok (local)
-
Zapier (no-code)
-
Your existing API server
-
webhook.site (free, online)