Skip to main content

Beta Status: Set up Webhooks In CourtReserve

Get Real-Time Data From CourtReserve Delivered Directly To Your System

Written by Mari Bern

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.

    • CourtReserve will retry failed deliveries automatically. Each webhook delivery is attempted up to 3 times before being marked as Dead Lettered. You can monitor all delivery attempts in the Delivery Log.

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.

Did this answer your question?