Programme de parrainage
Un programme de parrainage est un système qui récompense les clients ou les partenaires de l’entreprise en offrant des incitations ou des бонус pour l’arrivée de nouveaux participants.
D’un point de vue technique, un programme de parrainage comprend plusieurs composants clés :
Un lien d’invitation— un identifiant unique qui permet aux utilisateurs ou aux clients d’inviter d’autres personnes à participer au programme. L’invitant peut partager ce lien via différents canaux (par exemple, cet article expliquera comment générer des liens via un bot WhatsApp, mais les liens du programme de parrainage peuvent être partagés via n’importe quel messager de votre choix).
Un base de données des participants, mise en œuvre grâce à l’intégration de MaviBot et des fonctionnalités de Google Sheets, où sont enregistrées les informations sur l’utilisateur invité et sur l’utilisateur invitant.
Un système de suivi des parrainages qui surveille les actions liées à l’arrivée de nouveaux participants via des liens de parrainage. Le système stocke les données de tous les parrainages, ce qui vous permet de vérifier si un parrainage donné existe déjà dans le système en tant qu’utilisateur précédemment invité.
Nous vous recommandons vivement de consulter les sections « Bases de la création de bots sur Mavibot.ai » lien et « Google Sheets » lien avant de créer le flux de votre chatbot.
Système de parrainage dans WhatsApp
La fonctionnalité du bot créé comprendra des blocs composés des éléments suivants :
génération d’un lien de parrainage (affiliation) ; lien
vérification si le nouvel utilisateur est déjà dans la base de données ; lien
notification à l’utilisateur invitant qu’un nouveau parrainage a été effectué ; lien
enregistrement des utilisateurs dans la base de données ; lien
demande d’une liste de parrainages. lien
Génération du lien de parrainage
Créons un bloc avec un lien intégré que le bot enverra à l’utilisateur via la commande « lien ». Pour ce faire, créez un nouveau bloc dans le flux à l’aide de l’une des deux méthodes suivantes :
Double-cliquez sur une zone vide dans le canevas du constructeur :

En utilisant le bouton « Enregistrer » en bas de l’écran et en sélectionnant le type de bloc :

Après cela, dans la condition du bloc, saisissez le mot « Lien » et réglez le type de correspondance sur « Ignorer les fautes de frappe et les imprécisions » (c’est utile en cas de fautes de frappe de l’utilisateur ou d’autres erreurs de message) :

Pour identifier qui a parrainé l’utilisateur, le bot crée un lien à l’aide du modèle suivant : https://wa.me/(votre numéro de téléphone lié au bot)text=Vous%20avez%20été%20recommandé%20par%20#{phone}%20😌Bonjour

Examinons de plus près le lien modèle : https://wa.me/(votre numéro de téléphone lié au bot)?text=Vous%20avez%20été%20recommandé%20par%20#{phone}%20😌Bonjour, où :
Remplacez les parenthèses « (votre numéro de téléphone lié au bot) » par le numéro correspondant ;
#{phone} est automatiquement remplacé par le numéro de téléphone de l’utilisateur qui a demandé son lien partenaire.
Nous envoyons le lien généré non pas comme texte du bloc, mais comme une pièce jointe — un lien cliquable avec une notification (voir Fig. 2 et Fig. 3) :
choisissez d’insérer une pièce jointe
sélectionnez le type — Lien, et collez-le dans le champ « URL de la pièce jointe » :

Dans ce cas, le lien apparaîtra visuellement raccourci :
Testons la fonctionnalité du lien à l’aide de la fonction « Bot de test » .

Voici le résultat : le lien dirige l’utilisateur vers la conversation du messager appropriée avec votre numéro de téléphone :

Ainsi, vous avez généré avec succès un lien d’invitation que les utilisateurs potentiels peuvent utiliser pour accéder au chatbot. De plus, en cliquant sur ce lien, l’utilisateur est redirigé vers la fenêtre de discussion avec un message prérempli. (Voir Fig. 6)
Vérification de l’utilisateur
Utilisation de fonctions et d’expressions régulières dans un bloc
La commande de vérification et d’ajout à la base de données ne fonctionnera que si le bot trouve un numéro de téléphone dans le message de l’utilisateur. Il est donc nécessaire de découper la phrase reçue en parties.
Pour cela, la fonction splitter() est utilisée.
splitter(str, s, n) - découpe une chaîne en parties. La fonction renvoie un tableau d’éléments.
Paramètres :
! str - la chaîne originale
! s - le délimiteur de chaîne
n - le nombre maximal d’éléments
Fonction de découpage de chaîne :

Ensuite, le bot doit vérifier si la séquence de chiffres dans la chaîne est bien un numéro de téléphone. Pour cela, nous utilisons les expressions régulières suivantes :
Numéro de téléphone général :
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$Changer le numéro russe ! Numéro de téléphone russe uniquement :
^((\+7|7|8)+([0-9]){10})$

