HubSpot und Pipedrive synchronisieren – ohne Dubletten und Endlosschleifen

HubSpot und Pipedrive in beide Richtungen synchronisieren: führendes System, Feldzuordnung, eindeutige Schlüssel und Schutz vor Endlosschleifen und Dubletten.

Veröffentlicht
Autor
Mario Gvozden
Lesezeit
7 Minuten

Zwei CRM-Systeme im selben Unternehmen entstehen oft ganz pragmatisch. Das Marketing arbeitet in HubSpot, weil dort Formulare, Newsletter und Kampagnen laufen. Der Vertrieb arbeitet in Pipedrive, weil die Pipeline dort übersichtlicher ist. Beide Seiten wollen dieselben Kontakte und Firmen sehen, aktuell und ohne Abtippen.

Eine Synchronisation in eine Richtung ist schnell gebaut. In beide Richtungen wird es anspruchsvoll, und zwar aus zwei Gründen: Dubletten und Endlosschleifen. Beide entstehen fast zwangsläufig, wenn man sie nicht von Anfang an einplant.

Wie die Endlosschleife entsteht

Der Ablauf ist banal:

  1. Eine Vertriebsmitarbeiterin ändert in Pipedrive die Telefonnummer eines Kontakts.
  2. Pipedrive meldet die Änderung per Webhook, der Workflow schreibt sie nach HubSpot.
  3. HubSpot meldet die Änderung (die ja gerade passiert ist) per Webhook, der Workflow schreibt sie nach Pipedrive.
  4. Pipedrive meldet die Änderung …

Im besten Fall bricht die Schleife ab, weil sich der Wert nicht mehr ändert und eines der Systeme dann keinen Webhook mehr sendet. Im schlechtesten Fall – etwa wenn ein Zeitstempelfeld mitsynchronisiert wird, das sich bei jedem Schreiben ändert – läuft sie, bis ein API-Limit greift oder das Kontingent des Automatisierungstools aufgebraucht ist.

Wie die Dublette entsteht

Ein neuer Kontakt wird in HubSpot angelegt. Der Workflow legt ihn in Pipedrive an. Kurz darauf wird der Kontakt in HubSpot ergänzt, und der Workflow – der nur „neuer oder geänderter Kontakt“ kennt – findet ihn in Pipedrive nicht, weil er nach dem Namen sucht und sich der Name gerade geändert hat. Er legt ihn ein zweites Mal an.

Oder: Zwei Webhooks für denselben Kontakt kommen innerhalb einer Sekunde an, beide Läufe suchen gleichzeitig, beide finden nichts, beide legen an.

Schritt 1: Entscheiden, was überhaupt synchronisiert wird

Die wichtigste Arbeit passiert vor dem ersten Workflow, in einer einfachen Tabelle:

Feld HubSpot Pipedrive Richtung Führend
E-Mail email email (primär) beide – (Schlüssel)
Vorname firstname first_name beide zuletzt geändert
Telefon phone phone (primär) beide zuletzt geändert
Lifecycle-Phase lifecyclestage – nur HubSpot HubSpot
Verantwortlicher hubspot_owner_id owner_id Pipedrive → HubSpot Pipedrive

Zu jedem Feld gehört die Frage: Welches System hat recht, wenn beide sich widersprechen? Bewährte Regeln:

  • Stammdaten (Name, Telefon, Adresse): Die zuletzt gemachte Änderung gewinnt.
  • Marketing-Felder (Lifecycle-Phase, Kampagnenquelle, Newsletter-Status): HubSpot ist führend und wird nicht überschrieben.
  • Vertriebs-Felder (Verantwortlicher, Pipeline-Stand): Pipedrive ist führend.

Nicht synchronisieren sollten Sie Felder, die sich automatisch ändern („zuletzt aktualisiert“, Zähler, berechnete Werte), sowie Felder, die es nur in einem System gibt. Je weniger Felder, desto weniger Konfliktfälle.

Bei Pipedrive ein praktisches Detail: Eigene Felder haben in der API keinen lesbaren Namen, sondern einen 40-stelligen Schlüssel. Die Zuordnung „Branche“ → a1b2c3… gehört in die Dokumentation, sonst ist der Workflow in einem Jahr nicht mehr verständlich.

Schritt 2: Einen eindeutigen Schlüssel festlegen

Gesucht wird nie über den Namen. Zwei Möglichkeiten:

  1. E-Mail-Adresse als natürlicher Schlüssel. Funktioniert gut, solange jeder Kontakt eine eindeutige Adresse hat. Vorsicht bei Sammeladressen wie info@…, die mehreren Personen zugeordnet sind.
  2. Gegenseitige ID-Felder. In HubSpot ein Feld pipedrive_person_id, in Pipedrive ein Feld hubspot_contact_id. Nach der ersten Anlage schreibt der Workflow die jeweilige ID zurück. Ab dann wird nur noch über die ID gesucht.

