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:

EventDescription
appointment_saveTriggered when an appointment is saved (created or updated)
appointment_deleteTriggered when an appointment is deleted
unavailability_saveTriggered when an unavailability is saved (created or updated)
unavailability_deleteTriggered when an unavailability is deleted
blocked_period_saveTriggered when a blocked period is saved (created or updated)
blocked_period_deleteTriggered when a blocked period is deleted
customer_saveTriggered when a customer is saved (created or updated)
customer_deleteTriggered when a customer is deleted
service_saveTriggered when a service is saved (created or updated)
service_deleteTriggered when a service is deleted
service_category_saveTriggered when a service category is saved (created or updated)
service_category_deleteTriggered when a service category is deleted
provider_saveTriggered when a provider is saved (created or updated)
provider_deleteTriggered when a provider is deleted
secretary_saveTriggered when a secretary is saved (created or updated)
secretary_deleteTriggered when a secretary is deleted
admin_saveTriggered when an admin is saved (created or updated)
admin_deleteTriggered 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