Ein Empfehlungsprogramm ist ein System, das Kunden oder Unternehmenspartner belohnt, indem es Anreize oder Boni für die Gewinnung neuer Teilnehmer bietet.

Aus technischer Sicht umfasst ein Empfehlungsprogramm mehrere Schlüsselkomponenten:

  1. Einen Einladungslink – eine eindeutige Kennung, die es Benutzern oder Kunden ermöglicht, andere zur Teilnahme am Programm einzuladen. Der Einladende kann diesen Link über verschiedene Kanäle teilen (dieser Artikel behandelt beispielsweise die Generierung von Links über einen WhatsApp-Bot, aber Empfehlungslinks können über jeden beliebigen Messenger geteilt werden).
  2. Eine Teilnehmerdatenbank, implementiert durch die Integration von MaviBot und Google Sheets-Funktionalität, in der Informationen sowohl über die eingeladenen als auch über die einladenden Benutzer aufgezeichnet werden.
  3. Ein Empfehlungsverfolgungssystem, das Aktionen im Zusammenhang mit der Gewinnung neuer Teilnehmer über Empfehlungslinks überwacht. Das System speichert Daten zu allen Empfehlungen und ermöglicht so die Überprüfung, ob eine bestimmte Empfehlung bereits als zuvor eingeladener Benutzer im System vorhanden ist.

Wir empfehlen dringend, die Abschnitte „Grundlagen der Bot-Erstellung auf Mavibot.ai“ link und „Google Sheets“ link zu lesen, bevor Sie Ihren Chatbot-Ablauf erstellen.

Empfehlungssystem in WhatsApp

Die Funktionalität des zu erstellenden Bots umfasst Blöcke, die aus den folgenden Komponenten bestehen:

  1. Generierung eines Empfehlungslinks (Affiliate-Link); link
  2. Überprüfung, ob der neue Benutzer bereits in der Datenbank vorhanden ist; link
  3. Benachrichtigung des einladenden Benutzers über eine neue Empfehlung; link
  4. Aufzeichnung der Benutzer in der Datenbank; link
  5. Anforderung einer Liste der Empfehlungen. link

Erstellen wir einen Block mit einem eingebetteten Link, den der Bot dem Benutzer auf den Befehl „Link“ sendet. Erstellen Sie dazu einen neuen Block im Ablauf mit einer der beiden Methoden:

  1. Doppelklicken Sie auf einen leeren Bereich in der Builder-Leinwand:

  1. Verwenden Sie die Schaltfläche „Speichern“ am unteren Bildschirmrand und wählen Sie den Blocktyp aus:

Geben Sie anschließend in der Bedingung des Blocks das Wort „Link“ ein und setzen Sie den Übereinstimmungstyp auf „Tippfehler und Ungenauigkeiten ignorieren“ (dies ist bei Tippfehlern oder anderen Nachrichtenfehlern des Benutzers hilfreich):

Um zu identifizieren, wer den Benutzer geworben hat, erstellt der Bot einen Link mit der folgenden Vorlage: https://wa.me/(Ihre mit dem Bot verknüpfte Telefonnummer)?text=You%20were%20recommended%20by%20#{phone}%20😌Hello

Schauen wir uns den Vorlagenlink genauer an: https://wa.me/(Ihre mit dem Bot verknüpfte Telefonnummer)?text=You%20were%20recommended%20by%20#{phone}%20😌Hello, wobei:

  1. Ersetzen Sie die Klammern „(Ihre mit dem Bot verknüpfte Telefonnummer)“ durch die entsprechende Telefonnummer;
  2. #{phone} wird automatisch durch die Telefonnummer des Benutzers ersetzt, der seinen Partnerlink angefordert hat.

Wir senden den generierten Link nicht als Blocktext, sondern als Anhang – einen anklickbaren Link mit einer Benachrichtigung (siehe Abb. 2 und Abb. 3):

  • Wählen Sie „Anhang einfügen“
  • Wählen Sie den Typ – Link, und fügen Sie ihn in das Feld „Anhang-URL“ ein:

