Webhooks
What is a Webhook?
A webhook is a way for an application to provide other applications with real-time information. It is essentially a user-defined HTTP callback: a URL that is triggered when specific events occur. This allows your applications to communicate seamlessly and react instantly to changes, such as booking events, cancellations, or rescheduling.
How Integration Helps
Integrating webhooks into your booking app offers several advantages:
Real-Time Alerts: Receive immediate notifications when significant events occur, such as when a meeting is booked, canceled, or rescheduled. This helps you stay updated without manual checks.
Automation: Automate workflows by triggering actions in other applications based on webhook events. For example, automatically update a calendar, notify team members, or initiate follow-up communications.
Enhanced User Experience: Provide a smoother experience for users by ensuring that all relevant systems are updated instantly, reducing the risk of double bookings or missed meetings.
Accessing Webhook Management
Navigate to Settings:
- After logging in, locate the Settings .
- Click on Settings to open the settings options.
Select Webhooks:
- In the settings menu, find and select Webhooks to access the webhook management section.
Creating Your First Webhook
Step 1: Create Webhook
- Click on Create Webhook:
- In the Webhooks section, click on the Create Webhook button to start the process.
Step 2: Fill in Webhook Details
- Subscriber URL:
- Field:
Subscriber URL
- Description: Enter the URL of your server that will receive the webhook notifications.
- Field:
Step 3: Select Event Triggers
- Event Triggers:
- Field:
Select Event Triggers
- Description: Choose the events that will trigger the webhook notifications.
- Options:
- Meeting Booked: Trigger when a new meeting is booked.
- Meeting Canceled: Trigger when a meeting is canceled.
- Meeting Rescheduled: Trigger when a meeting is rescheduled.
- Selection: Check the boxes next to the events you want to monitor.
- Field:
Step 4: Select Event Type
- Event Type:
- Field:
Select Event Type
- Description: Specify the type of event you want to subscribe to.
- Field:
Step 5: Enter Secret Token
- Secret Token:
- Field:
Secret Token
- Description: This token adds an extra layer of security by verifying requests from your webhook.
- Field:
Step 6: Save the Webhook
- Save:
- After entering all the required details, click the Save button to create your webhook.
- A confirmation message will appear to indicate that your webhook has been successfully created.
Webhook Data Explanation
eventType
Type of the event being logged. Example: 'BOOK' indicates a booking action event, 'CANCEL' indicates a cancellation action event, and 'RESCHEDULE' indicates a reschedule action event.
meetData
Contains detailed information about the meeting or event.
_id
Unique identifier for the meeting instance.
appId
Identifier of the application under which the meeting was created.
eventId
Unique identifier of the event.
time
Scheduled start time of the event in ISO format (UTC).
agents
An array of agent IDs assigned to host or manage the meeting.
attendeeIds
List of IDs representing attendees for the meeting.
createByContact
Boolean value indicating if the meeting was created directly by a contact.
duration
Length of the event in minutes.
externalIds
Array to store external reference IDs, useful for integrations.
followUp
Holds follow-up action details (if any) related to the event.
markAsNoShow
Once marked, your attendee will no longer receive any automated follow-ups related to this event.
maxAttendees
The maximum number of attendees allowed in the meeting.
modeNote
Additional notes about the meeting mode (e.g., online, offline).
modifiedEventName
Stores a custom/edited name for the event if modified.
multipleBookingIdentifier
An identifier to group multiple bookings if linked.
notes
An array of notes or comments is attached to the meeting.
reminders
An array of reminder configurations for the meeting.
status
Current status of the event (e.g., ACTIVE, CANCELLED).
type
Specifies the format of the event. Example: 'SOLO', 'GROUP', 'ROUNDROBIN', 'COLLECTIVE'.
calendarEvent
Reference to the linked calendar event, if synced with an external calendar.
agentsDetails
Contains detailed profile information of assigned agents/hosts.
attendees
Contains detailed information about attendees of the meeting.
Remains 'ACTIVE' since attendees are still part of the rescheduled meeting.
Empty object, since this is a reschedule, not a cancellation.
Empty object reserved for future attendee-specific reschedule metadata.
In case of payment booking:
-
_id → Unique identifier for the payment record.
-
appId → The application ID under which the payment was processed.
-
amount → The amount charged for the booking.
-
currencyCode → The currency in which the payment was made (e.g., USD, INR).
-
method → Payment gateway or method used (e.g., STRIPE, PAYPAL).
-
status → Current state of the payment (e.g., PENDING, DONE, FAILED).
-
billingName → Name of the person making the payment.
-
billingAddress → Address associated with the payment method.
-
paymentTime → Timestamp when the payment was completed.
-
externalPaymentId → Reference ID from the payment provider (e.g., Stripe Payment Intent ID).
-
emailId → Email used for payment confirmation/invoice.
-
note → Any additional notes provided during payment.
-
meetCreatedAt → Timestamp when the meeting was created after payment.
-
amountOnDuration → A mapping of duration vs. amount charged (e.g., 30 minutes → $1).
-
orderId → Internal order identifier generated for tracking.
-
createdAt / updatedAt → System timestamps for record creation and updates.
eventName
The name or title of the event.
eventSlug
A URL-friendly version of the event name, typically used for sharing.
cancellation
Object capturing cancellation details: timestamp, reason, and who cancelled.
prevMeetId
References the ID of the previous meeting in case of rescheduling.
reschedule
Object capturing reschedule details: timestamp, reason, who rescheduled, and new meeting ID.