Skip to main content
Registration webhooks are enabled on a per-account basis. Contact your account manager to have this feature enabled for your account.
Webhooks let you push registration data to other tools — email marketing platforms, timing systems, shipping providers, or any system that accepts an HTTP request — without manual exports or scheduled syncs. Each time a participant registers or updates their registration, the data is sent automatically. Set up a separate webhook for each destination you need. You can filter each one to a specific race, ticket type, or event occurrence so only relevant registrations are forwarded.

How webhooks work

When a participant completes a registration or updates their existing registration, your webhook receives the participant’s data: name, email, selected ticket, custom question answers, and other registration details. The webhook fires once per triggering event, in close to real time. If your receiving endpoint is temporarily unavailable, the webhook retries automatically. If errors persist over time, the webhook is paused to protect your receiving system. You can re-enable it once the issue is resolved.

Creating a webhook

1

Open webhook settings

In your dashboard, go to Settings > Integrations > Webhooks and click Add webhook.
2

Choose a destination type

Select the type of system you’re connecting:
3

Enter the destination details

Depending on the type you selected:
  • URL endpoint — enter the full URL that will receive the data.
  • Mailchimp — enter your Mailchimp list ID.
  • Klaviyo — enter your Klaviyo list ID and select your saved Klaviyo credentials.
  • ChronoTrack and ShipStation — follow the prompts for the required connection details.
4

Choose which events trigger the webhook

Select one or both trigger events:
  • Entry created — fires when a participant completes a new registration.
  • Entry updated — fires when a participant updates their existing registration (for example, changing a custom question answer or upgrading their ticket).
5

Filter by race, ticket, or occurrence (optional)

By default, the webhook fires for all registrations across your event. To narrow the scope, add filters:
  • Event occurrence — limit to a specific date or wave.
  • Race — limit to a specific race within the event.
  • Ticket type — limit to a specific ticket.
Filters use OR logic: if a registration matches any one of the filters you’ve set, the webhook fires. If you add no filters, the webhook fires for every registration.
6

Save the webhook

Click Save. The webhook is now active and will fire for new registrations matching your configuration.

Sending existing registrations

After you save a new webhook, it will only receive registrations going forward. To send existing registrations to your destination, use the Backfill option. This re-sends all registrations that match the webhook’s filters, letting you populate your external system from day one.

Automatic pausing on errors

If your receiving endpoint returns repeated errors over a rolling time window, the webhook is automatically paused to avoid sending data into a broken destination. When this happens, the webhook’s status shows Disabled with the reason High error rate. To resume the webhook, fix the issue on the receiving end and then re-enable it from the webhook’s settings. The webhook will pick up new registrations from the moment you re-enable it; use Backfill if you need to catch up on registrations that were missed while it was paused.

Checking delivery history

Each webhook shows a delivery log where you can review recent executions, inspect the data that was sent, and see the response your endpoint returned. Use this to confirm data is arriving correctly or to diagnose delivery failures.