Webhooks and Integrations
Webhooks let Hi.Events notify your external systems when something happens — like a new order, a check-in, or a ticket cancellation.
How to Get There
Webhooks can be configured at two levels:
- Event level — open your event, click Webhooks in the left sidebar (under Integrations)
- Organizer level — from the organizer dashboard, click Webhooks in the left sidebar (under Integrations)
An organizer-level webhook fires for every event belonging to that organizer. Event-level webhooks fire only for that one event, and they can’t subscribe to the event lifecycle types (Event Created, Event Updated, Event Archived) — those are only available on organizer-level webhooks.
Creating a Webhook
- Click Add Webhook
- Enter a URL — the endpoint that will receive the webhook payload
- Select which Event Types should trigger the webhook (e.g. order completed, attendee checked in)
- Set the Status — Enabled (sends notifications) or Paused (doesn’t)
- Save
How It Works
When a matching event occurs, Hi.Events sends a POST request to your URL with a JSON payload:
{
"event_type": "order.created",
"event_sent_at": "2025-01-01T12:00:00+00:00",
"payload": { }
}payload contains a single resource for whatever triggered the webhook. It is not a bundle of everything related to the event — for example an order.* payload includes the order with its items and attendees, but checkin.created only carries the check-in and its attendee, and product.* only carries the product.
Verifying Webhooks
Each webhook gets its own signing secret when you create it. Every request Hi.Events sends is signed with that secret and the signature is sent in the Signature header. Requests also carry an X-Webhook-Source: Hi.Events header.
Recompute the signature from the raw request body and your secret, and compare it with the header before trusting a payload.
Delivery, Retries and Logs
- Each delivery attempt times out after 3 seconds
- Failed deliveries are retried up to 3 times with an exponential backoff
The webhooks table shows the Last Response code and Last Triggered time for each webhook. For the full delivery history, open the ⋮ menu and choose View logs.
Use Cases
- CRM integration — automatically add new attendees to your CRM
- Slack notifications — post a message when a ticket is sold
- Analytics — feed real-time sales data to a custom dashboard
- Fulfillment — trigger shipping or preparation when merchandise is purchased
- Zapier / Make — connect to thousands of apps through automation platforms
Tips
- Test your webhook URL with a tool like webhook.site before going live
- Respond quickly — your endpoint has 3 seconds before the attempt is treated as failed. Queue slow work instead of doing it inline
- Always verify the
Signatureheader before acting on a payload - Use event-level webhooks for event-specific integrations and organizer-level for cross-event workflows