Aufbau eines CRM-Systems auf Basis von drei Diensten

Aufgabe und Anforderungen

Der Kern des Projekts ist der Aufbau eines CRM-Systems für eine Dienstleistung mit einem eigenen Geschäftsprozess. Anforderung an das Projekt: Entwicklung des Systems auf Basis weitgehend kostenfreier Dienste und Technologien, die am Markt verbreitet sind.

Research and Development

Die Arbeit beginnt mit der Erstellung des Lastenhefts und des Arbeitsplans.

  1. Analyse des Geschäftsprozesses des Kunden
  2. Erstellung eines Plans zur Automatisierung des Zusammenspiels der vom Kunden genutzten Dienste
  3. Entwurf eines Modells für das Zusammenspiel über einen zentralen Dienst
  4. Erstellung eines Schritt-für-Schritt-Plans zur Projektumsetzung

Aufbau des zentralen Dienstes

Das Team analysierte die APIs der Dienste und erarbeitete einen Plan für deren Anbindung über einen zentralen Dienst, sodass die Daten dort zusammengeführt und aktuell gehalten werden. Dieser zentrale Dienst wiederum sorgt für die Änderung und Aktualisierung der Daten in allen abhängigen Diensten.

Empfangen und Senden von Daten über die API

Die Arbeit mit Daten über eine API ist der klassische Weg, Daten bei Bedarf abzurufen – üblicherweise nutzt man diesen Ansatz, um Daten aktuell zu halten.

Zwei Wege, Daten zu empfangen und zu senden:

  1. CRON oder ein beliebiger anderer Aufgabenplaner
  2. Webhooks

In jedem Fall ist ein Synchronisationsalgorithmus nötig, der bei Bedarf ausgeführt wird, damit man sich zu 100 % sicher sein kann, aktuelle Daten vorliegen zu haben.

Anbindung von HubSpot CRM über API und Webhooks

Da dem Projekt ein bereits bestehender Geschäftsprozess zugrunde lag und die Aufgabe in dessen Automatisierung bestand, wurde die logische Struktur des Workflows nachgebildet, die in HubSpot CRM eingerichtet war und für die Betreuung von Leads und Geschäften genutzt wurde.

Anbindung von TeamGantt über API und Webhooks

Die Erbringung der Dienstleistung umfasste von Anfang bis Ende einen verzweigten technischen Ablauf, der nach dem Prinzip blockierender Aufgaben aufgebaut war. Die Arbeit mit dem Gantt-Diagramm bestand darin, eine Projektvorlage in dem Moment zu kopieren, in dem in HubSpot CRM vermerkt wurde, dass das Projekt in Arbeit ist. So ließen sich die Abteilungen trennen, ohne ein Bindeglied zu benötigen.

Auf dieselbe Weise musste nach Abschluss aller Phasen der Leistungserbringung in HubSpot CRM vermerkt werden, dass die Leistung erbracht wurde.

Anbindung von Google Drive über API und Google Apps Script

Im Verlauf der Leistungserbringung musste beim Erreichen bestimmter Etappen in TeamGantt ein Projekt mit einer festgelegten Ordnerstruktur in Google Drive unter einem bestimmten Konto angelegt werden.

Der Kunde hatte eigene Skripte in Google Apps Script geschrieben, denn er hatte dank gewisser Programmierkenntnisse selbst Automatisierungsversuche unternommen – die punktuelle Optimierung reichte jedoch nicht aus. Bei der Analyse dieser Skripte fiel die Entscheidung, sie zu überarbeiten: Die Google API bot mehr Möglichkeiten und erlaubte es, eine dynamische Datei- und Ordnerstruktur in Google Drive zugrunde zu legen, statt sich wie zuvor an eine fest programmierte Struktur zu binden.

BestPractice

Das Zusammenspiel zwischen Diensten über einen zentralen Manager-Dienst herzustellen, ist Best Practice bei der Arbeit mit mehreren APIs. Dieses Beispiel zeigt, welches Potenzial sich erschließt, wenn man die APIs einzelner Dienste anbindet, um andere Dienste umzusetzen.

Das Ergebnis unserer Arbeit

Der Kunde erhielt die Automatisierung seines Geschäfts – und damit neue Möglichkeiten, Verantwortung aufzuteilen und den Abstimmungsaufwand zwischen den Abteilungen zu verringern.

Die Mitarbeitenden müssen nicht auf eine neue Software umgeschult werden, denn das Wichtigste blieb erhalten: die Nutzung der gewohnten Dienste im gewohnten Workflow – und zwar ohne dass erweiterte Abonnements nötig wären:

  1. HubSpot
  2. TeamGantt
  3. Google.Drive

Der Kunde arbeitete mit HubSpot als CRM, TeamGantt für die Projektsteuerung und Google Drive für die Dateien der jeweiligen Projekte. Zu erreichen war die Synchronisation zwischen diesen Diensten: Beim Anlegen eines neuen Tickets in HubSpot sollte ein entsprechendes Projekt in TeamGantt entstehen. Während der Projektarbeit sollten sich alle Änderungen, etwa das Erreichen von Meilensteinen, im Status des Tickets in HubSpot widerspiegeln.

Die Umsetzung einer solchen Webanwendung erforderte eine gründliche Auseinandersetzung mit beiden Diensten und ihren APIs. Gelöst wurde die anspruchsvolle Aufgabe, die Konsistenz der Daten während der Synchronisation zu wahren. Das verhindert Situationen mit hoher Systemlast durch große Datenmengen oder Störungen in den für die Synchronisation zuständigen Skripten.

Um Dateien in Google Drive automatisch anlegen zu können, wurde ein breites Spektrum der Funktionen der Cloud-Plattform Google Cloud genutzt. Für die Arbeit mit den Dateien war Google Apps Script zuständig, während das Google-Cloud-Projekt dessen sicheren Betrieb gewährleistete.

Das Ergebnis unserer Arbeit ist eine Webanwendung mit schlichter, verständlicher Oberfläche, mit der der Kunde sein gewünschtes Resultat mit wenigen Klicks erreicht.