Custom integrations with our Webhooks API

Important: The ScheduleOnce Webhook API is disabled by default. An activation and onboarding fee is required. Please contact us to enable this feature.


What are Webhooks?

Our Webhooks API is an advanced feature that can be used to build integrations with third party applications. It is suitable for developers or technically savvy users with scripting or programming knowledge. Using ScheduleOnce Webhooks you can develop custom integrations that use ScheduleOnce booking data with your own web applications, services or data warehouse. Learn more about webhooks
 

The ScheduleOnce Webhooks API

The ScheduleOnce Webhooks API is used to communicate with third party web services. Our webhooks support the POST HTTP verb to push booking data to a specified POST URL. The data is sent as URL encoded KVP’s (key-value pairs) to your receiving server when a Booking lifecycle event occurs in your ScheduleOnce account.
 

Editing or removing the Post URL

Once the feature is enabled on your account, you should see a new section under your Account settings. Navigate to Account -> Settings -> Post URL  to update the receiving URL. POST messages may contain sensitive customer data. It is highly recommended to use a secure connection, always use HTTPS when providing the receiving POST URL. To temporarily disable this feature on your account you can leave this field blank and save the changes.


Booking lifecycle events

The ScheduleOnce Webhook API is triggered when a Booking lifecycle event occurs in your ScheduleOnce account. The supported lifecycle events include:
  • Requested booking
  • Resubmission request sent by User
  • Request resubmitted by the Customer
  • Request canceled by the User
  • Request canceled by the Customer
  • Scheduled booking
  • Booking canceled by Customer
  • Booking canceled by the User
  • Booking rescheduled by Customer
  • Booking reschedule request sent by User
  • Booking set to no-show by the User
  • Booking completed 
The POST message includes the “MeetingStatus” KVP which will reflect which of the booking lifecycle events triggered the POST.
 

The POST message data

The data is sent as URL encoded KVP’s.  POST messages include the following fields:
  • Bookingpage – The identifying part of the link belonging to the page on which the booking was made, whether Booking page or Master page
  • MeetingID - A unique internal ID for identifying the meeting
  • TrackingID – A unique Public ID assigned to each meeting
  • Location – Location of the meeting
  • Subject – The meeting subject or Event type
  • MeetingStatus – The status of the current booking lifecycle event that triggered the POST message. The possible values are:
    • Requested
    • NewTimesRequested
    • Scheduled
    • Canceled 
    • Rescheduled
    • ​RescheduledByOwner
    • No-show
    • Completed
  • Name – The customer name
  • Email – The customer email
  • Mobile – The customer mobile phone number
  • Phone – The customer phone number
  • Meeting Time – The meeting time in json format in UTC. e.g. 2016-12-01T23:28:56.782Z
  • Duration – The meeting duration in minutes
  • CustomerTimeZone - Customer time zone provided as plain text
  • LastUpdated  - The time of the last update or booking lifecycle event status change
  • CancelRescheduleURL  - The customer cancel/reschedule link
  • ​ApprovalURL - The link for the User to approve the booking request
  • AddToGoogle - The customer link for adding the event to Google Calendar
  • AddToOutlook – The customer link for adding the event to Outlook Calendar
  • AddToiCal – The customer link for adding the event to iCloud Calendar
  • AddToCalendar – The customer link for downloading a generic ics event file
  • MeetingId: The meeting ID of the meeting with the current status
  • CanceledMeetingId: The meeting ID of the canceled meeting
Additionally, all custom fields in the ScheduleOnce custom field library are included in the POST message. If the field is not used in the booking form template or isn’t provided in the submission, it’s value will be empty in the message.

Below is an example of the raw body of an HTTP POST message:
 
bookingpage=MyBookingPage&meetingid=9459797&trackingid=58550090&location=Sanfrancisco&subject=Important+Meeting&name=Harry+Potter&email=Harrypotter%40hogwart.ac.uk&mobile=44-7934298444&customertimezone=United States; Eastern time (GMT-5:00) &meetingtime=2016-11-23T14:00:00&duration=60&meetingstatus=scheduled&addtogoogle=https%3a%2f%2fsecure.scheduleonce.com%2fdownload.aspx%3fmid%3d7GbG57bKDwW4JX1vHaAiOQ%3d%3d&addtooutlook=https%3a%2f%2fsecure.scheduleonce.com%2fdownload.aspx%3fmid%3d7GbG57bKDwW4JX1vHaAiOQ%3d%3d%26type%3d3&addtoical=https%3a%2f%2fsecure.scheduleonce.com%2fdownload.aspx%3fmid%3d7GbG57bKDwW4JX1vHaAiOQ%3d%3d%26type%3d1&addtocalendar=https%3a%2f%2fsecure.scheduleonce.com%2fdownload.aspx%3fmid%3d7GbG57bKDwW4JX1vHaAiOQ%3d%3d%26type%3d2&cancelrescheduleurl=https%3a%2f%2fsecure.scheduleonce.com%2fSalesForceDemo%26Params%3dIPLa6BkbZ-TMb2Hk0uv8yV*37-G6m9B4&lastupdated=2016-11-09T07:11:43&Country=&State=&Location=&Terms+of+service=&Attachment=&Company+Website=
For example, if you create a custom field in ScheduleOnce called “MyCustomField” the following key-value pair will be appended to the message:
 
&MyCustomFieldName1=Value1


Testing the Webhooks

If you need to test POST messages before implementing them, you can easily see the content of the message by setting the receiving Webhook to a temporary URL provided by Request bin.

 

 

Rate this article