Overview
Webhooks let you receive an HTTP POST request to a URL of your choice whenever a meeting event occurs in your QuickMeetly account. Use them to trigger workflows in Zapier, n8n, your own backend, or any other system that can receive HTTP requests.
Creating a Webhook
- Go to Dashboard → Webhooks.
- Click Add Webhook.
- Enter the URL that should receive the notifications (must be a valid
https://address). - Select one or more events to subscribe to (see the table below).
- Click Save.
After saving, a secret key is displayed once — copy it immediately. This secret is used to verify that requests come from QuickMeetly (see Verifying Payloads below).
Subscribable Events
| Event | When it fires |
|---|---|
meeting_booked |
A guest completes a new booking |
meeting_confirmed |
You confirm a pending booking |
meeting_cancelled |
A meeting is cancelled (by you or the guest) |
meeting_rescheduled |
A guest reschedules an existing booking |
meeting_rejected |
You reject a pending booking |
You can subscribe to any combination of events on a single webhook endpoint, or create separate endpoints for each event.
Payload Format
QuickMeetly sends a JSON payload in the POST request body. The shape includes the event type, a timestamp, and the full meeting details:
{
"event": "meeting_booked",
"timestamp": 1686463078212,
"data": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"event_type_title": "30-Minute Intro Call",
"start_date_time": "2025-05-12T09:30:00",
"duration_in_minutes": 30,
"timezone": "Europe/London",
"location": "phone_call",
"status": "scheduled",
"participants": [
{
"name": "Jane Doe",
"email": "[email protected]",
"phone_number": "1234567890"
}
],
"note": "",
"online_link": "",
"address": "",
"cancellation_reason": ""
}
}
Verifying Payloads
Each webhook request includes an X-Signature-256 header. Use your webhook’s secret key to verify the signature and confirm the request is genuine.
The signature is an HMAC-SHA256 hash of the raw request body, signed with your secret:
const crypto = require("crypto");
function isValidSignature(body, signature, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(body)
.digest("hex");
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}
Always reject requests where the signature does not match.
Managing Webhooks
| Action | How |
|---|---|
| View secret | The secret is only shown once at creation time. It cannot be retrieved afterwards — delete and recreate the webhook to rotate it. |
| Delete | Click the trash icon on the webhook card and confirm. |
Delivery & Retries
- QuickMeetly expects a
2xxHTTP response within a reasonable timeout. If a non-2xx response is received or the request times out, delivery is considered failed. - Your endpoint should be idempotent — the same event may be delivered more than once in edge cases.
Tips
- Use a tool like webhook.site or ngrok to inspect incoming payloads during development.
- Subscribe only to the events you need to keep payloads manageable.
- Store the secret in an environment variable — never hardcode it.