Säule

Migration von unordentlichen Kundendaten ohne den Albtraum

Es gibt dieses besondere Unbehagen, wenn man einen fünf Jahre alten Kundenexport öffnet. Bei der Hälfte der Telefonnummern steht ein +386-Präfix davor, bei der anderen nicht. Eine Spalte namens “Notizen” vermischt drei völlig verschiedene Arten von Informationen, je nachdem, wer an dem Tag gerade in Eile war. Der Firmenname von jemandem ist in zwei verschiedenen Zeilen auf zwei verschiedene Arten geschrieben, und Sie wissen wirklich nicht, ob das derselbe Kunde ist.

Wäre es nicht schön, wenn Sie das Chaos einfach so hochladen könnten, wie es ist, ohne vorherige Bereinigung, ohne Neuformatierung, und das System Ihnen ehrlich sagen würde, was es gefunden, was es vermutet und was es nicht ausfüllen konnte? Jetzt können Sie das. Wir haben Craft11 so gebaut, dass es sich daran anpasst, wie echte Unternehmen ihre Aufzeichnungen tatsächlich führen, nicht umgekehrt.

Wie es tatsächlich funktioniert

Wenn Sie eine Datei hochladen (CSV, Excel, PDF, sogar eine gescannte Preisliste), geht sie an Neo, den Teil von Craft11, der Dokumente liest. Neo versucht nicht, Ihre Tabelle mit einem starren Schema abzugleichen. Es liest den tatsächlichen Inhalt und schlägt strukturierte Datensätze vor: Das sieht aus wie ein Name, das sieht aus wie eine E-Mail, das sieht aus wie eine Branche oder Kategorie. Jeder Vorschlag trägt eine Konfidenzstufe (hoch, mittel, niedrig), sodass Sie nie raten müssen, bei welchen Feldern es sich sicher ist und bei welchen es einen vernünftigen Versuch wagt.

Es wird noch nichts angelegt. Sie sehen zuerst eine Prüftabelle. Konfidenzpunkte neben jeder Zeile, Inline-Bearbeitung, falls etwas falsch ist, eine klare Zählung dessen, was vollständig ist und was nicht. Sie bestätigen, was gut ist. Sie können einen Tippfehler direkt dort korrigieren, wenn Sie möchten, oder ihn einfach lassen und später beheben. Beides ist in Ordnung.

Das ist der Teil, der die Leute überrascht: es blockiert Sie niemals wegen unvollständiger Daten. Wenn bei 47 Ihrer 300 Kontakte die Telefonnummer fehlt, werden die anderen 253 trotzdem sauber importiert, und Sie bekommen eine ehrliche, konkrete Liste dieser 47, keine vage Warnung wie “einige Datensätze könnten unvollständig sein”, sondern eine tatsächliche Zahl, die nicht verschwindet, bis sie wirklich behoben ist. Stark kann Ihnen helfen, diese im Gespräch nachzuverfolgen, wann immer Sie ein paar Minuten haben. Die Lücke ist informativ, keine Sperre.

Das Duplikat-Problem, über das niemand spricht

Hier ist etwas, das in den meisten Präsentationen für Import-Tools nicht vorkommt: Was passiert, wenn Sie dieselbe Liste zweimal hochladen? Oder wenn ein Teammitglied einen Kunden bereits halb manuell angelegt hat und der Massenimport nun kurz davor steht, eine zweite Kopie derselben Person unter einer leicht anderen Schreibweise anzulegen?

Wir gehen das mit einer bewusst einfachen Regel an, die automatisch angewendet wird, bevor Sie überhaupt den Prüfbildschirm sehen. Bei Kundenimporten ist es ein Groß-/Kleinschreibung-unabhängiger E-Mail-Abgleich mit Ihren bestehenden Datensätzen. Bei einem Ressourcenkatalog ist es ein Groß-/Kleinschreibung-unabhängiger Namensabgleich. Jede Zeile, die wie ein wahrscheinliches Duplikat aussieht, wird markiert und ist in der Prüftabelle standardmäßig nicht ausgewählt: nicht blockiert, nicht automatisch zusammengeführt, einfach nur nicht markiert. Sie können das Kästchen trotzdem ankreuzen und importieren, wenn Sie das wirklich vorhatten. Das System darf das nicht für Sie entscheiden. Es sorgt nur dafür, dass ein Versehen nicht stillschweigend durchrutscht.

