Mystery Shopper von CityMobile

Hallo! Mein Name ist Narek Markosyan und ich bin Backend-Entwickler bei Citimobil. Ich möchte Ihnen von unserem geschlossenen Telegramm-Bot "Mystery Shopper" erzählen.

Prolog


Niemand trägt eine pinkfarbene Brille in CityMobile. Wir wissen, dass unser Service nicht perfekt ist. Deshalb arbeiten wir ständig daran, ihn zu verbessern. Kundenprobleme können mit der Anwendung, mit der Berechnung des Preises, aber meistens mit dem Fahrer verbunden sein.

Wir lieben unsere Fahrer und bemühen uns, ihre Arbeit unterhaltsamer und rentabler zu gestalten. Aufgrund eines skrupellosen Fahrers können wir jedoch mehrere Kunden verlieren und damit Fahrern die ihre Arbeit aufrichtig erledigen, den Garaus machen.

Aus diesem Grund haben wir uns entschlossen, ein Tool zu entwickeln, um schnell auf Beschwerden im Zusammenhang mit Fahrern reagieren zu können.

Warum brauchen wir einen Bot?


Absolut alle Beschwerden unserer Kunden werden von den Mitarbeitern der Supportabteilung berücksichtigt, aber wir können uns aus mehreren Gründen nicht vollständig auf die von Kunden erhaltenen Statistiken verlassen:

  • Nicht alle Kunden hinterlassen Feedback, wenn etwas schief gelaufen ist.
  • Wir können uns der Objektivität der Kunden nicht immer sicher sein.
  • Wir wollen und können unseren Kunden keine Reihe von Klärungsfragen stellen , um ein vollständiges Bild zu erhalten.

Also, was ist zu tun? Bitten Sie unsere Kollegen um Hilfe!

  • Die Mitarbeiter werden höchstwahrscheinlich nicht vergessen , ein Problem zu melden.
  • Die Mitarbeiter sind objektiver . Nicht bis zum Ende, aber trotzdem :)
  • Sie können zu einem Kollegen gehen und alle notwendigen Details herausfinden.

Natürlich können Sie bei Problemen jederzeit den Versandraum anrufen und auf Zwischenhändler verzichten, aber der Bot hilft Ihnen bei der Ausführung zweier wichtiger Aufgaben: Er erinnert Sie an das, worauf Sie achten müssen, und ermöglicht es Ihnen, ein Problem per Knopfdruck zu melden.

Wie funktioniert der Bot?


Bild

Der Mystery Shopper ist sehr einfach. Es besteht nur aus zwei Handlern:

Der erste Handler nimmt von unseren API-Reisen, die kürzlich abgeschlossen wurden oder sich im Status "In Transit" befinden, und sendet die erste Reisefrage an den Chat.

Der zweite Handler greift auf die Telegramm-API zu und nimmt ungelesene Nachrichten auf, durchläuft nacheinander jede Nachricht und sendet eine Antwort auf den Chat.

Natürlich war es möglich, dass unser Server automatisch Nachrichten an den Bot der Reise sendet und die Benutzerantworten aus dem Telegramm nicht stapelweise eingehen, sondern zum Zeitpunkt des Sendens, aber nach Diskussionen haben wir uns entschlossen, den oben beschriebenen Mechanismus durchzuführen. Dafür gab es mehrere Gründe:

  • Mit dieser Implementierung ist der Dienst für eingehende Anfragen an allen Ports vollständig geschlossen , wodurch wir keine Angst vor Hacking-Versuchen oder DDOS-Angriffen haben können.
  • Wenn viele Nachrichten gleichzeitig von Benutzern eingehen, bombardiert uns Telegram nicht mit Anfragen .
  • Wenn der Bot langweilig wird, hat dies keine Auswirkungen auf unseren Hauptserver und auf die Geschäftsprozesse.

Wir haben MySQL als Basis für den Bot gewählt. Jede Datenbank wäre für uns geeignet, auch noSQL. Wir haben uns jedoch für MySQL entschieden, um der Analytics-Abteilung die Verarbeitung der erforderlichen Daten zu erleichtern.

Als Sprache haben wir hier zwischen PHP und GoLang gewählt. Wir haben bei PHP angehalten, weil "warum nicht". Mit der Implementierung, die wir haben, würden wir nicht die Hauptvorteile von Go nutzen, sondern die weitere Entwicklung erschweren - nicht alle unsere Entwickler schreiben auf Go. Wenn Sie eine Idee haben, was in dieser Implementierung von Go besser wäre als PHP, würde ich mich freuen, diese in den Kommentaren zu lesen.

Verbesserungen


Seit der ersten Version wurden nicht viele Verbesserungen vorgenommen. Nach dem offiziellen Start haben wir begonnen, Feedback zu sammeln, und dabei nur zwei Probleme festgestellt.

Das erste Problem ist das kurze Gedächtnis . In der ersten Implementierung begann der Bot, den Mitarbeiter 5 Minuten nach der Reise zu befragen. Es stellte sich heraus, dass der Passagier in dieser Zeit einige Details vergessen konnte, zum Beispiel die Zulassungsnummer des Autos. Nach der Verfeinerung begann der Bot eine Minute, nachdem der Passagier in das Auto gestiegen war, mit der Vermessung. Der Bot stellte Fragen, deren Antwort bereits bekannt ist (Sauberkeit des Autos, ob das Auto die richtigen Nummern hat, etc.). Nach der Reise kehrte der Bot mit einem weiteren Fragenbündel zurück, dessen Antworten erst während der Reise deutlich werden.

Das zweite Problem ist, dass bei uns fast immer alles in Ordnung ist . Egal wie seltsam es auch klingen mag, aus der Sicht des Bots ist dies zu einem Problem geworden. Unsere Kollegen sind nach jeder Reise zehnmal müde und antworten: "Alles ist in Ordnung." Wir haben dieses Problem durch Gruppieren von Fragen gelöst: Wir haben alle Fragen, die während der Reise gestellt wurden, und alle Fragen, die danach gestellt wurden, zu zwei identischen Fragen zusammengefasst: „Ist alles in Ordnung?“ Mit einer anderen Reihe von Antworten.

Bild

In naher Zukunft planen wir, die Anzahl der vertrauenswürdigen Kunden zu erhöhen und damit den Bot effizienter zu machen. Dazu müssen Sie die Autorisierung wiederholen und kritische Ereignisse überwachen. Wenn es interessante Änderungen gibt, schreibe ich einen separaten Artikel darüber ...

Source: https://habr.com/ru/post/de484728/


All Articles