- SO-4812Versandt
- SO-4813Freigegeben
- SO-4814Storniert
- nur Großhandel✓
- Händler gefunden✓
- keine Dublette✓
- SKUs verknüpft✓
Eine Marke verkauft an gut 600 Händler. Bestellt wird über das Backoffice, über NuOrder, über Marktplätze und Dropship-Partner. Alles landet in Cin7 Core. Der Vertrieb arbeitet in HubSpot, und dort sieht er von diesen Bestellungen nichts. Welcher Händler hat zuletzt bestellt, und wann? Wer hat früher jede Saison nachbestellt und ist seit einem halben Jahr still? Die Antwort steht im ERP, und ins ERP schaut im Vertrieb niemand.
So war die Lage bei einer nordamerikanischen Schmuckmarke im Großhandel, für die wir die Verbindung gebaut haben. Der Kunde bleibt hier ungenannt. Das Muster ist in jedem Großhandel mit Cin7 und HubSpot dasselbe.
Die Kurzfassung
- Die native Cin7-Integration für HubSpot synchronisiert Produkte und Kontakte. Händler als Firmen, Aufträge und Auftragspositionen überträgt sie nicht.
- Wir haben daneben einen eigenen Sync gebaut, der nur in eine Richtung schreibt: von Cin7 nach HubSpot. Die native Integration bleibt an.
- Aus dem letzten Auftrag berechnet der Sync für jeden Händler einen Status. Rutscht ein Händler ab, bekommt das Team eine Aufgabe.
Was die native Integration überträgt
Cin7 denkt in Kunden, Aufträgen und Lagerartikeln. HubSpot denkt in Firmen, Kontakten und Deals. Die native App übersetzt den Katalog und die Ansprechpartner. Der Teil, den der Vertrieb braucht, fehlt: welcher Händler was bestellt hat, wann zuletzt, über welchen Kanal und zu welchen Konditionen.
Unser Vorgehen
Bevor wir eine Zeile Code geschrieben haben, haben wir drei Dinge festgelegt.
Eine Richtung. Cin7 bleibt die Wahrheit für Aufträge, Preise und Lager. HubSpot liest nur. Nichts aus dem CRM schreibt zurück ins ERP. Das hält die Fehlerfläche klein und die Buchhaltung ruhig.
Ein fester Schlüssel. Jeder Händler trägt in HubSpot seine ID aus Cin7, jeder Deal die Auftragsnummer. Darüber findet der Sync bei jedem Lauf den richtigen Datensatz wieder, ohne sich auf Namen oder E-Mail-Domains zu verlassen.
Nur Großhandel. Bestellungen aus den Endkunden-Shops, Lieferanten, Testkonten und stornierte Aufträge filtert der Sync heraus, bevor irgendetwas geschrieben wird.
Ein Lauf sieht dann so aus:
- Geänderte Aufträge ladenseit dem letzten Lauf, mit 7 Tagen Puffer
- Filternnur Großhandelskanäle, keine Stornos, keine Testkonten
- Händler abgleichenüber die Cin7-ID, mit Preisstufe, Zahlungsziel, Kreditlimit, Vertreter
- Auftrag wird DealDublettenprüfung über die Deals der Firma, nicht über die Suche
- Positionen und Kontakteper SKU an die nativen Produkte, Einkäufer an Firma und Deal
- Status neu berechnenaus dem letzten echten Auftrag, Aufgabe beim Abrutschen
Der Sync ist ein kleines Python-Programm, das zeitgesteuert über GitHub Actions läuft. Jeder Lauf holt neue und geänderte Aufträge seit dem letzten Lauf, mit großzügigem Puffer, damit ein ausgefallener Lauf nichts verliert. Und jeder Lauf lässt sich vorher als Trockenlauf starten, der nur protokolliert, was er schreiben würde.
Vom letzten Auftrag zum Account-Status
Die eigentliche Arbeit für den Vertrieb beginnt, wenn die Daten da sind. Aus dem letzten echten Auftrag eines Händlers berechnet der Sync bei jedem Lauf einen Status in festen Stufen:
- Aktivunter 75 Tagen
- Braucht Aufmerksamkeit75 bis 119
- Gefährdet120 bis 179
- Eingeschlafen180 bis 364
- Inaktivab 365 oder nie
Ein offener Auftrag, der noch nicht ausgeliefert ist, hebt „Braucht Aufmerksamkeit“ und „Gefährdet“ wieder auf „Aktiv“. Wer gerade bestellt hat, soll keinen Anruf bekommen, nur weil die letzte Lieferung drei Monate her ist. Rutscht ein Händler eine Stufe tiefer, legt der Sync eine Aufgabe für das Retention-Team an. Nur beim echten Abrutschen, nicht bei jeder Neuberechnung.
In HubSpot liegen darauf gespeicherte Ansichten: Händler, die gefährdet sind, die Aufmerksamkeit brauchen, die zurückgewonnen werden sollen. Und eine für die wertvollsten Händler, die gerade abrutschen.
Worauf Sie achten sollten, wenn Sie das selbst bauen
- Dubletten nicht über die Suche prüfen. Die HubSpot-Suche ist nicht sofort aktuell. Wer kurz nach dem Anlegen eines Deals danach sucht, findet ihn manchmal noch nicht und legt ihn ein zweites Mal an. Verlässlich ist der Weg über die Firma: deren verknüpfte Deals lesen und dort nach der Auftragsnummer schauen.
- Stornos aktiv entfernen. Cin7 liefert stornierte Aufträge weiter aus, wenn man nicht ausdrücklich danach filtert. Ohne diesen Schritt steht in HubSpot Umsatz, den es nie gab. In diesem Projekt kam so ein sechsstelliger Betrag zusammen.
- Workflows vor dem Backfill prüfen. Ein Workflow, der bei jedem gewonnenen Deal etwas anlegt, feuert beim Nachladen von 4.000 historischen Aufträgen 4.000 Mal. Erst laden, dann einschalten, oder den Workflow so absichern, dass er nur bei wirklich neuen Deals greift.
- Automatisch angelegte Firmen ausschließen. HubSpot kann aus jeder E-Mail-Domain eine Firma anlegen. In diesem Portal waren das rund 40 Prozent aller Firmen, HubSpot selbst eingeschlossen. Jede Zählung, Ansicht und Liste filtert deshalb auf die Cin7-ID.
- Mit wenigen echten Kunden anfangen. Fünf echte Händler mit allen Aufträgen, Positionen und Kontakten zeigen mehr Sonderfälle als jeder Testdatensatz.
Das Ergebnis
Nach dem ersten Nachladen standen zwölf Monate Großhandel in HubSpot: rund 4.400 Aufträge als Deals, 26.000 Positionen mit Produktbezug, gut 900 Kontakte, keine einzige Dublette. Seitdem hält der Sync alles von selbst aktuell. Der Vertrieb sieht an jedem Händler, was er bestellt hat, zu welchen Konditionen und ob er gerade abrutscht. Ins ERP muss dafür niemand mehr.
Das Projekt im Überblick finden Sie in unseren Case Studies.
Wann sich das lohnt
Bei ein paar Dutzend Händlern reicht ein Blick ins ERP. Ab ein paar hundert Händlern, mehreren Bestellkanälen und einem Team, das Nachbestellungen aktiv anstoßen soll, lohnt sich der Sync. Vor allem dann, wenn HubSpot schon da ist und nur die Daten fehlen.
Eine Integration wie diese ist ein Schritt in einem größeren Projekt. Wie wir das ganze Projekt umsetzen, von der Entscheidung über jedes Feld bis zur Schulung des Teams, steht in HubSpot Implementierung: So läuft sie ab.