Features
Webhooks
Queuety can send HTTP POST notifications to external URLs when specific events occur. Use webhooks to integrate with monitoring systems, Slack, or custom dashboards.
Supported events
| Event | Fired when |
|---|---|
job.completed | A job finishes successfully |
job.failed | A job throws an exception |
job.buried | A job exhausts all retry attempts |
workflow.failed | A workflow step fails permanently |
Registering webhooks
Via PHP:
$id = Queuety::webhook_notifier()->register( 'job.buried', 'https://hooks.slack.com/services/...' );Via CLI:
wp queuety webhook add job.buried https://hooks.slack.com/services/...
wp queuety webhook add workflow.failed https://monitoring.example.com/queuetyListing webhooks
$webhooks = Queuety::webhook_notifier()->list();wp queuety webhook listRemoving webhooks
Queuety::webhook_notifier()->remove( $webhook_id );wp queuety webhook remove 3Payload format
When an event fires, Queuety sends an HTTP POST request with a JSON body. The payload always has the shape:
{
"event": "job.buried",
"data": {
"job_id": 42,
"handler": "send_email",
"queue": "emails",
"error_message": "Connection timed out"
},
"timestamp": "2025-03-15T14:30:00Z"
}For workflow failures:
{
"event": "workflow.failed",
"data": {
"workflow_id": 7,
"job_id": 42,
"handler": "CallLlmStep",
"error_message": "API rate limit exceeded"
},
"timestamp": "2025-03-15T14:30:00Z"
}Webhook delivery is fire-and-forget. Queuety uses a very short timeout and ignores delivery failures so workers are not blocked by slow or unavailable webhook endpoints.
Use cases
- Slack alerts. Get notified when jobs are buried or workflows fail.
- PagerDuty integration. Trigger incidents for critical job failures.
- Custom dashboards. Stream events to your own monitoring infrastructure.
- Audit trail. Forward events to an external logging service.