This feature is currently in Beta, meaning it is actively being tested and refined before a full release. It is not available to all organizations. Access is limited to clubs in CourtReserve's Early Access Groups. To request access, contact our Customer Support team via live chat or email.
INTRODUCTION
Feature Summary: Webhooks let CourtReserve automatically send data to your external platforms the moment something happens — a reservation is made or a member signs up. No manual exports, no delays, no extra steps. Just instant, automatic data delivery.
Note: CourtReserve webhooks are configured and managed at the organization level. Enterprise-level webhooks are not currently supported.
Use Cases: Here are a few common ways organizations can use webhooks with CourtReserve:
CRM & email marketing: Automatically add new members to Mailchimp, HubSpot, or Salesforce the moment they join, triggering welcome sequences without any manual exports.
Staff notifications: Fire an alert to Slack or Microsoft Teams whenever a reservation is made or a registration is cancelled.
Workflow automation: Connect CourtReserve to tools like Zapier or Make to trigger multi-step automations.
PREREQUISITE
Webhooks are available on the Advanced, Momentum, and Enterprise plans. If you're not on one of these plans and would like to upgrade, reach out to the CourtReserve Customer Support team.
Enabling Webhooks
To enable Webhooks access, navigate to Settings in the sidebar and scroll to the Additional Features row at the bottom. Click the Additional Features icon.
Under the Integrations section, locate API & Webhooks Access. Enable the checkbox and click Setup.
After initial set up, to access Webhooks, go to Settings > Additional Features > click the API & Webhooks icon. Navigate to the Webhooks tab.
OVERVIEW
Each webhook you create is specific to your organization and can be customized to respond to only the events that matter to you. You can set up as many webhooks as needed, sending different types of data to different platforms — all running automatically in the background without any manual effort.
Creating a Webhook
To create a webhook, you'll configure an endpoint URL for CourtReserve to send data to, choose which events should trigger it, and optionally fine-tune settings like custom headers and timeout. Once saved, your webhook will begin delivering data automatically every time a matching event occurs in your organization.
From the Webhooks tab, click + Create Webhook.
Next, fill out the following:
Endpoint URL (required)
The public HTTPS URL where CourtReserve should send data. This must be publicly accessible on the internet.
Description (optional)
A label to help you identify what this webhook is for — useful when you have multiple webhooks set up.
Event Types
Event types define which actions in CourtReserve should trigger your webhook. For example, if you only want your webhook to fire when a new reservation is created, you would select reservation.created. If you want it to fire for all reservation activity — created, updated, and cancelled — you would select all three.
You can subscribe to one or more specific event types, or leave the selection empty to receive all available event types. This gives you full control over how much data is sent to your endpoint and when.
Available events include:
Event | When it fires |
Events & Programs |
|
event.cancelled | An event is cancelled |
event.created | A new event is created |
event.deleted | An event is deleted |
event.updated | An event is modified |
Event Registrations |
|
event_registration.cancelled | An event registration is cancelled |
event_registration.created | A member registers for an event |
Members |
|
member.created | A new member is added to your organization |
member.deleted | A member is removed from your organization |
member.updated | A member is modfied |
Reservations |
|
reservation.cancelled | A reservation is cancelled |
reservation.created | A new reservation is created |
reservation.updated | A reservation is modified |
Custom headers (optional)
Custom headers are optional and only needed if your endpoint requires authentication or other specific metadata. If required, your developer or integration platform will provide the header name and value to enter here.
Timeout
Enter how long CourtReserve waits for your endpoint to respond before treating the delivery as failed. Configurable between 1–60 seconds (default: 30 seconds).
Example - Event Data
This example shows a webhook subscription configured to send data to an internal reporting platform. All four Event event types are selected, along with both Event Registration events, meaning this webhook will fire any time an event is created, updated, deleted, or cancelled — and any time a member registers for or cancels an event registration. The timeout is set to the default of 30 seconds and no custom headers are required for this endpoint.
Example - Reservation Data
This example shows a webhook configured to send Slack notifications to a dedicated reservations channel. Only the three Reservation event types are selected — reservation.created, reservation.updated, and reservation.cancelled — meaning this webhook will fire exclusively when reservation activity occurs. No custom headers are needed for this Slack endpoint, and the timeout remains at the default 30 seconds.
Signing Secret
When a webhook is created, CourtReserve will display a signing secret one time only. Copy it and store it somewhere secure immediately — it cannot be retrieved after you close the window. If you ever lose it or suspect it has been compromised, you can generate a new one using the Rotate Secret option in the webhook's actions menu.
Managing Your Webhooks
Each webhook has a more actions (⋮) menu.
Here are the available options:
Edit: Update the endpoint URL, description, event types, custom headers, or timeout.
Delivery Log: View a full history of every time this webhook fired, its status, and any failures.
Delivery Status | What it means |
Pending | Queued and awaiting delivery |
Succeeded | Successfully received by your endpoint |
Failed | Endpoint did not respond as expected |
Dead Lettered | All retry attempts have been exhausted |
Rotate Secret: When Rotate Secret is selected, CourtReserve immediately invalidates the current signing secret and generates a new one. The new secret is displayed one time only — just like when the webhook was first created — so it must be copied and stored securely before closing the window. Once rotated, any system still using the old secret will no longer be able to verify incoming webhook requests until it is updated with the new one.
Send Test: Fires a test message to your endpoint so you can verify the connection without changing real data.
Disable: Select Disable to temporarily pause webhook delivery without deleting your webhook. Select Enable to resume delivery when you're ready.
Delete: Permanently removes the webhook subscription.









