Eine technische Anleitung für Webdesigner, WordPress-Agenturen und Marketing-Agenturen, die das Dr. Flex Booking Widget sauber in Praxis-Websites einbauen, mit Deeplinks anliegenbasierte CTAs steuern und mit Buchungstracking den vollständigen Funnel bis zur finalen Terminbuchung messbar machen.
Das Dr. Flex Booking Widget ist die Online-Buchungsstrecke, die Patienten direkt auf der Praxis-Website nutzen – ohne Anruf, ohne Wartezeit, in ca. 30 Sekunden pro Termin. Eine saubere technische Einbindung entscheidet darüber, ob das Widget mobil performant lädt, ob Deeplinks anliegenbasierte CTAs ausspielen und ob Buchungen bis zum bestellten Termin durchgemessen werden können.
Für Agenturen, Webdesigner und technische Dienstleister bedeutet das: Wer die Integration sauber aufsetzt, liefert der Praxis nicht nur ein funktionierendes Tool, sondern eine messbare Conversion-Strecke – mit klarer Funnel-Sicht, sauberen Tracking-Events und kampagnenfähigen Deeplinks.
Das Booking Widget ist die zentrale Buchungs-Komponente der Dr. Flex Online-Terminvergabe. Es wird als JavaScript-Snippet oder über das offizielle WordPress-Plugin auf einer Praxis-Website eingebunden. Patienten sehen freie Slots in Echtzeit, wählen Sprechstunde und Behandler und buchen direkt – die Buchung landet ohne Umweg im Praxisverwaltungssystem (PVS) der Praxis.
Das Widget arbeitet nahtlos mit dem PVS-Connector (Echtzeit-Schnittstelle zu über 27 Praxisverwaltungssystemen), dem Praxis-Konfigurator (Sprechstunden, Behandler, Slots) und optional dem KI-Telefonassistenten Dr. Flex VoiceAI zusammen.
Dr. Flex ist DSGVO-konform und BSI C5-testiert (mit integriertem ISMS); Hosting erfolgt auf ISO 27001- und BSI C5-testierten Servern in Deutschland. Genutzt von über 14.100 medizinischen und dentalen Fachkräften, ab 39 €/Monat, ohne Vertragslaufzeit, monatlich kündbar.
Diese Anleitung richtet sich an alle technischen Dienstleister, die das Dr. Flex Booking Widget in Praxis-Websites einbauen oder bestehende Integrationen optimieren:
Welche Integrationsart für eine Praxis-Website geeignet ist, hängt vom verwendeten CMS, dem gewünschten Tracking-Setup und der gewünschten Patient-Experience ab. Hier die zwei offiziell unterstützten Varianten im Überblick.
Für eine Praxis mit einem Standort wird das embed.js-Script mit der medicalPracticeId der Praxis im <head> der Website eingebunden:
<script src="https://dr-flex.de/embed.js?medicalPracticeId=12345"></script>
Der CTA öffnet das Booking Widget per JavaScript-Aufruf:
<a href="javascript:toggleDrFlexAppointments()">Termin online buchen</a>
Für Multi-Praxis-Setups (mehrere Standorte) wird das Script ohne medicalPracticeId eingebunden und die jeweilige Praxis-ID erst beim Funktions-Aufruf übergeben:
<script src="https://dr-flex.de/embed.js"></script>
<a href="javascript:toggleDrFlexAppointments(12345)">Termin online buchen</a>
Das offizielle Dr. Flex Plugin ist im WordPress-Plugin-Verzeichnis verfügbar. Ablauf in der Agentur-Praxis:
Die Praxis hinterlegt im Praxis-Konfigurator einen Hex-Farbcode – das Booking Widget rendert daraufhin in der Praxis-Markenfarbe. Eine zusätzliche CSS-Anpassung auf Agentur-Seite ist nicht erforderlich und wird nicht empfohlen, weil ein Update am Widget-Frontend sonst die Anpassung überschreiben könnte.
Das Booking Widget wird erst nach dem Einrichtungstermin der Praxis live geschaltet (Installationstermin 15–90 Minuten je nach Komplexität der Terminstrukturen des PVS). Wer das Widget vor Fertigstellung online stellt, riskiert Falschbuchungen – also immer kurz mit der Praxis rückkoppeln, bevor das Snippet live geht.
Mit Deeplinks kann beim Öffnen des Booking Widgets gezielt eine bestimmte Sprechstunde, ein Behandler oder eine Kombination aus beidem vorausgewählt werden. Damit lassen sich CTAs auf der Praxis-Website präzise auf das jeweilige Patientenanliegen zuschneiden – etwa „Beratung buchen“, „Schmerztermin buchen“ oder „Kontrolle bei Dr. Müller buchen“.
Die technische Grundlage ist die JavaScript-Funktion toggleDrFlexAppointments(), der ein Optionen-Objekt mitgegeben wird. Voraussetzung ist die embed.js-Script-Einbindung im <head> der Website.
<a href="javascript:toggleDrFlexAppointments({consultationFilter: 'Kontrolle'})">
Kontrolltermin buchen
</a>
Mit regulären Ausdrücken lassen sich mehrere Terminarten gleichzeitig adressieren:
<a href="javascript:toggleDrFlexAppointments({consultationFilter: 'Neupatient*'})">
Termine für Neupatienten
</a>
<a href="javascript:toggleDrFlexAppointments({therapistFilter: 'Dr. Melanie Musterfrau'})">
Termin bei Dr. Melanie Musterfrau buchen
</a>
Alternativ über die Doktor-ID (im Dr. Flex Doktor-Konfigurator per Hover ablesbar):
<a href="javascript:toggleDrFlexAppointments({therapistIdFilter: [123, 234]})">
Termin bei Dr. Meyer oder Dr. Müller buchen
</a>
<a href="javascript:toggleDrFlexAppointments({consultationFilter: 'Kontrolle', therapistFilter: 'Dr. Müller'})">
Kontrolle bei Dr. Müller buchen
</a>
Bei mehreren Standorten wird die Praxis-ID als erstes Argument übergeben:
<a href="javascript:toggleDrFlexAppointments(12345, {consultationFilter: 'Kontrolle'})">
Kontrolltermin buchen in Praxis-Nord
</a>
Als Ausgangspunkt für anliegenbasierte Funnel-Buttons im Header, in der Hero, in Floating-Buttons, in Leistungsseiten oder im Footer:
consultationFilter: 'Beratung*'consultationFilter: 'Prophylaxe*'consultationFilter: 'Schmerz*'consultationFilter: 'Kontrolle*'consultationFilter: 'Implantat*'consultationFilter: 'KFO*'consultationFilter: 'Vorsorge*'consultationFilter: 'Rückruf*' (in Kombination mit einer Rückruf-Spalte im PVS)Die exakten Sprechstunden-Bezeichnungen kommen aus dem Praxis-Konfigurator der jeweiligen Praxis – vor dem Live-Schalten der Deeplinks immer mit der Praxis abgleichen.
Die höchste Conversion-Wirkung entsteht, wenn Deeplink-Buttons an mehreren Touchpoints der Website verfügbar sind:
Wenn ein Filter auf keine Sprechstunde und keinen Behandler trifft, wird der Filter ignoriert und das normale Booking Widget ohne Vorauswahl geöffnet. Für stabile Deeplinks deshalb immer mit Wildcard-Pattern (z. B. Beratung*) arbeiten, falls die Praxis ihre Sprechstunden umbenennt.
Für Marketing-Agenturen, die Performance-Kampagnen (Google Ads, Meta Ads, SEA, Newsletter) auf eine Praxis-Website ausspielen, ist die Frage entscheidend: „Wie viele Klicks wurden zu tatsächlich bestätigten Terminbuchungen?“ Das Buchungstracking des Dr. Flex Booking Widgets liefert genau diese Antwort – über vier definierte Events entlang des Buchungs-Funnels.
| Event | Trigger-Punkt | Funnel-Stufe | Typischer Use-Case |
|---|---|---|---|
appointment_opened | Patient wählt einen konkreten Termin – das Formular zur Eingabe von Name, Nummer und Rückfragen öffnet sich | Funnel-Einstieg (Intent) | Conversion-Vorstufe, UX- und Abbruchanalysen, Funnel-Top |
send | Alle Pflichtfelder ausgefüllt, SMS-TAN wird angefordert | Mitte-Funnel (Form-Complete) | Drop-off-Analyse zwischen Formular und TAN |
confirm | Patient hat die SMS-TAN eingegeben | Mitte-Funnel (TAN-Eingabe) | Abbruch-Detektion bei TAN-Verifikation |
tan_committed | TAN erfolgreich geprüft, Buchung final bestätigt | Funnel-Ende (Conversion) | Buchungsbasierte Conversion-Ziele in GA4, GTM, Meta Pixel |
Für buchungsbasierte Conversion-Ziele in Google Ads oder Meta Ads sollte ausschließlich das Event tan_committed verwendet werden – erst hier liegt eine final bestätigte Buchung mit eindeutiger Buchungs-ID vor.
appointment_opened)appointment_opened → send → confirm)tan_committed / Sitzungen)consultation / therapist)Dr. Flex hat das Booking Widget im Zuge eines Privacy-First-Ansatzes technisch überarbeitet. Tracking-Code für Google Analytics, Google Tag Manager oder Meta Pixel ist nicht mehr automatisch enthalten und muss – falls gewünscht – aktiv von der Agentur ergänzt werden.
Das hat zwei Konsequenzen für Agenturen:
Die Tiefen-Doku zum Buchungstracking inklusive aller Code-Snippets pflegt Dr. Flex zentral unter /aerzte/doku/Buchungstracking – dort liegen die jeweils aktuellsten autoritativen Beispiele.
analyticsCallbackAn jeder Stelle der Website, an der das Booking Widget per JavaScript geöffnet wird, muss ein zusätzliches JSON-Objekt mit einer Callback-Funktion namens analyticsCallback mitgegeben werden. Das Objekt muss bei jedem Funktions-Aufruf des Widgets erneut übergeben werden:
const drFlexData = {
analyticsCallback: function (data) {
// tracking code (siehe konkrete Beispiele weiter unten)
}
};
Eine oder mehrere Praxen direkt eingebunden:
<script src="https://dr-flex.de/embed.js?medicalPracticeId=12345"></script>
<script>
toggleDrFlexAppointments(drFlexData);
</script>
Generelle Einbindung für Einzel- oder Multipraxen per JavaScript:
<script src="https://dr-flex.de/embed.js"></script>
<script>
toggleDrFlexAppointments(12345, drFlexData);
</script>
data-ObjektsDer Funktions-Parameter data ist ein JSON-Objekt mit folgenden Keys:
["event", "category", "consultation", "label", "therapist", "insuranceType"]
Zusätzlich liefert Dr. Flex zwei Felder für eine eindeutige Identifikation einzelner Buchungen – wichtig für Conversion-Ziele und Server-Side-Tracking:
ordinalBookingID – eindeutige Buchungs-ID der Hauptbuchung. Bei appointment_opened, send und confirm immer null. Bei tan_committed immer gefüllt.combinedOrdinalBookingIds – Array mit zusätzlichen Buchungs-IDs bei Kombi-Terminen, sonst ein leeres Array.Die folgenden Beispiele zeigen mögliche Implementierungen der analyticsCallback-Funktion. Sie dienen als Orientierung und müssen projektspezifisch angepasst werden. Datenschutzrechtliche Vorgaben (DSGVO, Einwilligungen, Cookie-Banner) sind zwingend einzuhalten.
const drFlexData = {
analyticsCallback: function (data) {
if (typeof window.gtag === "function") {
if (typeof data === "object") {
window.gtag("event", data.category, {
event_category: data.category,
event_label: data.label,
value:
data.consultation +
" " +
data.therapist +
" " +
data.insuranceType,
});
}
}
},
};
const drFlexData = {
analyticsCallback: function (data) {
if (typeof window.dataLayer !== "undefined") {
if (typeof data === "object") {
window.dataLayer.push({
event: "Terminbuchung",
category: data.category,
label: data.label,
consultation: data.consultation,
therapist: data.therapist,
insuranceType: data.insuranceType,
});
}
}
},
};
const drFlexData = {
analyticsCallback: function (data) {
if (typeof window.fbq === "function") {
window.fbq("trackCustom", "Terminbuchung", data);
if (data.category === "confirm") {
window.fbq("track", "PageView");
}
}
},
};
Im WordPress-Plugin werden Tracking-Codes über den Reiter „Codebeispiele“ ausgewählt und unter „Konfiguration“ in das Feld „Callback“ eingefügt. Der Plugin-typische Ablauf in der Agentur-Praxis:
Während der Implementierung lassen sich die Events direkt in der Browser-Entwickler-Konsole prüfen. Im analyticsCallback ein console.log(data); einfügen – oder bei GTM-Setup im dataLayer schauen:
const drFlexData = {
analyticsCallback: function (data) {
console.log(data);
}
};
Dann auf der Praxis-Website das Booking Widget öffnen, einen Termin auswählen, ins Formular klicken – in der Konsole sollte sofort ein appointment_opened-Event mit den passenden Termininformationen erscheinen. Weitere nützliche Hilfsmittel: GTM Preview-Modus, GA4 DebugView und der Meta Pixel Helper (Chrome Extension).
Bevor das Booking Widget einer Praxis live geht, lohnt sich ein strukturierter Pre-Launch-Check. Die folgenden 19 Punkte decken Funktionalität, Deeplinks, Tracking, Mobile-Render, Datenschutz und Performance ab – als Vorlage für Agentur-interne QA-Checklisten gedacht.
embed.js-Script ist im <head> der Website eingebunden und lädt ohne 404 / CORS-FehlermedicalPracticeId-Parameter ist korrekt (mit der Praxis abgleichen)Beratung*) erfasst alle gewünschten Variantenappointment_opened-Event erscheint in der Browser-Konsole bzw. im dataLayer, wenn ein Slot ausgewählt wirdsend-Event wird ausgelöst, wenn die SMS-TAN angefordert wirdconfirm-Event wird ausgelöst, wenn die TAN eingegeben wirdtan_committed-Event wird ausgelöst, wenn die Buchung final bestätigt ist – inklusive ordinalBookingIDErfahrungswerte aus vielen Hundert Praxis-Integrationen, gesammelt als Leitplanken für Agentur-Projekte:
tan_committed. Andere Events sind Funnel-Stufen, keine Conversions – Buchungs-Ziel in Google Ads / Meta Ads ausschließlich auf tan_committed.ordinalBookingID für Server-Side-Tracking. Wer ein eigenes CRM oder einen Server-Side-Container betreibt, verknüpft die Buchung über ordinalBookingID mit Lead-Daten.Weiterführende Inspiration zu Patient-Funnels, FAQ-Strategien und Anliegen-Buttons: das Dr. Flex Beispielmuster „Zen-Praxis Website“ unter /produkt/zen-praxis/Website.
Dr. Flex selbst übernimmt die Einrichtung des Buchungstrackings nicht. Für Rückfragen zu PVS-Integration, API-Keys, Praxis-IDs, Sprechstunden-Bezeichnungen und Konfigurations-Themen ist das Dr. Flex Team direkt erreichbar:
Falls eine Praxis die Integration nicht selbst beauftragen kann oder eine schlüsselfertige Umsetzung wünscht, arbeitet Dr. Flex mit der Partneragentur Brands & Friends zusammen. Brands & Friends übernimmt auf Wunsch die komplette Web-Integration (Script-Einbindung, Deeplink-Buttons, Tracking, Datenschutz-Anpassung) für Praxis-Websites – als kostenpflichtige Dienstleistung.
Hinweis für Agenturen: Brands & Friends ist als dedizierte Partneragentur positioniert. Wer eigene Agentur-Leistungen anbietet, kann das Routing zur Partneragentur entweder optional anbieten oder überspringen – das Modell ist Co-Existenz, kein Konkurrenz-Verhältnis.
Antworten auf die typischen Fragen von Webdesignern, WordPress-Agenturen und Marketing-Agenturen.
Erst nach dem Einrichtungstermin der Praxis. Vorher kann es zu Falschbuchungen kommen, weil Sprechstunden, Behandler und Slots noch nicht vollständig konfiguriert sind. Im Zweifel kurze Rücksprache mit der Praxis halten.
Die JavaScript-Variante mit embed.js im <head> und CTA-Aufruf von toggleDrFlexAppointments(). Sie ist Voraussetzung für Buchungstracking und Deeplinks und damit Standard für Agentur-Integrationen mit Conversion-Tracking. Für reine WordPress-Websites ist alternativ das offizielle Dr. Flex Plugin geeignet.
Ja. Die Praxis hinterlegt im Praxis-Konfigurator einen Hex-Farbcode – das Booking Widget rendert dann in der Markenfarbe der Praxis. Eine zusätzliche CSS-Anpassung auf Agentur-Seite ist nicht nötig und nicht empfohlen.
Bei Multi-Praxis-Setups wird das embed.js-Script ohne medicalPracticeId eingebunden und die Praxis-ID erst beim Funktions-Aufruf übergeben – etwa toggleDrFlexAppointments(12345) für einen Standort oder toggleDrFlexAppointments(id1, id2, id3, ...) für mehrere. Die Praxis-IDs liefert der Dr. Flex Support auf Anfrage.
Über Deeplinks. toggleDrFlexAppointments({consultationFilter: 'Kontrolle'}) zeigt nur die Terminart „Kontrolle“, therapistFilter: 'Dr. Müller' nur Dr. Müller, beides lässt sich kombinieren. Eine vollständige Beispielsammlung steht im Abschnitt „Deeplinks“ weiter oben sowie unter /aerzte/doku/deeplinks.
Vier Events entlang des Buchungs-Funnels: appointment_opened (Slot ausgewählt, Formular geöffnet), send (SMS-TAN angefordert), confirm (TAN eingegeben) und tan_committed (Buchung final bestätigt). Conversion-Ziele in GA4 oder Meta Ads sollten ausschließlich auf tan_committed gesetzt werden.
Im Zuge eines Privacy-First-Ansatzes hat Dr. Flex die Tracking-Funktionalität aus dem Basis-Code des Widgets entfernt. Tracking-Events für GA4, GTM oder Meta Pixel laufen erst, wenn die Agentur eine analyticsCallback-Funktion verkabelt – nach Opt-in im Cookie-Banner.
Unter /aerzte/doku/Buchungstracking pflegt Dr. Flex die jeweils aktuellen Code-Beispiele für GA4, GTM und Meta Pixel inklusive der data-Objekt-Struktur. Diese Doku ist die Single-Source-of-Truth für Implementierungs-Details.
Dr. Flex stellt eine Ergänzungs-Vorlage für die Datenschutzerklärung der Praxis-Website bereit. Sie deckt die Buchungs-Datenflüsse zu Dr. Flex ab und sollte vor dem Go-Live in die Datenschutzerklärung der Praxis aufgenommen werden: /aerzte/doku/ergaezung-datenschutzerklaerung-dr-flex.
Dr. Flex startet ab 39 €/Monat, ohne Vertragslaufzeit, monatlich kündbar. Das Booking Widget ist Teil des Funktionsumfangs der Online-Terminvergabe, der Pricing-Vergleich (Booking + KI-Telefonassistent VoiceAI + Combi-Tarif) liegt auf /aerzte/preis.
Dr. Flex arbeitet mit der Partneragentur Brands & Friends zusammen. Brands & Friends übernimmt auf Wunsch die komplette Web-Integration der Praxis-Website als kostenpflichtige Dienstleistung (99 €, abgerechnet über Dr. Flex). Kontakt: brands-and-friends.de, Telefon 02541 84450, E-Mail info@bandf.de.
Wer das Booking Widget technisch sauber integriert, mit Deeplinks die richtige Anliegen-Struktur ausspielt und mit Buchungstracking den Funnel bis zur bestätigten Buchung sichtbar macht, liefert der Praxis nicht nur ein Buchungs-Tool – sondern eine messbare Conversion-Strecke.
Die autoritativen Detail-Dokus ergänzen diese Anleitung mit den jeweils aktuellsten Code-Snippets:
Weiterführende Cross-Links rund um die Plattform-Story:
Für Rückfragen zur Integration, PVS-Anbindung oder API-Keys ist das Dr. Flex Team direkt erreichbar: Telefon 030 555 707 380 und E-Mail info@dr-flex.de.