Microsoft Bookings (Preview)

Microsoft Bookings is a scheduling tool and is part of the Microsoft Office family of products. It allows users and organizations to create booking pages and helps their customers book appointments easily.

This connector is available in the following products and regions:

Service Class Regions
Logic Apps Standard All Logic Apps regions except the following:
     -   Azure Government regions
     -   Azure China regions
     -   US Department of Defense (DoD)
Power Automate Standard All Power Automate regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Power Apps Standard All Power Apps regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Contact
Name Microsoft 365 Support
URL https://support.microsoft.com/en-us/contactus#
Connector Metadata
Publisher Microsoft Corporation
Website https://book.ms
Privacy policy https://docs.microsoft.com/en-us/microsoft-365/bookings/bookings-faq?view=o365-worldwide#privacy
Categories Business Management;Collaboration

Microsoft Bookings connector is built with the purpose of extending Booking appointments with other functionalities that power platform has to offer. Have you ever looked for custom workflows which you have wanted to build for your customers when they make an appoint with your business, like, Booking a Zoom meeting along with an appointment, Integrating a payment method using Sripe, Uploading customer data to a CRM system, sending out welcome emails? Booking connector is a solution for these asks. With this connector we are exposing all appointment booking actions - like Create/Update/Delete of Bookings.

Prerequisites

Customers trying to use the Bookings Connector should have a Bookings Business License to use this connector with. Microsoft Bookings will be available with these licenses.

How to get credentials

Microsoft Bookings uses Microsoft Entra ID authentication. Having a valid O365 account will ensure that you are authenticated to use Bookings connector. You should be a signed in user to create appointment based flows.

Get started with your connector

For creating a custom flow with Bookings apppointments as triggers, you will need to know the Booking busineess' SMTP address. You can build flows with bookings appointment being created/updated/cancelled as triggers. Here are some of the common flows that you can build:

Integration with Stripe

Stripe allows private individuals and businesses to accept payments over the internet. You can track customers, orders, invoices and more; For more information Stripe | Microsoft Power Automate

Integration with Zoom

This Connector will help to automate Zoom Meeting Operations; For more information Zoom Meetings (Independent Publisher) | Microsoft Power Automate

Integration with Dynamic 365

Dynamics 365 Sales Insights helps increase your sales with the help of AI-driven insights that promote personalized engagement and proactive decision making to help build relationships. ; For more information Dynamics 365 Sales Insights | Microsoft Power Automate

Here is all the list of connectors: List of supported connectors | Microsoft Power Automate

Known issues and limitations

  1. Only Bookings admins can create flows using Appointment triggers. Description: Right now only Bookings admins (different from tenant admins) can create appointment triggers. If you are a user who is not an admin (Team Member, Scheduler, Viewer, Guest), you should ask your admin to create a flow. Alternatively, you can also request for admin access.

  2. Only 5 flows can be created per Bookings Mailbox. Description: For a Booking Mailbox, only 5 flows can be created. This is a Bookings Mailbox level limit and not a per admin limit. If you are looking for more than one action for an appointment trigger, you can add that in one of the existing flows by using the Add Action button. You can contact other Booking administrators for support.

  3. Errors saying "Staff not part of Bookings Business", "Invalid authority" while creating a flow. Description: Please ensure you are a part of the said Bookings Mailbox and you are an admin for the same. You can go to the staff tab and verify the same.

  4. Some of the Bookings parameters - Cancel Reason for 1:1 Bookings are not populated. Description: The said paramters do not appear now and we are working to fix this soon.

  5. Bad Gateway Error - If there are issues in the backend API for creating flows. 502 Bad gateway errors are seen. Please report the same to Microsoft 365 support.

Common errors and remedies

HTTP Error Codes while creating flows:

  1. '401': Check for Authentication related issues in your connection.
  2. '403': Only Bookings Administrators can create appointment flows. Check (1) in Known issues and Limitations section.
  3. '403': Notification URL domain not a part of allowed list.
  4. '429': More than expected number of appointment flows created for a business. Check (2) in Known issues and Limitations section.
  5. '502': This is an internal server error. Please report this to your support engineer with all the error details in the flow creation response.

