Others

How to Access Microsoft Bookings Custom Question Data in Power Automate

Adam DavisAdam Davis Oct 28, 2026 868 views

Question details

The user needs to extract and read customer answers from custom questions within a Microsoft Bookings appointment using a Power Automate flow.

Product
Microsoft Bookings and Power Automate
Device & OS
not provided
Scenario
Automating appointment data extraction to process customer information from custom fields.
Observed behavior
The standard Microsoft Bookings trigger returns blank fields for customer answers or causes an 'Apply to each' error because the custom data is returned as a string rather than a parseable array.
Before you start

Ensure you have the necessary permissions to access Microsoft Graph API, and verify whether your Power Automate environment includes access to premium connectors.

Solution 1Recommended

Use the Microsoft Graph API to Retrieve Booking Details

Bypass the limitations of the standard Bookings trigger by directly querying the Graph API to extract custom question answers.

The standard Microsoft Bookings trigger in Power Automate has known limitations when exposing custom-question data. Instead of relying on the trigger's outputs, you can make a direct call to the Microsoft Graph API to retrieve the full, unformatted booking appointment details, including custom answers.

1
Add an HTTP Action

In your Power Automate flow, add the 'HTTP' premium action to make a GET request to the Microsoft Graph API endpoint for the specific booking appointment.

2
Configure Authentication

Set up the required authentication in the HTTP action using OAuth or a registered Azure AD application that possesses 'Bookings.Read.All' permissions.

3
Parse the API Response

Add a 'Parse JSON' action to format the HTTP response body. This converts the custom questions string into a proper array, allowing you to use an 'Apply to each' loop without errors.

Use the Microsoft Graph API to Retrieve Booking Details
Premium License Required: Calling the Microsoft Graph API via the HTTP connector requires a premium Power Automate license.
Free Microsoft Office alternative

Boost Your Daily Productivity with WPS Office

While highly complex automated workflows may require specific Microsoft tools like Power Automate, you can handle all your everyday document, spreadsheet, and presentation tasks effortlessly with WPS Office. It provides a lightweight, highly compatible, and completely free alternative to Microsoft Office.

  1. 1. Download the Installer: Visit the official WPS Office website and click the free download button for your operating system.
  2. 2. Install WPS Office: Run the downloaded setup file and follow the on-screen prompts to complete the lightweight installation.
  3. 3. Open Your Office Files: Launch WPS Office and instantly open your existing Microsoft Office files with perfect formatting compatibility.
Fully compatible with Microsoft Word, Excel, and PowerPoint formats (.docx, .xlsx, .pptx).Lightweight installation that runs incredibly fast and smoothly on almost any device.Familiar, user-friendly interface requiring zero learning curve for traditional Office users.Built-in PDF editing tools seamlessly combined with core office applications in one tabbed window.
microsoft office alternative - wps office

Frequently Asked Questions

Why does the Bookings trigger output return blank for customer answers?

The standard Microsoft Bookings trigger in Power Automate currently has a known limitation where custom fields and answers are not reliably included in the output payload, frequently returning them as null or blank strings.

Can I access Bookings custom questions without a premium Power Automate license?

Generally, accessing the raw, correctly formatted data via the Microsoft Graph API requires the premium HTTP connector. Without a premium license, you may be severely limited to the flawed data provided directly by the standard trigger.

How do I fix the 'Apply to each' error when reading customer answers?

This error occurs because the trigger returns the custom answers as a single unformatted string instead of an iterable array. You must use a 'Parse JSON' action to explicitly convert the string data into an array before passing it into an 'Apply to each' loop.