Alerts & automation

Power Automate flows for Microsoft Bookings

Power Automate's Microsoft Bookings connector reacts to appointments, but it cannot tell you which ad, email or page produced them. BookingsXP sends a webhook for every widget booking with that attribution included, and Power Automate can receive it with its HTTP request trigger and pass it to the rest of Microsoft 365.

Plan
Plan: ProNeeds Pro ($19 a month) or Business ($49 a month).
In short
Start a cloud flow from "When an HTTP request is received" and write bookings to SharePoint, Dataverse or Excel.
Microsoft Bookings
Stays your system of record. Bookings land in Outlook and Teams and Microsoft sends the invites and reminders.

How it works

What happens with Power Automate

  • The flow starts with the Request connector's "When an HTTP request is received" trigger. After you save the flow, Power Automate generates a URL with a signature (sig) in its query string.
  • BookingsXP posts the booking.created envelope to that URL. A JSON schema on the trigger turns fields such as data.booking.customer.email into dynamic content.
  • From there you can add a SharePoint list item, a Dataverse row or an Excel table row, send an Outlook email, or post to Teams.

Setup

Set up Power Automate

5 steps. Names of menus and buttons are as they appear today; vendors rename things, so look for the closest match.
  1. Step 1: Turn on Store bookings

    Dashboard → widget → Data & access → "Store bookings in BookingsXP".

  2. Step 2: Create the flow

    Create an instant cloud flow and choose the trigger "When an HTTP request is received". Set "Who can trigger the flow?" to Anyone: BookingsXP authenticates with the URL's signature, not with a Microsoft Entra token.

  3. Step 3: Generate the schema from a sample

    Click "Use sample payload to generate schema" and paste a booking.created sample from the webhook docs. This makes every field available as dynamic content.

    Trimmed sample
    {
      "type": "booking.created",
      "data": {
        "booking": {
          "reference": "BXP-7K2M9Q",
          "start": "2026-10-02T08:30:00.000Z",
          "service": { "name": "Initial consultation" },
          "customer": { "name": "Sam Example", "email": "sam@example.com" }
        },
        "attribution": { "source": "google", "medium": "cpc", "campaign": "autumn-audit" }
      }
    }
  4. Step 4: Save, copy the URL, add the endpoint

    Save the flow so the HTTP URL appears, copy it, then in BookingsXP go to Integrations → Add an endpoint → Webhook (JSON) and paste it.

  5. Step 5: Add actions and test

    Add a Condition on type equal to booking.created, then your actions. Make a real test booking to run the flow end to end, and check the run history.

Outcomes and caveats

What you get

The result

  • Website bookings flowing into Microsoft 365 with the campaign, source and click IDs attached.
  • A way to log every booking to a SharePoint list or Excel table for reporting.
  • The BXP reference in both places, so rows match the notes on the appointment in Bookings.

Good to know

Limits and caveats

  • "When an HTTP request is received" is a premium connector in Power Automate, so the flow owner needs a premium licence.
  • BookingsXP Pro is needed for webhooks.
  • If "Who can trigger the flow?" is restricted to your tenant, requests without an Entra token are rejected and deliveries fail.
  • For a simple channel alert you do not need a flow at all: use the native Microsoft Teams endpoint.

FAQ

Power Automate questions

Something not covered? Email hello@bookingsxp.com.

Start free, no card

Start on Free with the widget and GA4 events, then move to Pro when you want ad conversions, webhooks and chat alerts.