Webhooks

Receive webhooks

Get an HTTP request every time a booking is created, rescheduled or cancelled.

Intermediate

6 min read

·

Webhooks let your server react to changes as they happen, instead of polling the API.

Events you can subscribe to

Event

Sent when

booking.created

A new booking is confirmed

booking.rescheduled

A booking moves to a new time

booking.cancelled

The host or the invitee cancels

booking.no_show

The host marks the invitee as a no-show

event_type.updated

An event type's settings change

1. Create an endpoint

Your endpoint must accept POST requests with a JSON body and respond with a 2xx status within 10 seconds.

import express from "express"

const app = express()

app.post("/webhooks/meetlane", express.raw({ type: "application/json" }), (req, res) => {
  const event = JSON.parse(req.body)

  if (event.type === "booking.created") {
    // Add the meeting to your CRM, send a Slack message...
  }

  res.sendStatus(200)
})
import express from "express"

const app = express()

app.post("/webhooks/meetlane", express.raw({ type: "application/json" }), (req, res) => {
  const event = JSON.parse(req.body)

  if (event.type === "booking.created") {
    // Add the meeting to your CRM, send a Slack message...
  }

  res.sendStatus(200)
})
import express from "express"

const app = express()

app.post("/webhooks/meetlane", express.raw({ type: "application/json" }), (req, res) => {
  const event = JSON.parse(req.body)

  if (event.type === "booking.created") {
    // Add the meeting to your CRM, send a Slack message...
  }

  res.sendStatus(200)
})

2. Register it

Go to Settings → Developers → Webhooks → Add endpoint, or use the API:

curl https://api.meetlane.com/v1/webhooks \
  -H "Authorization: Bearer $MEETLANE_API_KEY" \
  -d url="https://example.com/webhooks/meetlane" \
  -d "events[]=booking.created" \
  -d "events[]=booking.cancelled"
curl https://api.meetlane.com/v1/webhooks \
  -H "Authorization: Bearer $MEETLANE_API_KEY" \
  -d url="https://example.com/webhooks/meetlane" \
  -d "events[]=booking.created" \
  -d "events[]=booking.cancelled"
curl https://api.meetlane.com/v1/webhooks \
  -H "Authorization: Bearer $MEETLANE_API_KEY" \
  -d url="https://example.com/webhooks/meetlane" \
  -d "events[]=booking.created" \
  -d "events[]=booking.cancelled"

3. Verify every request

Anyone can send a request to a public URL. Check the signature before you trust the payload: see Verify webhook signatures.

Retries

If your endpoint doesn't return 2xx, Meetlane retries with exponential backoff for up to 3 days. You can see every attempt, and replay any event, under Webhooks → Event log.

Tip: Respond with 200 first and do slow work in a background job. Long handlers are the most common cause of retries.

Was this page helpful?

Last reviewed by the Meetlane support team.

Was this page helpful?

Last reviewed by the Meetlane support team.

Create a free website with Framer, the website builder loved by startups, designers and agencies.