Administrator Guide
Configuring Webhooks
Webhooks in Easy!Appointments allow the system to automatically notify external services when key events occur (e.g., when an appointment is booked, updated, or canceled). This is useful for integrating with third-party systems such as CRMs, notification platforms, or analytics tools.
Webhooks can be configured via the UI, no code changes are required
Supported Events
Easy!Appointments can trigger webhooks for the following events:
| Event | Description |
|---|---|
appointment_save | Triggered when an appointment is saved (created or updated) |
appointment_delete | Triggered when an appointment is deleted |
unavailability_save | Triggered when an unavailability is saved (created or updated) |
unavailability_delete | Triggered when an unavailability is deleted |
blocked_period_save | Triggered when a blocked period is saved (created or updated) |
blocked_period_delete | Triggered when a blocked period is deleted |
customer_save | Triggered when a customer is saved (created or updated) |
customer_delete | Triggered when a customer is deleted |
service_save | Triggered when a service is saved (created or updated) |
service_delete | Triggered when a service is deleted |
service_category_save | Triggered when a service category is saved (created or updated) |
service_category_delete | Triggered when a service category is deleted |
provider_save | Triggered when a provider is saved (created or updated) |
provider_delete | Triggered when a provider is deleted |
secretary_save | Triggered when a secretary is saved (created or updated) |
secretary_delete | Triggered when a secretary is deleted |
admin_save | Triggered when an admin is saved (created or updated) |
admin_delete | Triggered when an admin is deleted |
A webhook can subscribe to any number of these events.
How Webhooks Work
When a subscribed event occurs, Easy!Appointments sends an HTTP POST request to the webhook URL with a JSON body like the following, whatever the resource type:
{
"action": "appointment_save",
"payload": { "id": 1, "...": "..." }
}
action is the event name from the table above and payload is the affected record (appointment, customer, provider and so on) as stored in the database.
The request is sent once. A failed delivery is written to the application log and not retried.
Step-by-Step Setup
1. Find the Webhooks page
Webhooks can be found in the admin settings and the integrations page. This section is only available to system administrators, in order to protect sensitive configuration from other user roles.
You can sign in, go to settings, then to integrations and finally click on Configure Webhooks.
2. Define the Webhook functionality
Create a new record and give a clear name so that you can reason about the entry in the future.
Then select the correct events and enter the request information
- URL
- Secret Header / Token
Tip: Use secret headers or token-based validation to ensure requests are from a trusted source.
The secret header will be included in the headers section of the webhook request, with the secret token as its value. Both have to be filled in for the header to be sent.
Under Options, Verify SSL controls whether the SSL certificate of the target URL is checked. Leave it on unless the endpoint uses a self-signed certificate you trust.
Security Best Practices
- Always validate the request origin using a secret token.
- Use HTTPS for secure data transfer.
Use Cases
- Sync appointments to an external CRM
- Trigger a Slack or Microsoft Teams notification
- Send real-time updates to a mobile app backend
- Integrate with Zapier or Make (formerly Integromat)
Last updated