Pour en savoir plus sur l’utilisation des expressions régulières, veuillez consulter l’article intitulé « Expressions régulières ». lien
Après que le bot a vérifié que la séquence de chiffres est bien un numéro de téléphone, enregistrez-le depuis le message comme variable (par exemple, #{reff}).
Vérification du numéro de téléphone de l’utilisateur en tant que parrainage dans la base de données
Il est maintenant nécessaire de vérifier si le numéro de téléphone de l’utilisateur qui a suivi le lien est déjà un parrainage (précédemment invité par quelqu’un et enregistré dans notre base de données). Pour ce faire, créez un bloc dans le flux avec une fonction de recherche de colonne.
Utilisez la fonction de recherche de colonne en cliquant sur « Demande API » dans le bloc, où vous devez définir les valeurs des paramètres suivants :

! URL de la fonction: https://store.salebot.pro/function/findcell lien
! JSON paramètres de requête :
{ "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" }
Paramètres de réponse :
"status": "1" — valeur trouvée
"status": "0" — valeur non trouvée
"data" — la valeur trouvée
"cell_number" — l’emplacement de la cellule trouvée
Le paramètre return doit être défini sur 0. { "id": "your_table_id", "find": "text_to_search", "col": 2, "return": 0 } Réponse : {"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"}} Répartition de la réponse :
data — réponse
data|0 — Cellule 1
data|1 — Cellule 2
data|2 — Cellule 3
data|3 — Cellule 4
cell_number|row — ligne
cell_number|col — colonne
Pour en savoir plus sur les fonctions disponibles pour travailler avec les tableaux, consultez l’article intitulé « Google Sheets ». lien
Bloc de notification
Pour notifier l’utilisateur qui a partagé le lien de parrainage qu’un nouveau client l’a bien suivi, nous allons créer un bloc dédié. Pour envoyer une notification concernant la création d’un nouveau parrainage, utilisez les paramètres de requête suivants (type : POST - JSON):

Les requêtes sont envoyées en utilisant la POST méthode vers l’URL : https://chatter.salebot.pro/api/{api_key}/{action} Où :
api_keyest la clé d’accès API de votre projet, que vous pouvez obtenir dans les paramètres du projet (voir Fig. 11).

Vous pouvez récupérer la clé d’accès à l’aide de la variable #{api_key}, qui stocke le jeton d’accès généré actuellement. N’oubliez pas de générer le jeton avant de l’utiliser.
! URL de la requête : https://chatter.salebot.pro/api/#{api_key}/whatsapp_message lien

Vous pouvez trouver plus de détails sur les fonctions de requêtes API ici. lien
Ajout des utilisateurs invités et invitants à la base de données
Pour cela, nous utiliserons une saisie ligne par ligne dans des colonnes spécifiques, ce qui se fait à l’aide du mapping fonction.
Le tableau doit comporter un en-tête rempli (au moins une cellule dans la première ligne).
! URL de la fonction https://store.salebot.pro/function/gsheets lien
! JSON paramètres de requête :
{ "id": "your_table_id", "mapping": { "a": "#{variable}", "b": "#{another_variable}", "d": "plain text" } }
Si vous souhaitez écrire des lignes non pas sur la première feuille, ajoutez le paramètre list_name à la requête :
{ "id": "your_table_id", "mapping": { "a": "plain text", "b": "#{variable}" }, "list_name": "SheetName" }
Paramètres :
id — identifiant du tableau*
a, b, c, d — noms des colonnes
list_name — le nom de votre feuille (par ex., « Sheet2 »)
*Assurez-vous de le remplacer par l’ID réel de votre tableau.
Exemple de réponse : {"number_row":8}
Si la requête s’exécute avec succès, la réponse inclura le numéro de ligne, que vous pouvez enregistrer et utiliser pour d’autres opérations.
Affichage de la liste des parrainages
Ajoutons une commande supplémentaire au bot qui permet aux utilisateurs de voir leur liste de parrainages.
Pour trouver toutes les valeurs spécifiées dans une colonne, utilisez la findcell fonction avec le paramètre "find_all". Cela localisera toutes les occurrences de la "find_all" valeur dans la "col" colonne spécifiée et renverra une liste de valeurs uniques de la "return" colonne sous forme de chaîne.
! URL de la fonction : https://store.salebot.pro/function/findcell lien
! Paramètres de la requête JSON :
{ "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": "!" }

Dans les valeurs enregistrées, spécifiez :
list → Liste
quantity → Quantité
Pour l’utilisateur, affichez le message : "Vous avez parrainé #{spisok}, votre total de parrainages : #{quantity}"
Dans les autres messageries, la mise en œuvre d’un tel système de parrainage est encore plus simple car les données de l’invitant sont transmises en tant que paramètre caché lors de la transition du lien, de sorte que le nouvel utilisateur n’a pas besoin d’envoyer un message du type « J’ai été invité par ce numéro. »
Mis à jour