Every ticket event, delivered to a URL you choose.
NiroHelp’s event system turns ticket activity into a canonical feed — ticket.created, ticket.replied, ticket.assigned, ticket.overdue and more — and an outgoing webhook is the simplest way to get that feed anywhere: Make, n8n, a serverless function, or a script you wrote yourself.
Why a webhook
One connection, any destination
No custom code required
Add an HTTPS endpoint under NiroHelp → Integrations and pick which events it should receive — one endpoint, or as many as you need.
Retried on a real backoff
A failed delivery retries up to 5 times — after 1, 5 and 30 minutes, then 2 and 12 hours — before it is logged as failed. Sending never blocks a ticket being saved.
HMAC-signed, every request
The X-NiroHelp-Signature header carries an HMAC-SHA256 of the timestamp and body under your endpoint’s secret, so you can verify a payload really came from your site.
A circuit breaker, not a silent failure
5 consecutive failures disable the endpoint automatically and flag it in wp-admin, instead of retrying a dead URL forever.
Coverage
The events you can subscribe to
The full canonical feed — subscribe to specific events, or to “All events”, which sends everything except agent-only private notes unless you name those too.
- ticket.created
- A ticket was submitted, created in wp-admin, or imported.
- ticket.updated
- Urgency, product, reason, order or a custom field changed.
- ticket.replied
- The customer, an agent or the AI replied.
- ticket.customer_replied
- The customer specifically replied.
- ticket.assigned
- A ticket was assigned, reassigned or unassigned.
- ticket.status_changed
- A ticket moved from one status to another.
- ticket.resolved
- A ticket was marked resolved.
- ticket.overdue
- A ticket has waited on an agent longer than the overdue threshold.
- ticket.sentiment_negative
- A ticket’s sentiment turned negative.
- ticket.note_added
- An agent-only private note was added — private, so it is never included in “All events”.
- customer.created
- A customer account was created.
- ai.answered
- The AI auto-responder replied to a ticket.
- ai.escalated
- The AI held an answer back, or could not answer — a person is needed.
The details
Everything Webhooks ships with.
- Delivery
- Queued and asynchronous, with up to 5 retries on an exponential backoff (1m, 5m, 30m, 2h, 12h). Nothing about sending a webhook blocks a ticket being saved.
- Payload
- A JSON POST body per event — id, event name, schema version, timestamp, actor, source, and the ticket or comment it concerns, capped at 64KB with the comment body trimmed first.
- Signature
- X-NiroHelp-Signature: t=<unix>,v1=<hex> — HMAC-SHA256 of "{timestamp}.{body}" under a per-endpoint secret prefixed whsec_, shown once at creation.
- URL rules
- HTTPS only (plain HTTP is refused outside WP_DEBUG); a URL that resolves to this server or a private network is rejected.
- Reliability
- A circuit breaker disables an endpoint after 5 consecutive failures and notices it in wp-admin until an administrator re-enables it.
- Delivery log
- Every attempt — status code, timing, response excerpt — is kept for a configurable window (14 days by default, up to 90).
- Where to configure
- NiroHelp → Integrations → Webhooks, inside the admin dashboard.
Common questions
No — outgoing webhooks are part of the free core plugin, the same as ticketing.
Yes — each endpoint picks its own subset from the full event list when you create it, or subscribes to all of them at once.
Delivery retries automatically over roughly 15 hours (1m, 5m, 30m, 2h, then 12h later). If it still fails, that attempt is logged and, after 5 consecutive failures, the endpoint is switched off and flagged for you to fix.
Recompute the HMAC-SHA256 of the timestamp and raw body using your endpoint’s secret, and compare it to the v1 value in the X-NiroHelp-Signature header.
Ready to set up Webhooks?
It’s part of the free core plugin — install NiroHelp and turn it on under Integrations.