FAQ

  1. What do I do if my Booking calendar is not a part of the drop down in the triggers? Answer: This drop down is based on recently accessed bookings calendars for which user is an admin. You can visit it once from Bookings web page and this should ensure that Bookings Calendar appears. You might also not have admin access if you are not seeing a specific mailbox alone.

  2. If (1) does not work, How do I create a flow for a calendar I am an admin of? Answer: You can enter a custom value. The value here will be the Business' SMTP address/ You can head to your Bookings page. Look for the Integrations tab and select the Power Automate option. You can copy the SMTP address displayed here and paste it in the flow's text box.

  3. How to get Customer data from the appointment trigger responses? Answer: If this is a 1:1 booking, then the top level fields like CustomerName, CustomerEmail etc can be used. If it is a group bookings, the customers array can be used to get fields like displayName (customers email, customers displayName etc) can be used with a power automate "Foreach" option.

  4. Why is the StaffMembers an array? Answer: You will be able to assign more than one staff member as host. If your service has only one staff as host, then the staff details will be seen in the staff member array.

  5. Is there a common id that one can use across triggers for a same appointment? Answer: Yes, you can use the selfServiceAppointmentId. This field will be populated for all type of appointments - be it Online or In-Person or Staff Booked or customer Booked. The "Id" field is an exchange id and is not unique across triggers.

  6. Is there a way to get what changed in the update appointment trigger notification? Answer: No, this is not possible today.

  7. How does notifications for multi attendee appointment work? Answer: In case of appointments with multiple attendees, addition of new customers (after the first one) is triggered as an update appointment and not as a create appointment. This is due to the fact that adding a new customer to a created booking essentially means adding an attendee to an existing bookings' appointment entity. The first customer that was added to the slot always triggers the appointment creation trigger as that is the point when the booking appointment entity is created.

Creating a connection

The connector supports the following authentication types:

Default Parameters for creating connection. All regions Not shareable

Default

Applicable: All regions

Parameters for creating connection.

This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.

Throttling Limits

Name Calls Renewal Period
API calls per connection 100 60 seconds

Actions

List Booking Businesses where user is an admin

Operation used to list all mailboxes for which the accessing user is an Administrator.

List Booking Businesses where user is an admin

Operation used to list all mailboxes for which the accessing user is an Administrator.

Returns

Triggers

When a appointment is Created

This trigger is used for listening to create of bookings appointments. Select a booking page or enter the SMTP address of the booking page that you are looking forward to listen for create appointment events

When an appointment is Cancelled

This trigger is used for listening to cancel of bookings appointments. Select a booking page or enter the SMTP address of the booking page that you are looking forward to listen for cancel appointment events.

When an appointment is Updated

This trigger is used for listening to update of bookings appointments. Select a booking page or enter the SMTP address of the booking page that you are looking forward to listen for update appointment events.

When a appointment is Created

This trigger is used for listening to create of bookings appointments. Select a booking page or enter the SMTP address of the booking page that you are looking forward to listen for create appointment events

Parameters

Name Key Required Type Description
Booking page.
SMTPAddress True string

Select a booking page

change_type
change_type True array of string

Changes to listen on

Returns

When an appointment is Cancelled

This trigger is used for listening to cancel of bookings appointments. Select a booking page or enter the SMTP address of the booking page that you are looking forward to listen for cancel appointment events.

Parameters

Name Key Required Type Description
Booking page.
SMTPAddress True string

Select a booking page

change_type
change_type True array of string

Changes to listen on

Returns

When an appointment is Updated

This trigger is used for listening to update of bookings appointments. Select a booking page or enter the SMTP address of the booking page that you are looking forward to listen for update appointment events.

Parameters

Name Key Required Type Description
Booking page.
SMTPAddress True string

Select a booking page

change_type
change_type True array of string

Changes to listen on

Returns

Definitions

ListMailboxResponse

Name Path Type Description
mailboxes
mailboxes array of MailboxEntity

All mailbox entities.

MailboxEntity

Name Path Type Description
Display name
displayName string

Mailbox Display name.

Mailbox SMTP
email string

SMTP of the Booking mailbox.

AppointmentData

Name Path Type Description
Additional Info
AdditionalInfo string

Additional Info about the booking.

Customer Email
CustomerEmail string

