B2B E-Commerce
Shopware und HubSpot: Wie Sie Dubletten und Datenmüll im CRM vermeiden
Eine HubSpot-Anbindung an Shopware ist an einem Nachmittag eingerichtet. Das Problem zeigt sich vier Wochen später: Derselbe Einkäufer steht dreimal im CRM, eine einzige Bestellung hat sieben Deals erzeugt, und der Vertrieb glaubt der Pipeline nicht mehr. Schuld daran ist selten die Schnittstelle. Schuld ist eine Entscheidung, die vor der Schnittstelle fällt — die Frage, woran zwei Systeme erkennen, dass sie vom selben Kunden reden.
Woher die Dubletten wirklich kommen
In der Praxis gibt es drei Quellen, und alle drei sind vermeidbar.
Die erste ist die Gastbestellung. Ein Kunde kauft als Gast mit seiner privaten Adresse, bestellt zwei Wochen später im Kundenkonto mit der Firmenadresse und tritt beim dritten Mal über ein Formular mit einer Sammeladresse wie einkauf@ auf. Für Shopware sind das drei Vorgänge, für HubSpot drei Kontakte. Im B2B ist das der Normalfall, nicht die Ausnahme: Einkauf, Buchhaltung und Technik arbeiten mit unterschiedlichen Adressen im selben Unternehmen.
Die zweite ist der Statuswechsel. Viele Anbindungen reagieren auf jede Änderung an einer Bestellung und legen dabei einen neuen Datensatz an, statt den vorhandenen zu suchen und zu aktualisieren. Aus einer Bestellung, die von „offen“ über „bezahlt“ nach „versendet“ läuft, werden drei Deals mit identischem Betrag. Die Pipeline zeigt dann das Dreifache des echten Umsatzes — und niemand merkt es, solange niemand nachrechnet.
Die dritte ist der doppelte Weg. Formulare laufen über das HubSpot-Tracking-Skript in den Shopseiten, Bestellungen über die API, Newsletter-Anmeldungen über ein Plugin. Drei Wege, drei Zeitpunkte, drei Schreibvorgänge — und keine Regel, welcher Weg gewinnt, wenn zwei gleichzeitig dasselbe Feld füllen.
Der Schlüssel entscheidet, nicht das Werkzeug
HubSpot gleicht Kontakte standardmäßig über die E-Mail-Adresse ab. Das trägt, solange jeder Mensch genau eine Adresse hat — im B2B eine Annahme, die regelmäßig bricht. Wer belastbar abgleichen will, braucht eine eigene, eindeutige Kennung aus Shopware.
Bewährt hat sich dieses Muster: Die Shopware-Kundennummer wandert in ein eigenes HubSpot-Feld, das als Unique-Value-Property angelegt ist. HubSpot erlaubt pro Objekt eine begrenzte Zahl solcher eindeutigen Felder und weist dann jeden zweiten Datensatz mit demselben Wert ab — die Dublette entsteht also gar nicht, statt später aufgeräumt zu werden. Dasselbe gilt für Bestellungen: Die Shopware-Bestellnummer gehört in ein eindeutiges Feld am Deal. Erst damit kann die Anbindung bei jedem Ereignis fragen „gibt es das schon?“, statt blind anzulegen.
Für Firmen ist der Schlüssel die Domain der Geschäftsadresse, ergänzt um die Umsatzsteuer-Identifikationsnummer, wo sie vorliegt. Verlassen Sie sich nicht auf den Firmennamen: „Müller GmbH“, „Mueller GmbH“ und „Müller G.m.b.H.“ sind für jeden automatischen Abgleich drei Unternehmen. Welche Felder in Ihrem Fall tragen und wie der Abgleich technisch umgesetzt wird, klären wir vor dem Angebot — mehr dazu auf unserer Seite zur Shopware HubSpot Schnittstelle.
Kontakt, Firma, Deal: wer hängt an wem
Im B2C reicht der Kontakt. Im B2B hängt der Umsatz am Unternehmen, und ein Deal ohne Firmenzuordnung ist für die Auswertung wertlos: Der Vertrieb sieht nicht, wie viel ein Kunde insgesamt bestellt, weil sich der Umsatz auf vier Ansprechpartner verteilt.
Legen Sie deshalb vor der Umsetzung schriftlich fest:
-
Welche Shopware-Kundengruppe auf welchen HubSpot-Datensatz abgebildet wird — und ob Kundengruppen überhaupt als Firmen geführt werden oder nur als Merkmal am Kontakt.
-
Ob bei einer Gastbestellung ohne erkennbare Firma ein Unternehmen angelegt wird oder bewusst nicht. Beides ist vertretbar, nur das stille Vermischen ist es nicht.
-
Welches System bei widersprüchlichen Adressen führt. In der Regel ist das die kaufmännische Quelle, also ERP oder Shop — nicht das CRM, in dem von Hand nachgetragen wird.
Die Frage nach dem führenden System stellt sich bei jeder Anbindung gleich, ob CRM oder Warenwirtschaft. Wer sie einmal systemübergreifend beantwortet, muss sie nicht in jedem neuen Projekt neu verhandeln — dasselbe Prinzip trägt bei der ERP-Anbindung.
Ein Deal je Bestellung — und was bei Storno passiert
Die Regel ist einfach: Eine Bestellung wird genau ein Deal. Statusänderungen bewegen diesen Deal durch die Pipeline, sie erzeugen keinen neuen. Positionen gehören als Line Items an den Deal, damit der Betrag nachvollziehbar bleibt und nicht als Zahl ohne Herkunft im CRM steht.
Die Fälle, an denen Anbindungen scheitern, sind die unschönen: Storno, Teilretoure, Teilzahlung, nachträgliche Preisänderung. Klären Sie vorher, was passieren soll. Ein storniertes Deal gehört in eine Verloren-Stufe mit Grund, nicht gelöscht — sonst verschwindet der Vorgang aus jeder Auswertung, und niemand kann später nachvollziehen, warum ein Monat schwächer war als gemeldet. Bei einer Teilretoure muss entschieden sein, ob der Deal-Betrag sinkt oder der ursprüngliche Auftragswert stehen bleibt. Beides ist begründbar. Nur eine Anbindung, die es selbst nicht weiß, ist es nicht.
Nicht jede Bestellung gehört ins CRM
Der häufigste Denkfehler ist, alles zu synchronisieren, was Shopware hergibt. Bei einem B2C-Shop mit vierstelligen Bestellzahlen pro Monat und Warenkörben von 30 Euro ergibt ein Deal je Bestellung keinen Sinn: Die Pipeline wird zum Bestellprotokoll, und jede Auswertung, die auf Deals aufbaut, ist unbrauchbar. Solche Bestellungen gehören als Ereignis oder als aufsummierter Wert an den Kontakt.
Dazu kommt ein kaufmännisches Argument, das in Projekten regelmäßig übersehen wird: HubSpot rechnet nach Marketing-Kontakten ab. Wer jeden Gastbesteller als Marketing-Kontakt anlegt, zahlt monatlich für Adressen, die niemand anschreiben darf oder will. Setzen Sie den Marketing-Status bewusst — abhängig davon, ob eine Einwilligung vorliegt und ob der Kontakt für den Vertrieb überhaupt relevant ist. Alles andere läuft als Non-Marketing-Kontakt mit und kostet nichts. Diese eine Entscheidung entscheidet bei größeren Shops über einen vierstelligen Betrag im Jahr.
Wie Sie eine verschmutzte Instanz aufräumen
Wenn das Kind im Brunnen liegt, hilft kein neuer Import. Die Reihenfolge, die sich bewährt hat:
-
Erst messen, dann anfassen. Exportieren Sie Kontakte, Firmen und Deals und zählen Sie, wie viele Datensätze sich Adresse, Kundennummer oder Bestellnummer teilen. Ohne diese Zahl wissen Sie hinterher nicht, ob die Bereinigung gewirkt hat.
-
Den Schlüssel nachträglich setzen. Kundennummer und Bestellnummer in die dafür vorgesehenen Felder nachziehen, bevor zusammengeführt wird. Sonst führen Sie nach Gefühl zusammen.
-
Zusammenführen statt löschen. HubSpot behält beim Zusammenführen die Historie beider Datensätze. Gelöschte Kontakte nehmen ihre Aktivitäten mit — und damit den Grund, warum jemand überhaupt Kunde geworden ist.
-
Erst danach die Schnittstelle scharf stellen. Wer aufräumt, während die fehlerhafte Anbindung weiterläuft, arbeitet gegen eine Maschine.
Danach gilt eine Regel, die sich in jedem Projekt bezahlt: Ein Feld hat genau eine Quelle. Sobald zwei Systeme dasselbe Feld schreiben dürfen, ist es eine Frage der Zeit, bis sie sich widersprechen.
Saubere Kundendaten sind kein Selbstzweck, sondern die Voraussetzung dafür, dass Vertrieb und Marketing derselben Zahl glauben. Wenn Sie Shopware und HubSpot verbinden wollen oder eine bestehende Anbindung Dubletten produziert: Sprechen Sie mit enno.dev — wir sehen uns Ihr Datenmodell an, bevor wir Code schreiben.