Connect Any Patient Scheduling Platform

Send bookings from any patient scheduling platform to Ours Privacy, including Zenoti, Zocdoc, Phreesia, Relatient, Epic MyChart, and UpScript, using a native source, webhooks, an automation layer, or the Ingest API.

Patients often book on a platform you do not own. When the booking happens on a third-party site, the booking is still the conversion, so if that platform never tells Ours Privacy the appointment happened, the Google Ads or Meta campaign that produced it gets no credit and no-shows never show up in your reports.

Use this page to send bookings from any scheduling platform into Ours Privacy, whether or not that platform has a dedicated source. There is no supported-platform list you have to appear on. If the platform can send a notification, expose an API, or write to a table you already query, its bookings can reach Ours Privacy and be attributed to the campaign that drove them.


The Four Connection Paths

Every scheduling platform connects one of four ways. Work down the list and stop at the first one your platform supports.

  1. Dedicated source. The platform has a prebuilt source you configure in the dashboard. No engineering work.
  2. The platform's own webhook. The platform posts booking notifications to a webhook source URL. This covers most platforms.
  3. An automation layer. A HIPAA-compliant automation platform such as Keragon watches the platform and forwards bookings, for platforms with no outbound webhook.
  4. The Ingest API. Your backend, a scheduled warehouse job, or a script sends the bookings. This always works if you can read the data at all.

Platforms With a Documented Setup

These have step-by-step pages you can follow today. The mechanism differs and it matters, so it is called out per platform.

Patient scheduling and intake:

  • Healthie: dedicated source. The platform sends scheduling and practice activity to Ours Privacy server-side, so it does not depend on the patient's browser.
  • NexHealth: two paths that combine well. A webhook carries appointment outcomes such as booked, attended, and no-show, and the Web SDK or Tag Manager covers the booking funnel in between.
  • Yosi: Web SDK or Tag Manager, covering scheduling and patient intake.
  • Loyal Health: Web SDK or Tag Manager across Loyal-powered journeys.

General-purpose booking tools, commonly used for consults and provider calendars rather than clinical scheduling. All three are dedicated webhook sources:

Why the distinction matters: browser-based tracking captures what happens on pages the platform serves to the patient. If a booking is created, rescheduled, or marked a no-show entirely inside the platform's backend, only a server-side path will see it. When attendance and no-shows are what you need to measure, plan on a webhook, the Ingest API, or an EHR connection.


Platforms Customers Ask About Most

These platforms do not have a dedicated source today. Each one still connects, and the path is listed with its honest limitation so you know what to expect before you start.

PlatformHow it connectsWhat to know
ZenotiPlatform webhook to a webhook sourceOften the system of record for both bookings and payments, so it can send booking and revenue outcomes. A common pattern routes bookings through a CRM first, in which case connect whichever system holds the confirmed appointment.
ZocdocPlatform webhook or reporting export to the Ingest APIAd click parameters passed into the booking flow can come back out with the booking, which makes campaign attribution straightforward. Confirm which fields your Zocdoc agreement exposes.
PhreesiaPlatform webhook, or reconciliation on a shared identifierPhreesia does not offer a native integration for marketing measurement. Webhooks or post-appointment reconciliation on an identifier such as email are the supported routes, and both work here: matching on email is exactly how off-site bookings stitch to the original web session.
RelatientPlatform webhook to a webhook sourceSelf-scheduling activity is webhook-based, so this is a direct configuration rather than a custom build.
Epic open schedulingFHIR or HL7 interface, or an automation layerRequires interface access granted through your Epic environment. Plan for your Epic team's involvement and a longer timeline than a webhook. See Choose an EHR or PMS Connection Path.
Epic MyChartWarehouse or reporting feed, or an automation layerMyChart bookings happen outside your website, and MyChart does not generally push booking notifications outbound for marketing use. The practical route is the appointment record once it lands in a reportable system: see Send EHR Data From Your Data Warehouse. Expect batch timing, not real time.
UpScriptPlatform webhook or the Ingest APITelemedicine consults often book on a separate domain. Treat that booking flow as its own conversion source, and see Cross-Domain Bookings below.
LeadingReachIngest API or an automation layerTypically carries referral and lead flow while care is handled in the EHR, so connect it for lead capture and connect the EHR for attendance and revenue.
Google FormsAutomation layer or Apps Script to the Ingest APIGoogle Forms bookings have no outbound webhook. A short Apps Script on submit, or an automation platform, sends the submission. Reasonable for tour and consult requests; treat submissions as lead_captured rather than confirmed bookings.

Other platforms by vertical

We are asked about these regularly. None has a dedicated source, and the mechanism depends on what your specific account exposes, so treat the middle column as where to look first rather than a guarantee. Your account representative can confirm before you commit to a timeline.

