> ## Documentation Index
> Fetch the complete documentation index at: https://docs.servicebooked.ca/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrations

> All the third-party tools you can connect — Slack, Cal.com, Calendly, Google Calendar, outgoing webhooks.

ServiceBooked is the AI Receptionist; the integrations connect it to where the rest of your work happens.

## Calendar integrations

Three options for booking, covered in detail in the [Calendar section](/calendar/google-calendar):

* **Google Calendar** — direct OAuth, real-time availability + booking
* **Cal.com** — open-source scheduler with webhooks for booking sync
* **Calendly** — paste your link; the AI Receptionist hands customers off

Pick whichever matches what you already use.

## Slack

Pipes notifications to a Slack channel — useful for teams who live in Slack and want a real-time feed of leads / bookings / cancellations.

### Connect

**Settings → Integrations → Slack → Connect**. OAuth flow takes you to Slack's auth page; approve, and you're connected.

### Pick a channel

The integration UI shows a dropdown of channels in your workspace. Pick where notifications should post (defaults to `#general`). Private channels require you to `/invite` the ServiceBooked bot before they show up in the dropdown.

### Pick events

Toggle which events fire Slack notifications:

* **New booking** — every new appointment
* **Cancellation** — an appointment is cancelled
* **Appointment completed** — off by default (most teams find it noisy)
* **New contact / lead** — every contact created
* **Deal won / new customer** — a deal moves to a Won stage
* **New review** — a Google review is fetched (requires Google Business Profile connected)

Every event except *Appointment completed* is on by default. Most teams keep new booking, new contact, and deal won, and turn off the rest.

### Disconnect

Same screen. Removes our bot from your workspace; notifications stop.

## Outgoing webhooks

For piping events into your own systems (custom CRM, internal dashboards, Zapier, etc.):

### Add a webhook

**Settings → Integrations → Webhooks → Add webhook**:

* **URL** — your endpoint
* **Events to subscribe to** — any of the events below (leave all unchecked to receive every event)
* **Signing secret** — we generate one; you use it to verify requests are actually from us

Available events:

* `appointment.booked`
* `appointment.rescheduled`
* `appointment.cancelled`
* `appointment.completed`
* `appointment.no_show`
* `contact.created`
* `deal.created`
* `deal.won`
* `review.received`

### What gets sent

Every subscribed event POSTs a JSON payload to your URL:

```json theme={null}
{
  "event": "appointment.booked",
  "sent_at": "2026-04-18T19:03:11.214Z",
  "org_id": "…",
  "data": { "…": "event-specific fields (contact info, appointment time, etc.)" }
}
```

Each request carries three headers:

* `X-ServiceBooked-Event` — the event name (e.g. `appointment.booked`)
* `X-ServiceBooked-Timestamp` — ISO 8601 UTC; reject anything older than \~5 minutes for replay protection
* `X-ServiceBooked-Signature` — HMAC-SHA256 of `timestamp + "." + rawBody`, using your signing secret

To verify: compute `hmac_sha256(secret, timestamp + "." + rawBody)` over the **raw** request body and constant-time compare it to `X-ServiceBooked-Signature` before processing.

### Retries

Currently fire-and-forget — no automatic retry on failure. If your endpoint is down, the event is lost. A retry queue with backoff is on the roadmap.

For production-critical use cases, consider a queueing layer (your own webhook receiver that buffers + retries) until we ship retries natively.

### Disable

Toggle off any webhook from the same page. The endpoint stops getting events immediately.

## Zapier (via webhooks)

You can plug ServiceBooked into Zapier indirectly:

1. Set up a Zapier "Webhook trigger" — Zapier gives you a URL.
2. Add that URL as an outgoing webhook in ServiceBooked.
3. Subscribe to relevant events.

Now Zapier sees every ServiceBooked event and can fan out to any of its 5000+ integrations (Sheets, QuickBooks, Mailchimp, etc.).

A native Zapier app is on the roadmap.

## Email sender

This isn't an integration in the traditional sense — it's the email delivery configuration.

By default we send branded emails from a `noreply@servicebooked.ca` address with your business name as the From name. White-label customers can configure a fully branded sender (e.g., `mike@jonesplumbing.com`) by setting up DNS records that authorize us. Talk to support.

## ICS feed

Read-only calendar feed of your appointments. See [ICS feed](/calendar/ics-feed) for setup.

## What's NOT supported (yet)

Not all integrations exist. As of today, no native:

* QuickBooks / accounting tools
* Salesforce / HubSpot direct sync
* Mailchimp / email marketing tools
* Job-management software (Jobber, Housecall Pro, ServiceTitan)

For most of these, the workaround is webhooks → Zapier → target tool. If you need a native integration with one of these, the support team tracks demand and we sometimes prioritize based on it.

## Next

<Card title="Notifications" icon="bell" href="/settings/notifications">
  Per-user notification preferences for the in-app bell + email digests.
</Card>