Wir verwenden in der Regel beides: Die E-Mail für die erste Zuordnung, danach die ID. Ändert jemand die E-Mail-Adresse, bleibt die Verbindung über die ID bestehen.

Für Firmen gilt dasselbe, nur ist der natürliche Schlüssel schwieriger. Die Domain der Website taugt oft besser als der Firmenname.

Schritt 3: Die Schleife unterbrechen

Es gibt drei Techniken, die sich ergänzen.

Eigene Änderungen erkennen

Legen Sie für die Synchronisation in beiden Systemen einen eigenen Integrationszugang an, der nur dafür verwendet wird. Beide Systeme liefern in ihren Webhooks Hinweise darauf, wer oder was eine Änderung ausgelöst hat:

  • Pipedrive enthält in den Metadaten des Webhooks die ID des auslösenden Benutzers (user_id).
  • HubSpot nennt bei Eigenschaftsänderungen die Quelle der Änderung (changeSource) und, je nach Ereignis, eine Quell-ID.

Stammt die Änderung vom eigenen Integrationszugang, verwirft der Workflow sie. Verlassen Sie sich aber nicht allein darauf – die Felder sind nicht in jedem Ereignistyp gleich zuverlässig befüllt.

Werte vergleichen, bevor geschrieben wird

Bevor der Workflow ins Zielsystem schreibt, liest er den aktuellen Datensatz und vergleicht Feld für Feld. Ist nichts anders, wird nichts geschrieben. Das bricht jede Schleife spätestens nach einer Runde ab und spart nebenbei API-Aufrufe.

// n8n Code-Node: nur geänderte Felder weitergeben
const quelle = $json.quelle;   // bereits auf Zielfeldnamen gemappt
const ziel = $json.ziel;       // aktueller Stand im Zielsystem
const geaendert = {};
for (const [feld, wert] of Object.entries(quelle)) {
  const alt = ziel[feld] ?? "";
  if (String(wert ?? "").trim() !== String(alt).trim()) {
    geaendert[feld] = wert;
  }
}
return [{ json: { id: $json.zielId, felder: geaendert,
  leer: Object.keys(geaendert).length === 0 } }];

Ein anschließender IF-Node beendet den Lauf, wenn leer wahr ist.

Kurzzeit-Sperre

Für den Sonderfall, dass zwei Webhooks zum selben Datensatz fast gleichzeitig eintreffen, merkt sich der Workflow für wenige Minuten: „Datensatz X wurde gerade von mir geschrieben.“ Ein Webhook zu X in diesem Zeitfenster wird ignoriert. In n8n eignet sich dafür eine kleine Tabelle oder ein Key-Value-Speicher.

Schritt 4: Den Bestand einmalig abgleichen

Bevor die laufende Synchronisation startet, müssen die vorhandenen Daten zusammengeführt werden. Gehen Sie so vor:

  1. Beide Bestände exportieren.
  2. Über die E-Mail-Adresse abgleichen: Was gibt es in beiden, nur in HubSpot, nur in Pipedrive?
  3. Dubletten innerhalb jedes Systems zuerst bereinigen. Eine Synchronisation verdoppelt sonst jedes vorhandene Problem.
  4. Die gegenseitigen IDs für alle zugeordneten Paare setzen.
  5. Fehlende Datensätze anlegen – in einem kontrollierten Lauf, nicht über die Webhooks.

Erst danach werden die Webhooks aktiviert.

Testfälle, die jede Synchronisation bestehen muss

  • Neuer Kontakt in HubSpot erscheint genau einmal in Pipedrive
  • Neuer Kontakt in Pipedrive erscheint genau einmal in HubSpot
  • Änderung eines Feldes auf einer Seite erzeugt genau einen Schreibvorgang auf der anderen
  • Änderung, die nichts ändert (gleicher Wert gespeichert), erzeugt keinen Schreibvorgang
  • Zwei schnelle Änderungen hintereinander erzeugen keine Dublette
  • Geänderte E-Mail-Adresse trennt die Verbindung nicht
  • Ein führendes Feld wird von der anderen Seite nicht überschrieben
  • Gelöschter Kontakt: Verhalten ist festgelegt (mitlöschen, archivieren oder ignorieren)
  • Fehler beim Schreiben werden gemeldet

Den letzten Punkt beschreibt der Beitrag Fehlerbehandlung in n8n ausführlich.

Lohnt sich ein fertiger Sync-Dienst?