PlatformUsual starting pointVertical
SolutionreachPlatform webhook or automation layerPatient engagement and recall
WeavePlatform webhook or automation layerDental and small practice communications
Luma HealthPlatform webhook or automation layerHealth system patient access
KlaraEHR interface behind Klara, or an automation layerPatient messaging and intake
MindbodyPlatform webhook or APIWellness, spa, and fitness
BoulevardPlatform webhook or APIMedspa and aesthetics
SimplePracticeAutomation layer or the Ingest APIBehavioral health and solo practice
JaneAutomation layer or the Ingest APIAllied health and physiotherapy
TebraAPI or warehouse feedIndependent practice management
DrChronoAPI or automation layerAmbulatory and specialty
Acuity SchedulingPlatform webhookGeneral-purpose booking, common for consults
Squarespace SchedulingPlatform webhookGeneral-purpose booking

Why this table is vaguer than the one above: the platforms above appear in real customer conversations where we confirmed the mechanism. These are ones we can connect through the same four paths but have not verified account by account. We would rather tell you where to start than name a mechanism we have not confirmed for your setup.

Note: A platform absent from this table is not a platform we cannot connect. The four paths above are platform-agnostic. Send the platform name and the outcomes you want to measure to your account representative.


How an Off-Site Booking Gets Credited

This is the part that makes third-party bookings worth connecting. It is how you attribute a booking to the Google Ads or Meta campaign that drove it, and how that booking becomes an offline conversion your ad platform can optimize on, even though it happened on someone else's website.

  1. A patient clicks your ad and lands on your site. Ours Privacy captures the click identifiers on that landing page, including gclid, fbclid, and msclkid, and stores them with the visitor. At this point the visitor is anonymous.
  2. The patient leaves to book elsewhere. They book on the scheduling platform, which your website never sees.
  3. The booking arrives from the scheduling platform through any of the four paths, carrying an identifier such as an email address or your own patient or lead ID.
  4. Ours Privacy matches it to the earlier session. A deterministic match on email or your external ID links the booking to the same visitor who clicked the ad. See Visitor Identity and Matching.
  5. The booking inherits the original ad click. Because the click identifiers are already on that visitor, the booking becomes attributable to the exact campaign that drove it, even though it happened off-site and later.
  6. The conversion can go back to the ad platform as an offline conversion, so Meta, Google, and Microsoft can optimize toward appointments rather than form fills. Control what is forwarded with Allow Listing Events and Data Mapping.

To make this work, send a stable identifier with the booking. Email is the most common and is usually available from a scheduling platform. Send identity as visitor properties rather than embedding it in event properties.

Important: Send the time the booking actually occurred, not the time your job ran, so back-dated bookings land on the correct day in your reports.


Map Platform States to Standard Events

Scheduling platforms disagree about what "booked" means. Some fire an event when a patient starts a booking, some only when staff confirms it, and some use "arrived" for attendance. Map them explicitly so your funnel counts what you intend.

What the platform reportsStandard eventNotes
Booking started, "Schedule" clicked, request submitted, form submittedlead_capturedIntent, not a booking. Keeps your booked count clean.
Appointment created or confirmed on the scheduleappointment_bookedThe conversion most campaigns optimize on. Assign the appointment_id here.
Patient confirmed or acknowledged a reminderappointment_confirmedOptional funnel step between booked and completed.
Arrived, checked in, seen, visit closed, intake finishedappointment_completedAttendance. For telehealth, send when the visit or intake finishes.
No-show, missedappointment_no_showPowers leakage analysis.
Cancelled and not replacedappointment_cancelledIf the appointment moved instead, send appointment_rescheduled.
Moved to a new time or providerappointment_rescheduledReuse the original appointment_id rather than cancelling and rebooking.
Payment taken at checkoutpurchaseThe GA4-aligned conversion ad platforms optimize on.
Revenue posted in the ledgerrevenue_recognizedOften arrives later and in pieces.

Deduplicate on appointment_id. Assign one ID at booking and reuse it through confirmation, attendance, and revenue. Platforms commonly resend the same state, and a stable appointment_id keeps one appointment from counting as several. For revenue that settles in pieces, also set a stable $distinct_id.

See Standard Healthcare Events for the recommended properties on each event, including service_line, provider_id, booking_channel, and location_id.


Cross-Domain Bookings

When the booking flow lives on a different domain than your marketing site, such as a telemedicine consult on a vendor domain, the browser treats it as a separate visitor.

Two options, and they combine well:

Use both when you can. The client-side events show where patients drop off; the server-side booking confirms the appointment exists.


Prepare to Connect a New Platform

Bring these details to your account representative:

  1. The platform name, and whether it offers outbound webhooks, an API, or neither.
  2. Whether the booking data already lands in a warehouse or data lake you can query.
  3. The booking, attendance, and revenue outcomes you want to measure.
  4. Which identifier the platform can send with a booking, such as email or a patient ID.
  5. Which of the platform's states you consider a real booking.
  6. Whether patients book on a domain you control.

Next Steps

How is this guide?

Patient Scheduling

Previous Page

NexHealth Integration

Next Page

On this page