Webhooks

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

  1. Click on Create Webhook:
    • In the Webhooks section, click on the Create Webhook button to start the process.

Step 2: Fill in Webhook Details

  1. Subscriber URL:
    • Field: Subscriber URL
    • Description: Enter the URL of your server that will receive the webhook notifications.

Step 3: Select Event Triggers

  1. 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.

Step 4: Select Event Type

  1. Event Type:
    • Field: Select Event Type
    • Description: Specify the type of event you want to subscribe to.

Step 5: Enter Secret Token

  1. Secret Token:
    • Field: Secret Token
    • Description: This token adds an extra layer of security by verifying requests from your webhook.

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.

  • attendees[].status

Remains 'ACTIVE' since attendees are still part of the rescheduled meeting.

  • attendees[].cancellation

Empty object, since this is a reschedule, not a cancellation.

  • attendees[].reschedule

Empty object reserved for future attendee-specific reschedule metadata.

  • attendees[].payment

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.