Answer · Tracking & analytics

Why is RefID tracking blank or Bad Request in Bookings?

Last updated 4 min read6 sources

The question people ask
“Why is RefID tracking data blank (or giving Bad Request) in Microsoft Bookings?”

Asked in Microsoft Tech Community (opens in a new tab), Microsoft Tech Community (opens in a new tab) and Microsoft Learn (opens in a new tab)

Short answer

RefID (a campaign code such as ?RefID=spring_ads added to your booking page link) is the only campaign tracking feature Microsoft documents for Bookings. When it works, the value appears in the Tracking data column of the booking export. Since late 2023, though, users have reported two failures: the link returns a Bad Request page, or the booking goes through but Tracking data is blank. Microsoft hasn't posted a fix in those threads. We haven't been able to confirm whether it works reliably as of September 2026, so test it on your own page before you rely on it.

How RefID is supposed to work#

Microsoft's booking page documentation says to add a campaign ID to the page URL, and gives this example:

Text
https://outlook.office365.com/owa/calendar/TailspinToys@contosopetscom.onmicrosoft.com/bookings/?RefID=Twitter

The same page adds two warnings. Campaign IDs may only contain letters, numbers, underscores or hyphens, and "make sure you test your Campaign ID url". In February 2024 a Microsoft employee confirmed on Tech Community that the ID "will get attached to the appointment" and appears in the exported appointment data.

The export is the only place Bookings shows it. Go to the Shared Bookings home page, select Export, pick a date range and download the TSV file. The Tracking data field is one of the newer report columns.

What people report#

WhenWhat happenedOutcome
Nov 2023Adding ?refID= gave a Bad Request page on 79 of one organisation's 80 booking pages, including with Microsoft's own documentation exampleNo replies on Tech Community. The Q&A copy was deflected and locked.
Mar 2024 and Jan 2025Bookings were made through RefID links, but the Tracking data column was blank in the exportNo fix posted. The original poster said "it didn't work for us".
2023A user could see Tracking data in the export and wanted it through the Graph APIUnanswered

Other query strings have broken Bookings links too. See UTM parameters causing Bad Request.

How to test and troubleshoot#

  1. Use a plain value. Start with something like ?RefID=test_01. No spaces, dots, % encoding, + or = in the value.
  2. Make it the only parameter. Remove UTMs and any other query strings, then add them back one at a time once the plain version works.
  3. Try both URL formats. Microsoft's example still uses the older outlook.office365.com/owa/calendar/.../bookings/ address, while current pages use outlook.office.com/book/.... Microsoft doesn't say whether RefID behaves the same on both.
  4. Make a real test booking through the tagged link, not through the calendar view in the Bookings web app.
  5. Export as an administrator. The FAQ says only staff with the Administrator role can download the report. Microsoft's docs describe the window as four-month periods in one place and "the past 120 days" in another, so choose a range that includes today.
  6. Check a second source. If you have a Power Automate flow on When a appointment is Created, look at the TrackingData field in the run history. If it's filled there but blank in the export (or the other way round), you've narrowed down where the problem is.
  7. If you get Bad Request, confirm the page opens without the parameter, then open a Microsoft support ticket with the exact URL. Community threads on this have been deflected, not fixed.

If RefID doesn't work for you#

Keep campaign data on your side. Tag inbound traffic to a landing page on your own site, record the source there, and link to Bookings with no parameters or only a short RefID code. The UTM parameters guide covers this, and GA4 conversion tracking explains how RefID fits into a server-side setup.

Doing this with BookingsXP#

BookingsXP doesn't depend on RefID. The widget captures UTMs, click IDs such as gclid and fbclid, the referrer and the landing page on your site, then writes them into the booking itself: into the booking notes, and optionally into a Bookings custom question you choose. Staff see the source on the appointment in Bookings and Outlook. See analytics and attribution. BookingsXP is independent and not affiliated with or endorsed by Microsoft.

Questions people also ask

Sources

  1. Microsoft Learn: Customize booking page (opens in a new tab) · learn.microsoft.com
  2. Microsoft Learn: Reporting info (opens in a new tab) · learn.microsoft.com
  3. Microsoft Learn: Bookings faq (opens in a new tab) · learn.microsoft.com
  4. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  5. Microsoft Tech Community: Ms bookings tracking data refid generate bad request page (opens in a new tab) · techcommunity.microsoft.com
  6. Microsoft Tech Community: Track conversions for appointments booked through microsoft bookings on gt4 (opens in a new tab) · techcommunity.microsoft.com