2017 API

Memedi Muhammed

Lead Sorter

Durchführung: 18.04.2017 bis 19.05.2017

Lead Sorter

Durchführung: 05.05.2017 bis 18.05.2017


Thematik

Automatisiertes Filtern von doppelten oder ungültigen bei uns einkommenden Multichannel-Marketing-Leads (Bislang mühsame manuelle Arbeit), welche wir einmalig pro Monat unseren Kunden aushändigen.


Ausgangslage

Seit knapp zwei Jahren erbringt die ASPKOM GmbH Dienstleistungen für eine Versicherungs-Agentur in Wil. Nebst der Erstellung der Website und das Entwerfen von Drucksachen, generiert die ASPKOM Leads, welche der Versicherungsagentur ausgehändigt werden. Diese Leads werden von den Versicherungsagenten per Telefon kontaktiert. Ziel ist es dabei, einen Beratungstermin zu vereinbaren. Da die Überprüfung der Leads zurzeit mühsam von Hand geschieht, wird viel Arbeitszeit in Anspruch genommen. Nebst der Zeit die aufgewendet wird, schleusen sich aber immer wieder ungültige und doppelte Datensätze ein. Deshalb wird ein Programm benötigt, welches die Überprüfung automatisch ausführt und die Fehlerhäufigkeit reduziert.

Ziel

Das mühsame Aussortieren von doppelten und ungültigen Leads soll durch ein Tool automatisiert werden. Das Tool soll doppelte und ungültige Leads erkennen und diese aussortieren. Nebst dem soll eine 90-Tagige Sperrfrist für bereits vorhandene Leads eingeführt werden, welche verhindert, dass ein Kunde innerhalb der 90-Tage einen Lead zwei Mal erhält. Desweiteren soll es eine Übersicht aller Leads geben, auf der Leads auch von Hand «geblockt» oder «freigeschaltet» werden können. Es soll auch die Möglichkeit geben, Kunden zu erfassen, welche nur zur Sortierung der Imports dienen sollen.
Das Tool soll zusätzlich möglichst benutzerfreundlich und einfach in der Bedienung sein.


Vorgehensmethode

Das Projekt wurde mittels des Wasserfallmodells durchgeführt:
- Idee
- Analyse
- Design
- Realisierung
- Testing
- Maintenance


Lösung

Die Umsetzung des Projektes geschah mittels dem MVC Framework «Ruby on Rails 5», Ruby 2.3, lokaler sqlite3 Datenbank und «JetBrains RubyMine» realisiert. Die graphische Oberfläche wurde mittels Bootstrap realisiert.

Folgende Schritte werden durchlaufen, sobald ein Import gemacht wird.

1. Es wird ein Import-Eintrag für den Kunden gemacht.
2. Nach der Erstellung der Import-Eintrags, wird die CSV-Datei auf Ihre Gültigkeit überprüft (Dateityp wird überprüft)
3. Nach der Überprüfung öffnet das System die CSV-Datei und zerlegt diese.
4. Danach wird jeder Datensatz der gesamten Datei durchlaufen.
5. Zuerst überprüft das System jeden Datensatz auf das Vorhandensein einer Telefonnummer. Ist keine Telefonnummer vorhanden, so wird dieser Datensatz übersprungen und das System geht zum nächsten Datensatz.
6. Das System überprüft, ob der gesamte Datensatz leer ist. Ist dies der Fall, wird dieser übersprungen und zum nächsten gegangen.
7. Ist der gesamte Datensatz samt der Telefonnummer vorhanden, so wird er in dieser Verfassung als erstes in der Datenbank gespeichert. So kann die ursprüngliche Datei heruntergeladen werden.
8. Nachdem prüft das System, ob die Nummer gültig oder ungültig ist. Für diese habe ich Twilio API benutzt, welche die Telefonnummern validiert. Hierfür ist eine Internetverbindung nötig.
9. Falls eine Nummer ungültig ist, wird diese entfernt.
10. Ist die Nummer gültig, wird überprüft, ob der Ländercode «CH» ist.
11. Wird die Nummer als eine Schweizer Nummer erkannt, wird diese beibehalten, ansonsten wird sie übersprungen.
12. Nach dem Erhalt der korrekten Telefonnummer, wird die Nummer mit allen Datensätzen verglichen, welche in einer Beziehung mit dem dazugehörigen Kunden stehen. Ist solch eine Telefonnummer schon vorhanden, wird diese entfernt und markiert. Mit der Markierung wird die Anzahl der Duplikate im Log des Imports dargestellt.
13. Das System überprüft nun, ob sich die Nummer in der Sperrfrist oder ausserhalb dieser befindet. Wenn die Nummer sich noch in der drei monatigen Sperrfrist befindet, wird diese markiert und im Log vermerkt. Ist sie jedoch ausserhalb der Sperrfrist, so wird diese auch im Log dargestellt.
14. Nachdem wird überprüft, ob der Lead dauerhaft blockiert wurde. Ist dies der Fall, so wird dieser als «Blacklisted» markiert.
15. Ist jedoch die Nummer für den ausgewählten Kunden neu, so wird der komplette Datensatz in der Datenbank abgespeichert und die Sperrfrist für drei Monate tritt in Kraft.

Das Tool durchläuft diese Schritte für jede hochgeladene CSV-Datei. Wenn der Import vollendet ist, wird dieser einmal in ursprünglicher und in bereinigter Form abgespeichert. So stehen dem Benutzer beide Dateien zur Verfügung.


Fazit

Da ich mich mit einer komplett neuen Programmiersprache auseinandersetzen musste, war die Fertigstellung des Projektes sehr anspruchsvoll. Da das Projekt nur lokal umgesetzt wurde, ist es noch nicht betriebsbereit. Jedoch sind alle Funktionen gewährleistet und es können im Notfall Leads-Listen lokal bereinigt werden.
Mit meiner geleisteten Arbeit bin ich zufrieden. Es bereitete mir Freude ein Projekt in einer komplett neuen Programmiersprache zu entwickeln, so konnte ich Vieles dazulernen.