Hallo zusammen,
gibt es eine Möglichkeit oder Anleitung wie ich aus zwei einzelne CRM Systeme eines machen kann ´, also diese beiden zusammen führen ?
Hallo,
Möglichkeit auf jeden Fall, an Anleitung bin ich noch dran - ist nur immer sehr individuell.
Im Prinzip muss man durch eine ganze Reihe Fragen, abhängig von den Antworten ergeben sich Migrationsstrategien.
- Du hast zwei SuiteCRM die zusammengeführt werden müssen?
- Bei zwei unterschiedlichen Systemen: Ist eins Closed Source? Gibt es eine API? Gibt es Zugriff auf die DB? Gibt es Berichte mit Export-Option?
- Datenarchitektur unterscheidet sich zwischen den beiden Systemen?
- Gibt es Dubletten in den Systemen?
- Müssen im Zielsystem die gleichen Module befüllt / genutzt werden wie im Quellsystem?
- Gibt es auf Datensatzebene Besonderheiten (Workflows die beim Import nicht ausgelöst werden sollen, Zeichensatz / Encoding, …)
- Gibt es auf Feldebene Besonderheiten (unterschiedliche Zeichenlimitierungen, Datentyp-Konversionen, …)
- Gibt es im Zielsystem Validierungsregeln die im Quellsystem nicht existieren?
- Müssen Datensätze bereinigt / angereichert werden, während der Migration?
- Werden sämtliche Relationen übernommen oder gibt es sogar einen Teil-Datenbestand der Relations-Ziele im Ziel-System?
- Rechtliche Vorgaben zu den Daten / data governance Anforderungen / …
- etc.
Je nach Antwort auf diese Fragen, wird das Vorgehen dann deutlich.
Ein manueller Prozess für kleinere Migrationen (ca. einige hunderte - tausende Datensätze) kann so aussehen:
- Datenkorrektur / Vorbereitung im Quellsystem
- Erstellung und Export von Berichten
- Datenkorrektur / Anreicherung / Transformation die im Quell-CRM nicht möglich war
- Abgleich mit / Anreicherung um IDs / Datensätzen vom Ziel-CRM
- Import in Ziel-CRM
Bei größeren Migrationen (ca. tausende bis millionen) arbeitet man eher über Migrationsdatenbanken.
Entweder mit speziellen ETL / ELT tool oder mit einer Software in der Mitte.
Die verbinden sich zu beiden Datenbanken und machen in der Mitte die Transformation der Daten.
Wenn die Transformation komplex ist (Validierungsregeln, Datenanreicherungen, …) wird meist eine Zwischendatenbank eingeführt.
Da gibt es dann einen “golden record” als Ziel-Struktur. Dieser kann dann für den Import verwendet werden.
Je nachdem wie viele Transformationen durchlaufen werden müssen, kann es mehrere “silver records” geben und die Rohdaten werden in einen “bronze record” geschrieben.
Nennt sich Medallion-Architektur.
Zu den Berichten brauchst du sicher JOINS / Verknüpfungen:
Zum Import ohne Dubletten habe ich einen kurzen Workshop aufgenommen:
Hallo Bastian,
Danke dir für die schnelle Antwort.
Ja es sind zwei SuiteCRM Systeme die ziemlich identisch sind, also fast die gleiche Struktur und Module.
Das sollte das vereinfachen.
Dubletten sollte es nicht geben.
Zu den Modulen, ja die sind gleich Beziehungsweise könnte die noch angepasst werden sie gleich sind.
Es sollten die Kundennummern in beiden Systeme angepasst werden die um XX erweitert werden so das man die wieder unterscheiden kann aus welchen System sie kommen.
Das klingt doch gut - dann hast du schon die wichtigsten Punkte genannt.
Sollte in der Tat einfacher sein als Migration aus einem geschlossenen System.
Du hast im Prinzip die Option für zwei verschiedene Ansätze:
1: Programmatisch inkl. IDs und Verknüpfungen
Hier müssten Skript(e) geschrieben werden, die Daten aus der Quell-DB auslesen, minimal transformieren (Kundennummer Präfix o. Ä.) und in die Ziel-DB laden.
PHP eignet sich gut, weil viel vom CRM im PHP vorgegeben ist als Beispiel.
Python benutze ich auch gern, wenn mehr Daten-Logik passieren soll.
Der Große Nachteil: ist prinzipiell ein Einmal-Code, der nach der Entwicklung weggeworfen wird. Daher wahrscheinlich eher:
2: Manuell via Import / Export
Du erstellst dir Exporte über Berichte, baust die Spalten (Namen) so auf, dass sie der Import bereits erkennt und gehst darüber vor.
Bei der Reihenfolge achtest du immer auf die Parent Records:
Bsp Account / Contact:
Erst muss der Account importiert sein.
Wenn der existiert, kann der Contact importiert werden, mit einer Beziehung zum Account.
Falls du mehr als ca. hunderte / tausende Datensätze hast, dann kannst du die Importe aufteilen auf mehrere Dateien.
Geht bei den Exporten auch, aber da ist es einfacher die Servereinstellungen passend zu konfigurieren, sodass der Export nicht in Timeouts läuft.
z. B. php.ini max_execution_time
Das ist eher ein Server / Hoster-Thema.
Die Kundennummern-Präfixe kannst du dann über LibreOffice Calc oder Excel machen. Pass hier gut auf, dass die Software nicht mitdenkt und ggf. Postleitzahlen mit führender 0 in eine Zahl umwandelt und die 0 raus löscht.
Weitere Ansätze sind via API - rentiert sich aber für eine Einmal-Aktion auch nicht, wenn es keine speziellen Anforderungen gibt.
Oder über sowas wie Metabase (der Open Source Download) und einer direkten DB Verbindung (bzw. einem Dump in einer zweiten DB) die Exporte zusammenstellen, falls du keine Kontrolle über den Quell-Server hast und in Timeouts o. Ä. rein läufst.
Hallo Bastian,
ich hab nochmal eine Frage.
Jetzt ist es so weit, dass ich die Systeme zusammenführen muss.
Die ersten Tests sind vielversprechend. Jetzt hab ich aber noch ein Problem mit meinen Kunden, die haben Dokumente PDFs und Word verknüpft. Wenn ich die Kunden exportiere, fehlen mir die Dokumente und ich weiß nicht, wie ich diese mit übertragen kann.
Danke vor ab schon mal.
Hallo Werner,
Dokumente sind eine größere Herausforderung. ![]()
Wie viele hast du denn?
Falls es um die hundert(e) sind, würde ich wahrscheinlich einfach diese manuell anlegen im neuen System.
Evtl. sogar mit den neuen Drag & Drop features / Storage System vom 8.9er System:
Falls es sich um deutlich mehr handelt gibt es zwei relevante Optionen:
(Import geht leider nicht - da eben CSV + Datei benötigt werden würde).
- Migration via API Skripte. Wenn du zuvor bereits via Skript migriert hast, dann müssen diese jetzt für die Dateien erweitert werden. Das funktioniert über die V8 JSON API leider nicht komplett und du müsstest auf die v4.1 oder GraphQL ausweichen.
- Manuelle Migration: Du kannst die Dateien aus dem Verzeichnis
/public/legacy/uploadeinfach auf den neuen Server kopieren. Danach kannst du die entsprechnden DB Tabellen-Inhalte kopieren (documents und dann die passenden relationship Datensätze).
Wichtig ist hierbei: Wenn du im Zielsystem unterschiedliche IDs hast vom Quellsystem (Accounts, Contacts, etc.) dann musst du da nochmal die IDs in den Beziehungstabellen ändern (bzw. am besten sogar bevor du die Daten ins Zielsystem schreibst.
Du bist noch vor der Zusammenführung?
Dann speichere am besten im Zielsystem noch ein Custom Feld: Old CRM ID.
Damit kannst du dann immer wieder exportieren und über LibreOffice Calc o. Ä. eine Verknüpfung herstellen zwischen alten und neuen Daten.
Danke Bastian für deine Info.
Hast du eine Ahnung was es kostet wenn ein Profi das übernehmen würde.
Also die Zusammenführung und Datenübernahme , machst du so was auch?
Ja, sowas mache ich auch ![]()
Um einen genauen Preis zu nennen, muss ich mir zunächst die Daten genauer anschauen.
Es gab Migrationen die gingen schnell und einfach und andere, die recht komplex waren mit vielen Sonderfällen und Sonderzeichen etc.
Lass uns gern einfach kurz abstimmen:
E-Mail: Bastian.Hammer@mail.de
Mobil: +49 160 1641067
LinkedIn: www.linkedin.com/in/bastian-hammer-it-consulting