CosmoCode
  • Great software.

  • Bright people.

  • Happy customers!

CosmoCode GmbH
  • Start
  • Geschäftsfelder
  • Über uns
  • Referenzen
  • Blog
  • Open Source
←
Alle Blogposts
→

Synchronisation von vTiger und OpenEMM

Synchronisation von vTiger und OpenEMM

Einer unserer Kunden verwendet OpenEMM zum Versand von Newsletter, und vtiger zur Verwaltung der Kundendaten. Unsere Aufgabe war es, diese beiden Systeme miteinander zu synchronisieren.

Detlef Hüttemann, 16.04.2019 14:18

Zugehörige Dienstleistungen:
  • vTiger CRM

Eine Schwierigkeit bei dieser Synchronsation besteht darin, dass in beiden Systemen Änderungen erfolgen können:

Im OpenEMM können Kunden sich von verschiedenen Mailinglisten an- und abmelden; im vtiger System werden diese Merkmale ebenfalls gepflegt. Zudem ist es (DSGVO lässt grüßen) im vtiger auch notwendig, eine komplette Kommunikationssperre durchzuführen.

In jedem Fall ist es zu vermeiden, dass Kunden, die keine Newsletter wünschen, weiterhin Mails bekommen.

Lösungsansatz

Wir synchronisieren die Datenbestände in beide Richtungen. Ziel ist es, dass beide Systeme synchron sind - wobei das OpenEMM Newslettersystem erst kurz dem Versand eines Newsletters mit dem vtiger synchronisiert werden muss.

vtiger -> OpenEMM Synchronisation 

Wir synchronisieren die Kundendaten einmal täglich. Eine differentielle Synchronisation kommt nicht in Frage, da auch im vtiger gelöschte Kundendatensätze im OpenEMM gelöscht werden müssen. Wir übertragen also die kompletten Daten; das sind gezippt etwa 3 MB. Diese Daten werden dann mit der OpenEMM Datenbank komplett abgeglichen.

Da das vtiger System im Intranet und das OpenEMM im Internet steht, müssen die Daten vom vtiger zum OpenEMM gepusht werden. Hierzu wurde ein geschützter https Port bereitgestellt, der die Daten entgegennimmt und anschließend verarbeitet. Die Verarbeitung erfolgt in Python; es wird direkt mit der Datenbank abgeglichen. Für den komfortablen Zugriff auf die Tabellen und Felder wurde die OpenEMM Datenbank mit Django reverse engineered; somit stehen die Entitäten als ordentliche Django Models zur verfügung.

Die Verarbeitung erfolgt hierbei leichtgewichtig mittels uWSGI-Spooling.

OpenEMM -> vtiger Synchronisation

Im OpenEMM finden die An- und Abmeldungen der Nutzer statt - diese Daten müssen zurück in das vtiger synchronisiert werden. Auch hier werden die Daten vom OpenEMM Server abgeholt und direkt in die vtiger Datenbank geschrieben, die per Django Models reverse engineered wurde. OpenEMM verwaltet dabei einen eigenen Last-Modified Zeitstempel, der vom vtiger bei der Abfrage mitgegeben wird: wir holen uns differentiell nur die geänderten Daten. Die Synchronisation erfolgt minütlich; der sukzessiv inkrementierte Zeitstempel wird zudem über eine URL bereitgestellt. Unsere Überwachungs-Infrastruktur prüft über diese URL ab, ob sich dieser Zeittempel kontinuierlich ändert - falls nicht, klemmt die Synchronisation und ein Alarm wird ausgelöst.

Fazit

Die Synchronisation mit vtiger hat seine Tücken - speziell dann, wenn Datenänderungen in mehreren Systemen gleichzeitig stattfinden können. Im Falle der OpenEMM Synchronisation können wir die Tatsache nutzen, dass Newsletter nicht permanent versendet werden - dadurch muss in Richtung OpenEMM nur täglich synchronisiert werden. Das wiederum verschafft uns die Möglichkeit, komplett zu synchronisieren, um auch fehlende / gelöschte / genullte Datensätze korrekt behandeln zu können.

Mehr zum Thema

  • Checkliste CRM Einführung mit vTiger
  • CRM Einführung mit vTiger, Teil 1: CRM, Ziele, Werkzeuge und Vorgehensweise
  • vTiger Synchronisation mit TYPO3
  • CRM Einführung mit vTiger, Teil 2: Datenflüsse, Modellierung, Softwareanpassung und Fazit

Kontakt

Wir freuen uns sehr über Ihr Interesse!
Sie erreichen uns hier:

CosmoCode GmbH

Prenzlauer Allee 36G
10405 Berlin

Telefon: +49 30 814 50 40 70

Telefax: +49 30 2809 7093


mail: info@cosmocode.de

CosmoCode GmbH  
   

© CosmoCode 2021 | Impressum | Datenschutz | Cookies verwalten

Schließen
Deutsch Englisch
  • Jobs