Wir haben das direkt getestet: Wir haben eine Datei mit einem Kontakt hochgeladen, dessen E-Mail exakt mit einem bestehenden Kunden übereinstimmte, zusammen mit einem tatsächlich neuen. Das Duplikat wurde markiert und blieb nicht ausgewählt. Der neue Kontakt wurde sauber importiert. Das erneute Ausführen derselben Datei ein zweites Mal hat nichts Zusätzliches angelegt. Das ist der springende Punkt: erneutes Hochladen sollte nichts sein, bei dem Sie vorsichtig sein müssen.

Ein echter Bug, ehrlich gefunden

Ich möchte Ihnen von etwas erzählen, das während des Bauens tatsächlich schiefgelaufen ist, denn die Alternative, so zu tun, als wäre alles von Anfang an perfekt gelaufen, wäre genau die Art von Marketing-Unehrlichkeit, die wir zu vermeiden versuchen.

Der Importer für den Ressourcenkatalog hat ein Feld für den MwSt.-Satz. Unsere Datenbank verlangt es. Der Standardwert liegt bei 25%, dem Regelsatz, sodass eine Ressource ohne explizit angegebenen Satz automatisch auf diesen Standardwert zurückfallen sollte. Nur tat sie das nicht. Wenn Sie eine Preisliste ganz ohne MwSt.-Spalte hochgeladen haben (was extrem häufig vorkommt, viele Preislisten haben schlicht keine), stürzte der Import in dem Moment, in dem Sie versuchten, ihn zu aktivieren, mit einem rohen Serverfehler ab.

Der Grund war subtil: Der eigene Standardwert der Datenbank greift nur, wenn ein Feld beim Einfügen vollständig weggelassen wird. Unser Code schrieb explizit null in dieses Feld, statt es einfach wegzulassen, was bedeutete, dass das Sicherheitsnetz der Datenbank nie die Chance hatte, das aufzufangen. Wir haben das nur gefunden, weil wir einen echten Ende-zu-Ende-Test mit einer realistischen Datei durchgeführt haben, die tatsächlich keine MwSt.-Spalte hatte (kein Gedankenspiel, ein echter Upload), und beobachtet haben, wie er scheiterte. Die Korrektur war eine einzige Zeile: Standardmäßig 25% im Code, dieselbe Zahl, die die Datenbank selbst als Standard dokumentiert, nur dann, wenn die Quelldatei zu diesem Thema tatsächlich nichts sagt.

Ich erzähle Ihnen das nicht, weil es eine schmeichelhafte Geschichte ist, sondern weil es die tatsächliche Textur davon ist, so etwas ehrlich zu bauen. Der Instinkt, diesen Bug zu finden, indem man tatsächlich eine unordentliche echte Datei testet, statt den Idealfall anzunehmen, ist derselbe Instinkt, der hinter der ganzen Funktion steckt. Software, die sich bei Daten sicher ist, die sie nie tatsächlich gesehen hat, ist genau die Art von Software, die wir zu vermeiden versuchen.

Wir haben das Ganze an einem Unternehmen getestet, das es noch nicht gibt

Bevor das live ging, haben wir einen vollständig simulierten Nutzungsmonat für ein vierköpfiges Beratungsteam durchgeführt: echte eingehende Anfragen, echte Kundengespräche, echte Katalogimporte, gegen einen dedizierten Test-Tenant, die ganze Zeit mit einem echten KI-Modell, kein Skript. Wir konnten das so gründlich durchführen, weil wir von Tag eins an bereits einen großen, realistischen Teil an Daten eingespielt und Velvet gebaut hatten, unseren eigenen Test-Simulator, gerade damit wir nicht darauf beschränkt waren, jeweils nur einen Grenzfall zu prüfen. Mehrere unordentliche Szenarien liefen im selben Monat gleichzeitig ab: eine CSV mit einem bereits existierenden Kontakt gemischt mit tatsächlich neuen, zusammen mit allem anderen, was der Monat dem System entgegenwarf.

