Skip to main content
Webhooks let you receive real-time HTTP POST notifications when events happen in Zeeg. Instead of polling the API, you register a callback URL and Zeeg pushes event data to you the moment something occurs. Zeeg supports six event types:

Setting up webhooks

Create a webhook subscription by sending a POST request to /webhooks.

Required fields

Optional fields

Scope explained

  • user — You only receive events related to your own scheduling pages.
  • organization — You receive events for all members of your organization. Requires an API token belonging to an admin or owner.

Example

Response

Verifying webhook origin

If you provide a token when creating the webhook subscription, Zeeg sends it in the Token header of every webhook request. Use this value to verify that incoming requests actually come from Zeeg and not a third party.
Python

Event payloads

invitee.scheduled / invitee.cancelled / invitee.withdrawn / invitee.no_show

All four event types share the same payload structure. Cancellation-specific, no-show-specific and reschedule-specific fields are populated only when relevant.

Key fields

Store inviteeUuid (and eventUuid) on your side. Invitee-related UUIDs are the best identifiers for correlating bookings, cancellations, and reschedules across webhook deliveries, and they ensure future compatibility — especially for Group events.

routing_form.submitted

Key fields

ai_agent.call_completed

Alpha Fired once when an AI agent call reaches a terminal state (answered, voicemail, not answered, busy, or unknown). Contains the call outcome, transcript summary, any data the agent collected from the caller, actions the agent executed, and the booking created during the call (if any).

Key fields

Use conversationId to deduplicate deliveries and booking.uuid to correlate with invitee.scheduled webhook events for the same booking.

Managing webhooks

Replace {scope} with user or organization. You can also manage webhooks from the Zeeg dashboard: Account Settings > Webhooks

Auto-deletion

Zeeg automatically deletes a webhook subscription if any of the following conditions are met:
  • DNS cannot be resolved for the callback URL.
  • The callback URL returns a 404 Not Found response.
  • The callback URL returns a 410 Gone response.
When a webhook is auto-deleted, the subscription owner is notified by email. Monitor your inbox to avoid missing events silently.

Best practices

  1. Respond quickly. Return a 2xx status code as fast as possible. Zeeg expects a timely response from your callback URL.
  2. Process asynchronously. Queue the payload for background processing rather than doing heavy work inside the request handler.
  3. Use the verification token. Always set a token when creating a webhook and validate it on every incoming request.
  4. Handle duplicates idempotently. In rare cases, Zeeg may deliver the same event more than once. Use eventUuid or inviteeUuid to deduplicate.
  5. Monitor for auto-deletion emails. If your endpoint goes down and Zeeg deletes the subscription, you will only know through the notification email. Set up alerting on your side.
Last modified on July 21, 2026