In this document:
Introduction
Use Appointment actions to trigger other apps or services using the Webhooks feature in SSA.
Webhooks Overview
Webhooks are a way to send data to other sites/services in real-time.
A webhook is automatically triggered when one of the following appointment actions takes place in our plugin:
- Booked
- Edited
- Canceled
Each webhook comes with a payload; in SSA’s case, it’s a packet of information regarding the appointment, customer info, and action that just took place.
When one of the above actions occurs on your site, you can program SSA to send the payload to a specific URL. We can use this to create indirect integrations with automation services or CRMs.
Recommended Automation Services
Some services make it easy to connect a webhook to thousands of applications you already use in your workflow. Here are some guides to help you get started with each service:
SSA Webhooks PayLoad
This is the information included in each webhook payload.
General Information
- Action that triggered the webhook
- Unique token to verify if needed
- Site Name and URL
Booking Information
- Appointment ID
- Appointment Type ID and Title
- Customer Information, including custom fields
- Start date in UTC and in Local timezone
- End date in UTC and in Local timezone
- Date created and date modified
- Web Meeting Link and Password
- Rescheduling/Cancelation Link
- Price paid, if any
- Payment method, used if any
- Team member name, email, and ID
Sample Payload
{
"action": "appointment_booked", // possible values of `appointment_booked`, `appointment_edited`, `appointment_canceled`
"action_noun": "appointment",
"action_verb": "booked", // possible values of `booked`, `edited`, `canceled`
"signature": {
"token": "1a2b3c4d5e6f..." // so you can verify that the delivered webhook originated from this site
"site_name": "This WordPress Site" // in case you have multiple sites sharing the same webhook
"site_url": "https://thissite.com" // in case you have multiple sites sharing the same webhook
"network_site_url": "1a2b3c4d5e6f..." // only different than `site_url` if using multisite
},
"appointment": {
"id": "123", // Unique ID to reference this appointment
"appointment_type_id": "36", // Unique value that is consistent even if the type's name/slug changes
"appointment_type_slug": "2hr-call",
"customer_id": "1",
"customer_information": {
"Name": "Nathan Tyler",
"Email": "[email protected]"
// values from your custom fields will also be included here
},
"start_date": "2018-09-20 16:15:00", // all dates are stored in the UTC timezone
"end_date": "2018-09-20 18:15:00",
"status": "booked", // possible values of `booked` or `canceled`
"date_created": "2018-09-19 01:00:44",
"date_modified": "2018-09-19 01:00:44",
"public_edit_url": "http://yoursite.com/appointments/change/e7b9a0a37d18e86ef11b2da12345678900",
"price_full": 100.00,
"payment_method": "stripe",
"web_meeting_url": "https://your-web-meeting-url.com/url/j.php?MTID=m89e2d3199fc229a01732c0964bf48c03",
"web_meeting_password": "your-meeting-password",
"appointment_type_title": "2hr Call",
"local_time_for": {
"appointment_type": {
// dates and times shifted (from UTC) to the appointment type's timezone
"raw": {
"start_date": "2018-09-20 16:15:00",
"end_date": "2018-09-20 18:15:00",
"date_created": "2018-09-19 01:00:44",
"date_modified": "2018-09-19 01:00:44"
},
"formatted": {
"start_date": "September 20, 2018 4:15 pm PDT",
"end_date": "September 20, 2018 6:15 pm PDT",
"date_created": "September 19, 2018 1:00 am PDT",
"date_modified": "September 19, 2018 1:00 am PDT"
}
}
}
},
"team_members": [{ // Displays all/any team member if assigned (Business edition)
"id": 1,
"wp_user_id" : 0, // "0" if not a WP user
"name": "John Doe",
"display_name": "John Doe",
"email": "[email protected]"
},
{
"id": 2,
"wp_user_id" : 2,
"name": "Jane Doe",
"display_name": "Jane Doe",
"email": "[email protected]"
}]
}
Related Guides
-
ICS Subscription Feed
-
Let Employees Manage Admin Page
-
WordPress Block Editor Module
-
Elementor Module