Webhooks & Events
A webhook subscription tells LIKE MAGIC: "whenever one of these things happens, send an HTTP call to this URL." It is the operator-facing way to plug an external system into the platform's Event & Data Hub so that system can react the moment an event occurs, whether that means triggering a message, updating a partner platform or starting a workflow.
This is a how-to for the Account Administrator who sets subscriptions up. It assumes you already have an endpoint (a URL on your side, or your integration partner's) that can receive HTTP requests.
1. Who Can Use This
Webhook subscriptions are managed at the account level (they can target one or more properties in the account). To use them:
- your account needs Platform pricing. On Core the webhook subscriptions page is shown locked with an upgrade prompt, see Pricing Tiers,
- and you need the Account Administrator role (
account-admin) to create or change a subscription. Account Viewer (account-viewer) can open the screen read-only.
Because a subscription sends operational data to an outside system, treat setting one up as a security-sensitive action.
2. What a Subscription Contains
Each subscription has:
- a name: a human-readable label so you can tell subscriptions apart,
- a callback URL: the endpoint LIKE MAGIC calls when a subscribed event fires,
- a secret: the shared value sent with each delivery, so your endpoint can tell the call really came from LIKE MAGIC,
- one or more topics: the events you want to receive,
- one or more properties: which properties' events this subscription covers,
- a status: whether the subscription is currently enabled and delivering.
3. Creating a Subscription
From Settings → Account → Webhook, choose New Subscription and fill in:
- Webhook Name: e.g. "Partner CRM (reservations)".
- URL Callback: the endpoint that will receive the events. It must start with
https://. - Secret: either paste your own or use Generate Random Secret to create one; you can show or hide it while editing. Copy it into your receiving system so it can check every delivery (see section 5).
- Apply to the Following Properties: select the properties whose events should be delivered. Leave it empty to cover all properties, including ones added later.
- Topics: tick the events you want (section 4).
A new subscription starts enabled and begins delivering as soon as you save. Verify the endpoint before you rely on it.

4. Choosing Which Events to Receive
You subscribe to specific topics rather than "everything". Topics are grouped by area, subscribe only to what your integration actually needs:
| Area | Example topics |
|---|---|
| Booking (IBE) | booking succeeded / failed, booking created / updated |
| Reservation | created, updated, checked in / out, cancelled, no-show, room upgrade, pre-check-in / pre-check-out flow changes |
| Folio & billing | folio created, folio updated |
| Doors & locks | door open success / failure, door-access sync, lock / gateway connection lost / restored |
| Units & profiles | unit created / updated, profile created / updated / merged, profile language updated |
| Tasks | task created, updated, completed |
| Messaging | conversation created / updated / resolved, message sent / received / failed |
| Notifications | reservation, booking and account notification sent / failed |
| Configuration & promo | account configuration updated, promo code created / updated / deleted / used |
💡 Subscribe narrowly. Every extra topic is more traffic to your endpoint and more to reason about. Start with the events your integration reacts to, and add more later.
For the full picture of the event backbone behind these topics, see the Event & Data Hub concept article.
5. Signing Deliveries with a Secret
The secret is how your endpoint knows a delivery genuinely came from LIKE MAGIC and was not forged. LIKE MAGIC delivers each event as an HTTPS POST that carries the secret in the lm-webhook-secret header. Your receiving system compares that header against the secret you configured and rejects the call when it does not match.
Treat the secret like a password:
- store it in your integration's secret store, never in a shared document or source code,
- if you suspect it leaked, edit the subscription and generate a new one,
- never accept a call on your endpoint that does not carry the expected secret.
6. Verifying the Endpoint
Before trusting a subscription, use the Verify action. It appears when you open a saved subscription, sends a test call to your callback URL and reports back whether your endpoint accepted it. If verification fails, the error message shows what your endpoint replied so you can debug. Commonly the URL is wrong, the endpoint is unreachable, or it rejected the call because the secret does not match.
Fix the cause and verify again until it succeeds.
7. Which Events a Property Emits
Reservation, folio and booking events originate from the property's connected PMS, so which events a property emits, and their timing, depends on that PMS.
Events internal to LIKE MAGIC (tasks, messaging, doors, configuration, promo codes) are not tied to the PMS in the same way. If a reservation-related topic never seems to fire for a property, confirm its PMS actually emits that event.
8. Editing, Pausing and Deleting
- Edit to rename a subscription, change its topics or properties, or rotate the secret.
- Disable to pause delivery without losing the configuration, useful while you fix a broken endpoint. Enable resumes it, and the Status column shows which state a subscription is in.
- Delete to remove the subscription entirely and stop all delivery to that endpoint.
ℹ️ Note: Removing a topic or pausing a subscription takes effect for new events; it does not replay past events. Plan a backfill through the API if your system needs history it missed while paused.
To let the receiving system also read events or metrics directly from the API, issue it a scoped service account (the webhook_subscription.read, event_log.read and metric.read scopes are relevant here).
9. Conclusion
A webhook subscription is the self-serve way to connect an external system to LIKE MAGIC's live event stream: name it, point it at your endpoint, give it a secret, subscribe only to the topics you need, and verify before you rely on it. For the bigger picture of the events available, see the Event & Data Hub.