Die gesamten KI-Kosten für diesen kompletten simulierten Monat, für vier Personen, lagen bei unter einem Dollar. Wir erwähnen das, weil “KI-gestützte” Import-Tools den Ruf haben, manchmal zu Recht, ein teures Abo-hinter-dem-Abo zu werden. In diesem Umfang hält diese Sorge einfach nicht stand.

Was das nicht tut

Im Sinne dessen, es nicht zu übertreiben: Es ist keine OCR-Magie für wirklich unleserliche Scans, und es wird kein Feld erraten, das nie in der Quelldatei stand. Strukturierte PDFs und saubere Tabellen funktionieren gut; eine fotografierte, handgeschriebene Rechnung aus dem Jahr 2019 braucht mehr menschliche Prüfung, und das System sagt das ehrlich, statt sich eine Vermutung auszudenken.

Es führt außerdem absichtlich keine automatische Zusammenführung von Duplikaten durch. Das bleibt eine Entscheidung des Menschen, nicht der Software. Klare Kennzeichnung und die Standardeinstellung “das nicht doppelt importieren” ist genau das richtige Maß an Hilfe.

Wenn Sie gerade auf Ihren eigenen unordentlichen Export starren

Die ehrliche Antwort auf “wie lange wird das dauern” lautet: wahrscheinlich ein Nachmittag, keine Woche. Laden Sie die Datei hoch. Prüfen Sie, was Neo gefunden hat. Bestätigen Sie, was stimmt, korrigieren Sie, was nicht stimmt, lassen Sie die Lücken für später, wenn Sie möchten. Sie werden immer noch da sein, klar gezählt, wann immer Sie bereit sind. Der Sinn war nie, Ihre Daten perfekt zu machen, bevor Sie anfangen. Er war, zu verhindern, dass perfekte Daten der Preis des Eintritts sind.


Craft11s Migration Engine übernimmt sowohl Kunden- als auch Ressourcenimporte mit derselben oben beschriebenen Architektur: konfidenzbewertete Extraktion, Duplikaterkennung und ehrliche Lückenverfolgung. Sehen Sie es sich in der Produkttour an →

Fragen, die Leute tatsächlich stellen

Bedeutet der Wechsel zu Craft11, dass ich alle Kundendaten von Hand neu eingeben muss?

Nein. Laden Sie die Datei hoch, die Sie bereits haben (eine Tabelle, ein CRM-Export, sogar eine PDF-Preisliste eines Lieferanten), und Neo (Craft11s Import-Agent) schlägt daraus strukturierte Datensätze vor. Sie prüfen und bestätigen; nichts wird angelegt, ohne dass Sie es vorher gesehen haben.

Was passiert mit Feldern, die er nicht herausfinden kann?

Sie bleiben leer und werden klar markiert, nicht geraten. Sie bekommen eine konkrete Liste, '47 Kontakte ohne Telefonnummer', keine vage Warnung, und Sie können sie beheben, wann immer Sie tatsächlich fünf Minuten haben, nicht bevor Sie das System überhaupt nutzen dürfen.

Was, wenn ich versehentlich dieselbe Liste zweimal hochlade?

Craft11 prüft mögliche Duplikate gegen Ihre bestehenden Datensätze (per E-Mail bei Kunden, per Name bei Katalogpositionen) und lässt diese Zeilen standardmäßig unmarkiert. Sie entscheiden, ob Sie trotzdem importieren. Es legt nie stillschweigend eine zweite Kopie von jemandem an, den Sie bereits haben.

Der Early Crew beitreten →← Zurück zu allen Beiträgen

Recorded on a live database and a live screen, but run by automated scripts standing in for a human's clicks and typing, not performed live. When Stark answers faster than the script expects, the screen can hold still for a beat before the next step starts. That's left in on purpose. The goal was never a polished demo reel, it was proof the feature actually works. Dejan's own verdict, after watching the raw footage: rough, but the best demo video we've made.