In diesem Fall wird der Link visuell verkürzt dargestellt:

Abb. 4. Ansicht in WhatsApp

Testen wir die Linkfunktionalität mit der Funktion „Bot testen“.

Hier ist das Ergebnis: Der Link leitet den Benutzer zum entsprechenden Messenger-Chat mit Ihrer Telefonnummer weiter:

Auf diese Weise haben Sie erfolgreich einen Einladungslink generiert, den potenzielle Benutzer verwenden können, um auf den Chatbot zuzugreifen. Darüber hinaus wird der Benutzer beim Klicken auf diesen Link mit einer vorausgefüllten Nachricht zum Chat-Fenster weitergeleitet. (Siehe Abb. 6)

Abb. 6. Ausgefüllte Nachricht in WhatsApp

Benutzerüberprüfung

Verwendung von Funktionen und regulären Ausdrücken in einem Block

Der Befehl zur Überprüfung und Datenbankeintragung funktioniert nur, wenn der Bot eine Telefonnummer in der Nachricht des Benutzers findet. Daher ist es notwendig, die empfangene Phrase in Teile aufzuteilen.

Hierfür wird die Funktion splitter() verwendet.

Splitter()-Funktion

splitter(str, s, n) – teilt einen String in Teile. Die Funktion gibt ein Array von Elementen zurück.

Parameter:

! str ****– der ursprüngliche String

! s ****– das String-Trennzeichen

n – die maximale Anzahl von Elementen

Beispiel

String-Aufteilungsfunktion:

Als nächstes muss der Bot überprüfen, ob die Ziffernfolge im String tatsächlich eine Telefonnummer ist. Dazu verwenden wir die folgenden regulären Ausdrücke:

  • Allgemeine Telefonnummer: ^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$
  • Russische Nummer ändern! Nur russische Telefonnummer: ^((\+7|7|8)+([0-9]){10})$

Informationen zur Arbeit mit regulären Ausdrücken finden Sie im Artikel „Reguläre Ausdrücke“. link