Es gibt spezialisierte Dienste für Zwei-Wege-Synchronisationen zwischen CRM-Systemen, und HubSpot bietet für manche Systeme eigene Synchronisations-Apps. Prüfen Sie zuerst, ob es für Ihre Kombination eine fertige Lösung gibt, die Ihre Felder abdeckt – das ist oft die einfachere Variante. Ein eigener Workflow lohnt sich, wenn Sie bereits n8n, Make oder Zapier nutzen, eigene Felder und Regeln brauchen oder keine weitere Datenverarbeitung durch einen zusätzlichen Anbieter wollen.

Häufige Fragen

Wie verhindere ich eine Endlosschleife zwischen HubSpot und Pipedrive?

Mit drei Techniken, die sich ergänzen: eigene Änderungen über einen eigenen Integrationszugang erkennen und verwerfen, vor jedem Schreiben die Werte vergleichen und nur Geändertes schreiben, und eine kurze Sperre für Datensätze, die gerade geschrieben wurden. Felder, die sich automatisch ändern, etwa Zeitstempel oder Zähler, sollten gar nicht synchronisiert werden.

Welches Feld eignet sich als Schlüssel für die Zuordnung?

Nie der Name. Bewährt hat sich die E-Mail-Adresse für die erste Zuordnung und danach gegenseitige ID-Felder in beiden Systemen, über die ab dann gesucht wird. So bleibt die Verbindung bestehen, auch wenn jemand die E-Mail-Adresse ändert; bei Firmen taugt die Domain der Website oft besser als der Firmenname.

Gibt es fertige Lösungen statt eines eigenen Workflows?

Ja, es gibt spezialisierte Dienste für Zwei-Wege-Synchronisationen, und HubSpot bietet für manche Systeme eigene Synchronisations-Apps. Prüfen Sie zuerst, ob eine fertige Lösung Ihre Felder abdeckt. Ein eigener Workflow lohnt sich, wenn Sie bereits n8n, Make oder Zapier nutzen, eigene Felder und Regeln brauchen oder keinen zusätzlichen Anbieter einbinden wollen.


Kontakte und Firmen in beide Richtungen mit bis zu 15 Feldern je Objekt, dokumentierter Feldzuordnung und Schutz vor Schleifen und Dubletten sind eine typische Aufgabe im Prozess-Abo. Die Testfälle oben werden zu den Abnahmekriterien auf der Karte. Ist der Bestand groß oder voller Dubletten, legen wir den einmaligen Abgleich als eigene Karte davor. Sie laden unsere Adresse in HubSpot, Pipedrive und Ihr Automatisierungstool ein und schreiben die Feldliste auf die Karte. Den Integrationszugang hinterlegen Sie selbst im Credentials-Speicher Ihres Werkzeugs, Passwörter oder API-Schlüssel bekommen wir nie. 48 Stunden nach Start (gezählt Mo 8 – Fr 16 Uhr) liefern wir den Workflow deaktiviert. Ein Senior-Entwickler hat ihn vorher geprüft und freigegeben, und aktiviert wird er erst nach Ihrer Abnahme. Ändert ein Anbieter später seine Schnittstelle oder kommt ein Feld hinzu, ist das die nächste Karte. Die erste Aufgabe erledigen wir kostenlos, eine pro Unternehmen. Details stehen im Leistungskatalog.

Nächster Schritt
  • Die erste Aufgabe ist kostenlos – eine pro Unternehmen. Sie legen einen Workspace an, geben Zugang per Einladung und schreiben die Aufgabe auf Ihr Board. Wir liefern sie 48 Stunden nach Start, gezählt Mo 8 bis Fr 16 Uhr: Start am Montag um 10 Uhr – Lieferung am Mittwoch um 10 Uhr. Jede Lieferung prüft und gibt ein Senior-Entwickler frei, bevor sie zu Ihnen geht.

  • Danach im Prozess-Abo: Sie schreiben Aufgaben aufs Board und bestimmen die Reihenfolge, wir setzen sie um. Prozess-Abo 1: 1.000 € im Monat, 1 Aufgabe gleichzeitig in Arbeit, bis zu 1 Aufgaben pro Monat; Prozess-Abo 2,5: 2.500 € im Monat, 1 Aufgabe gleichzeitig in Arbeit, bis zu 4 Aufgaben pro Monat; Prozess-Abo 5: 5.000 € im Monat, 1 Aufgabe gleichzeitig in Arbeit; Prozess-Abo 10: 10.000 € im Monat, 2 Aufgaben parallel in Arbeit. Gezählt werden die Aufgaben, die wir im Abrechnungsmonat beginnen; eine Nachbesserung zählt nicht neu. Nicht genutzte Aufgaben verfallen am Monatsende. Preise zzgl. MwSt., nur für Unternehmen, monatlich kündbar – das Abo beginnt nur, wenn Sie es bestellen.

  • Fragen vorab oder mehr Aufgaben parallel? Im kostenlosen Projekt-Check (30 Minuten) klären wir das, auch für ein individuelles Abo.