Customer Email address in case of 1:1 bookings.

CustomerId
CustomerId string

Customer Id in case of 1:1 bookings.

Location Display Name
CustomerLocation.DisplayName string

Customer location display name. Location filled from C2 page for 1:1 Booking.

City
CustomerLocation.PhysicalAddress.City string

City the customer belongs to for 1:1 booking.

CountryOrRegion
CustomerLocation.PhysicalAddress.CountryOrRegion string

Country Or Region of the customer for 1:1 booking.

PostalCode
CustomerLocation.PhysicalAddress.PostalCode string

Postal Code of the customer for 1:1 booking.

State
CustomerLocation.PhysicalAddress.State string

State where the customer belongs to in the 1:1 booking.

Street
CustomerLocation.PhysicalAddress.Street string

Street where the customer belongs to in the 1:1 booking.

CustomerName
CustomerName string

Customer Name for 1:1 booking.

CustomerNotes
CustomerNotes string

Customer Notes for 1:1 booking.

CustomQuestionAnswers
CustomQuestionAnswers array of CustomQuestion

All the custom questions and answers for 1:1 booking.

CustomerPhone
CustomerPhone string

Customer phone for 1:1 booking.

CustomerTimeZone
CustomerTimeZone string

Customer Time Zone for 1:1 booking.

Customers
Customers array of CustomerData

List of customers in the 1:N booking

Duration
Duration integer

Duration of the appointment

EndTime
EndTime string

End Time of the appointment.

FilledAttendeesCount
FilledAttendeesCount integer

Number of attendees who have booked this appoinment slot.

Id
Id string

[Deprecated] - use selfServiceAppointmentId as unique identifer for the bookings appointment.

IsSMSNotificationsEnabled
IsSMSNotificationsEnabled boolean

Field to check if SMS notification is enabled for the appointment.

JoinWebURL
JoinWebURL string

URL for joining this online appointment.

MaxAttendeesCount
MaxAttendeesCount integer

Max number of attendees allowed in this appoinment.

SelfServiceAppointmentId
SelfServiceAppointmentId string

Appointment id for the booking appointment.

ServiceId
ServiceId string

Unique Service Identifier.

ServiceName
ServiceName string

Name of the bookings service.

ServiceNotes
ServiceNotes string

Service level notes for the staff and admin.

StaffMembers
StaffMembers array of StaffMemberData

List of staff members

Start Time
StartTime string

Start Time of the appointment.

Tracking Data
TrackingData string

Campaign tracking Data.

Cancel Reason
CancelReason string

Reason for cancellation of this booking appointment

CustomerData

Name Path Type Description
Email
Email string

Email of the customer in the group booking.

Id
Id string

Unique ID of the customer in the group booking.

Location Display Name
Location.DisplayName string

Customer location display name. Location filled from C2 page for group booking.

City
Location.PhysicalAddress.City string

City the customer belongs to for group booking.

Country Or Region
Location.PhysicalAddress.CountryOrRegion string

Country Or Region of the customer for group booking.

Postal Code
Location.PhysicalAddress.PostalCode string

Postal Code of the customer for group booking.

State
Location.PhysicalAddress.State string

State where the customer belongs to in the group booking.

Street
Location.PhysicalAddress.Street string

Street where the customer belongs to in the group booking.

Display Name
Name string

Display Name of the customer in the group booking.

Notes
Notes string

Notes of the customer in the group booking.

Timezone
TimeZone string

Timezone of the customer in the group booking.

Answers
Answers array of CustomQuestion

All the custom questions and answers.

StaffMemberData

Name Path Type Description
DisplayName
DisplayName string

Display Name of the staff assigned for this appointment.

EmailAddress
EmailAddress string

Email Address of the staff assigned to this appointment.

Id
Id string

Unique Staff identifier.

CustomQuestion

Name Path Type Description
Answer
Answer string

Answer to this custom question.

AnswerOptions
AnswerOptions array of string

All the answer options.

IsRequired
IsRequired boolean

Tells if answering this question is mandatory.

Question
Question string

Question to be answered.

QuestionID
QuestionID string

Unique Identifier of the Question to be answered.

SelectedOptions
SelectedOptions array of integer

All the selected answer options.