Nachdem der Bot überprüft hat, dass die Ziffernfolge tatsächlich eine Telefonnummer ist, speichern Sie sie aus der Nachricht als Variable (z. B. #{reff}).

Überprüfung der Telefonnummer des Benutzers als Empfehlung in der Datenbank

Jetzt muss überprüft werden, ob die Telefonnummer des Benutzers, der dem Link gefolgt ist, bereits eine Empfehlung ist (zuvor von jemandem eingeladen und in unserer Datenbank aufgezeichnet). Erstellen Sie dazu einen Block im Ablauf mit einer Spaltensuchfunktion.

Verwenden Sie die Spaltensuchfunktion, indem Sie im Block auf „API-Anfrage“ klicken, wo Sie die folgenden Parameterwerte festlegen müssen:

! Funktions-URL: https://store.salebot.pro/function/findcell link

! JSON Anfrageparameter:

{ "id": "your_table_id", "find": "text_to_search", "col": column_number_to_search_in, "return": column_number_to_return, "creds_path": "path_to_your_auth_credentials_file" }

Antwortparameter:

"status": "1" – Wert gefunden

"status": "0" – Wert nicht gefunden

"data" – der gefundene Wert

"cell_number" – die Position der gefundenen Zelle

Suche nach Spalte und Anzeige von Text aus der gesamten Zeile

Der Rückgabeparameter muss auf 0 gesetzt werden.
&#xNAN;{ "id": "your_table_id", "find": "text_to_search", "col": 2, "return": 0 }
Antwort: {"status":"1","data":{"0":"\u0441\u043e\u043b\u043d\u0446\u0435","1":"\u0440\u0430\u0441\u0441\u0432\u0435\u0442","2":"\u043a\u0440\u044b\u0448\u0430","3":"","4":"\u043d\u0435\u0431\u043e"},"cell_number":{"row":4,"col":1, "col_letter":"A"}}
Aufschlüsselung der Antwort:

data – Antwort

data|0 – Zelle 1

data|1 – Zelle 2

data|2 – Zelle 3

data|3 – Zelle 4

cell_number|row – Zeile

cell_number|col – Spalte

Weitere Informationen zu den verfügbaren Funktionen für die Arbeit mit Tabellen finden Sie im Artikel „Google Sheets“. link

Benachrichtigungsblock

Um den Benutzer, der den Empfehlungslink geteilt hat, zu benachrichtigen, dass ein neuer Kunde ihm erfolgreich gefolgt ist, erstellen wir einen dedizierten Block. Verwenden Sie zum Senden einer Benachrichtigung über die Erstellung einer neuen Empfehlung die folgenden Anforderungsparameter (Typ: POST - JSON):

Anfragen werden mit der POST-Methode an die URL: https://chatter.salebot.pro/api/{api_key}/{action} gesendet. Wobei:

  • api_key der API-Zugriffsschlüssel Ihres Projekts ist, der in den Projekteinstellungen abgerufen werden kann (siehe Abb. 11).

Sie können den Zugriffsschlüssel mit der Variable #{api_key} abrufen, die das aktuell generierte Zugriffstoken speichert. Vergessen Sie nicht, das Token vor der Verwendung zu generieren.

! Anfrage-URL: https://chatter.salebot.pro/api/#{api_key}/whatsapp_message link

Weitere Details zu API-Anfragefunktionen finden Sie hier. link

Hinzufügen der eingeladenen und einladenden Benutzer zur Datenbank

Dazu verwenden wir die zeilenweise Eingabe in bestimmte Spalten, was mit der Mapping-Funktion erfolgt.

Die Tabelle muss eine ausgefüllte Kopfzeile haben (mindestens eine Zelle in der ersten Zeile).

! Funktions-URL https://store.salebot.pro/function/gsheets link

! JSON Anfrageparameter:

{ "id": "your_table_id", "mapping": { "a": "#{variable}", "b": "#{another_variable}", "d": "plain text" } }

Wenn Sie Zeilen nicht auf dem ersten Blatt schreiben möchten, fügen Sie den Parameter list_name zur Anfrage hinzu:

{ "id": "your_table_id", "mapping": { "a": "plain text", "b": "#{variable}" }, "list_name": "SheetName" }

Parameter:

  • id – Tabellenkennung*
  • a, b, c, d – Spaltennamen
  • list_name – Ihr Blattname (z. B. „Sheet2“)

*Stellen Sie sicher, dass Sie ihn durch Ihre tatsächliche Tabellen-ID ersetzen.

Antwortbeispiel: {"number_row":8}

Wenn die Anfrage erfolgreich ausgeführt wird, enthält die Antwort die Zeilennummer, die Sie für weitere Operationen speichern und verwenden können.

Anzeigen der Liste der Empfehlungen

Fügen wir dem Bot einen zusätzlichen Befehl hinzu, der es Benutzern ermöglicht, ihre Liste der Empfehlungen anzuzeigen.

Um alle angegebenen Werte in einer Spalte zu finden, verwenden Sie die findcell-Funktion mit dem Parameter "find_all". Dadurch werden alle Vorkommen des Werts "find_all" in der angegebenen Spalte "col" gefunden und eine Liste der eindeutigen Werte aus der Spalte "return" als String zurückgegeben.

! Funktions-URL: https://store.salebot.pro/function/findcell link

! JSON-Anfrageparameter:

{ "id": "table_id", "find_all": "search_value", "list_name": "sheet_name", "col": "column_number_to_search_in", "return": "column_number_to_return_values_from", "find": "!" }

Geben Sie in den gespeicherten Werten an:

list → Liste

quantity → Anzahl

Zeigen Sie dem Benutzer die Nachricht an:
"Sie haben #{spisok} geworben, Ihre gesamten Empfehlungen: #{quantity}"

In anderen Messengern ist die Implementierung eines solchen Empfehlungssystems noch einfacher, da die Daten des Einladenden als versteckter Parameter beim Linkübergang übergeben werden, sodass der neue Benutzer keine Nachricht wie „Ich wurde von dieser Nummer eingeladen“ senden muss.