← BISS 45
CRM Projekt Sonstige

BISS 45 · HubSpot Setup

Wie Metawork eine Echtzeit-Synchronisation zwischen Ivoris-Zahnarzt-Software und HubSpot CRM für eine deutsche Praxiskette aufgebaut hat — Patienten-, Termin- und Umsatztransparenz.

Dauer 10 Monate
Tasks 234
Meetings 24
Looms 20

Was gebaut wurde

Vollständige Daten-Pipeline von der Ivoris Zahnarztpraxis-Software in das HubSpot CRM, die Patienten, Termine und Behandlungsdokumente (DocumentEntries) über mehrere Praxisstandorte hinweg verarbeitet.

Ivoris API

Ivoris ist ein On-Premise-Praxisverwaltungssystem, das eine REST-API bereitstellt. Das Projekt begann mit der API-Erkundung und -Dokumentation – der Abbildung aller relevanten Routen für Patienten, Termine, Dokumenteinträge, Behandlungsstühle und Praxisstandorte. Der Webservice erwies sich unter Last als instabil (häufige 504-Fehler), was die warteschlangenbasierte Architektur prägte. Eine der größeren Herausforderungen war die Erstellung von Behandlungen nur aus Termindatensätzen. Ivoris selbst hat keine Entität für Behandlungen. Um dies zu lösen, haben wir einen logikbasierten Prozess erstellt, der Grenzen für eine einzelne Behandlung definierte und Termine automatisch über mehrere Behandlungen eines einzelnen Patienten hinweg zuordnete.

Datenmodell

Ivoris Entität HubSpot Objekt Schlüssel-Identifikator
Patient Contact ivoris_patient_id
Appointment Deal + HubSpot Appointment ivoris_appointment_id
DocumentEntry Notes + Deal properties (treatment revenue, category) linked via patient/appointment

Warteschlangensystem

Hochvolumige Synchronisierungen (Tausende von Datensätzen) werden über eine benutzerdefinierte Warteschlangenarchitektur in Make.com verarbeitet. Anstatt direkter API-Aufrufe pro Trigger werden Datensätze in einem Warteschlangen-Datenspeicher abgelegt und in Batches von dedizierten Handler-Szenarien verarbeitet. Dies entkoppelt die Erfassung von der Verarbeitung und ermöglicht eine Wiederholungslogik, ohne Datensätze zu verlieren, wenn Ivoris Fehler meldet.

Warteschlangentypen:

  • Queue(Appointments) – verarbeitet Termin-Erstellungs-/Aktualisierungsereignisse
  • Queue(Entries) – verarbeitet DocumentEntry-Verarbeitung und Deal-Eigenschaftsaktualisierungen

Make.com Szenarien

Szenario Zweck
Ivoris Appointments + Patients Upload Init-Szenario – ruft Termine von Ivoris ab, reiht Datensätze ein
Queue(Appointments) Handler Verarbeitet eingereihte Termine: erstellt/aktualisiert Contacts, erstellt Deals mit Stufenlogik
Ivoris DocumentEntries Upload Ruft DocumentEntries von der Ivoris API ab, reiht Datensätze ein
Queue(Entries) Handler Verarbeitet Dokumenteinträge: ordnet sie Deal-Eigenschaften zu, berechnet Umsatzfelder
Queue(Appointments) Init Re-Initialisierungsszenario für Batch-/historische Läufe
Configuration Lädt Mapping-Konfiguration von Google Spreadsheet in Make-Datenspeicher herunter

Die Szenarien entwickelten sich über mehrere Versionen (v4, v5) weiter, da die Deal-Logik und das Daten-Mapping verfeinert wurden.

Deal-Stufenlogik

Der Termin-Status in Ivoris steuert die Deal-Stufe in HubSpot. Kernlogik:

  • Neuer Termin → Deal erstellt bei „Termin gebucht“
  • Abgeschlossener Termin mit DocumentEntries → Deal durchläuft Behandlungsstufen
  • Deal wird auf vorherige Stufe zurückgesetzt, wenn der Termin-Status nicht abgeschlossen ist (HubSpot Workflow)
  • Behandlungsstart-Datum wird in den Deal geschrieben, wenn passende Termine existieren

Deal-Deduplizierung

Die Erstellung doppelter Deals war die hartnäckigste Herausforderung – verursacht durch gleichzeitige Warteschlangenläufe, die Ivoris API, die denselben Termin mehrfach zurückgab, und Grenzfälle in der Deal-Suchlogik. Sechs verschiedene Runden von Deduplizierungs-Korrekturen wurden implementiert, einschließlich Close-Lost-Logik für bestätigte Duplikate, Tracking auf Kontakt-Ebene und ein „Verloren list detector“ zum Auffangen von Nachzüglern.

Dokumenteinträge

DocumentEntries repräsentieren Dokumentation und Abrechnungspositionen aus abgeschlossenen Behandlungen. Wichtige Verarbeitungsschritte:

  • Berechnete Felder (Gesamtumsatz, Klassifizierung der Behandlungskategorie) werden in Make.com abgeleitet
  • Abrechnungs- und andere Eintragstypen haben separate Verarbeitungslogik
  • Fehlende Einträge aus der Ivoris API waren ein wiederkehrender Untersuchungspunkt – die Ursache wurde auf Lücken in der serverseitigen Filterung von Ivoris zurückgeführt

Datenmigration

Historische Daten für alle Praxen wurden in großen Mengen migriert:

  • Patienten-Contacts wurden aus vorbereiteten CSV-Dateien migriert
  • Termine wurden mit korrekter Deal-Stufenzuordnung migriert
  • DocumentEntries wurden für bestehende Deals nachgetragen
  • Mehrere Migrationsläufe mit Mapping-Korrekturen zwischen den Durchgängen

Performance Dashboard

HubSpot Reports Dashboard wurde erstellt, um KPIs aus der bestehenden Google Sheets-Verfolgung des Kunden zu replizieren – Terminanzahlen auf Praxisebene, Deal-Umsatz und Metriken zur Behandlungsfertigstellung. Nur diese Reports aktualisieren sich jede Minute, und alte Reports brauchten Tage zum Kompilieren.

Zuletzt bearbeitet

  • 2025-08-31 Replies to Gabriel's feedback Done
  • 2025-08-31 New logic (workflow): If Termin gebucht or Erstberatung and Appointment stage ist cancelled > lose deal Done
  • 2025-05-01 [M04] Support Done
  • 2025-04-22 Erstberatung with status clarified > lose deal Done
  • 2025-04-08 Upload Ivoirs Documentaion - Entries to the HubSpot - v2 Done

Weitere Projekte dieses Kunden

  • Laufender Support

    Laufende Wartung und Erweiterung des Ivoris→HubSpot Automatisierungssystems. Die Arbeit gliedert sich in wöchentliche Monitoring-Zyklen, reaktive Fehlerbehebungen und periodische Feature-Ergänzungen,…

    Case Study lesen