Integrations
Integrations connect external services to your workspace. From here you configure card payments (Stripe), the AI gateway (OpenRouter), outbound webhooks, Google Tag Manager tracking and the per-site calendar feeds. Credentials you enter are encrypted at rest and never shown in plaintext again after saving.
Open Integrations in the admin sidebar (under Setup, plug icon).
How each card works
Section titled “How each card works”The page shows one card per integration. Each card displays a status badge and the same set of actions:
| Status | Meaning |
|---|---|
| Not connected | No credentials stored yet. |
| Connected | Configured and enabled. |
| Disabled | Configured but switched off. |
- Configure / Edit — opens a side panel to enter or update credentials.
- Disconnect — removes the stored credentials after a confirmation prompt.
Secret fields (API keys, signing secrets) show only the last four digits once saved. Leave a secret field blank when editing to keep the stored value.
Stripe
Section titled “Stripe”Accept card payments for bookings and memberships. Open the configure panel and enter:
| Field | Notes |
|---|---|
| Mode | Test or Live. Shown as a badge on the card. |
| Publishable key | Required (pk_test_… / pk_live_…). |
| Secret key | Required on the first save (sk_…). Leave blank later to keep the stored value. |
| Webhook endpoint URL | Read-only. Copy it into the Stripe dashboard under Developers → Webhooks. |
| Webhook signing secret | Optional (whsec_…). Required only if you wire up Stripe webhooks. |
Disconnecting removes the stored credentials and payments stop working until you reconfigure.
OpenRouter
Section titled “OpenRouter”An AI gateway used by downstream features such as the booking copilot and support assistant. The panel takes a single field:
| Field | Notes |
|---|---|
| API key | Required on the first save (sk-or-v1-…). Leave blank later to keep the stored value. |
If you disconnect OpenRouter, AI-backed features fall back to the platform’s default key, or fail if none is configured.
Webhook
Section titled “Webhook”POSTs a signed JSON payload to a URL of yours whenever a notification fires. The panel lets you:
- URL — the endpoint we POST notifications to. Required on the first save.
- Signing secret — generate one with Regenerate. The secret is shown once on generation, so copy it immediately; afterwards only the last four digits are displayed. Each request is signed with this secret so your endpoint can verify authenticity.
- Send test — available once a URL and secret exist. Fires a test payload and reports the HTTP status code on success, or the error on failure.
Disconnecting removes the stored webhook URL and signing secret.
Google Tag Manager
Section titled “Google Tag Manager”Loads your GTM container on the public booking pages so you can measure visits and conversions. Staff pages never load the container.
| Field | Notes |
|---|---|
| Container ID | Found in your GTM workspace, top right. Must look like GTM-XXXXXXX. |
| Enable tracking | Turns the container on or off without losing the ID. Requires a container ID. |
The card shows the saved container ID. Disconnect clears the ID and switches tracking off.
Calendar subscription
Section titled “Calendar subscription”Each site exposes a private iCal feed of its bookings that you can subscribe to from Google Calendar, Apple Calendar or Outlook. The feeds exist for every site automatically and are enabled by default. Show links opens a panel with one link per site:
- Copy link — copies the subscription URL to your clipboard.
- Regenerate link — issues a new URL and invalidates the old one after a confirmation. Existing subscribers stop receiving updates and need the new link.
Disable switches off every site’s feed at once, after a confirmation. Subscribers stop receiving updates, but the links are kept: Enable brings the same links back to life, so nobody has to resubscribe.