Travail avec les clients et le CRM

Travail avec les clients

LÉGENDE :

was_in_state() | days_from_last_message() | free_client() | assign_to_user() | distribute_client()| get_operator() | get_operator_name() | delete_pended_messages() | set_note() | add_unread() | clear_unread() | unsubscribe()|block_client() | unblock_client() | set_client_name() | get_bind_clients() | get_current_pipline_id()

chevron-rightDescriptionhashtag

was_in_state(message_id) vérifie si un client se trouvait dans l’état sélectionné (bloc). Vous pouvez obtenir le numéro du bloc dans l’éditeur.

La ligne supérieure de l’éditeur de bloc affiche le numéro du bloc.

days_from_last_message() détermine le nombre de jours écoulés depuis le dernier message du client. Créée pour vérifier si cela se situe dans la fenêtre de 24 heures.

Exemple : d = days_from_last_message()

circle-info

Si plus de 30 jours se sont écoulés depuis le dernier message du client, la fonction renverra la valeur 9999.

libérer_client() désaffecte l’opérateur responsable.\r Exemple : free_client()

assign_to_user(email, only_active) attribue une discussion à un opérateur, où :

  1. email - paramètre chaîne de caractères (facultatif). Si seul l’e-mail est fourni, la discussion sera attribuée à l’opérateur spécifié quel que soit son statut actuel.

  2. only_active - Vrai ou Faux (paramètre facultatif). Si défini sur Vrai, une discussion sera attribuée à l’opérateur spécifié uniquement s’il est actuellement en service.

Exemples :

assign_to_user() - attribue une discussion à un opérateur aléatoire actuellement en service

assign_to_user('email de l’opérateur') - attribue une discussion à l’opérateur quel que soit son statut

assign_to_user('email de l’opérateur', True) - attribue une discussion à l’opérateur spécifié uniquement s’il est actuellement en service

distribute_client() attribue une discussion à l’opérateur selon les paramètres de répartition automatique. \nExemple : distribute_client()

get_operator()\n récupère l’e-mail de l’opérateur responsable

Exemple : get_operator()

Peut être utilisé pour attribuer des tâches à un opérateur responsable ou pour vérifier s’il existe. S’il n’y a pas d’opérateur responsable, la fonction renverra None.

get_operator_name()\n récupère le nom de l’opérateur responsable

Exemple : get_operator_name()

Peut être utilisé pour afficher des informations au client. S’il n’y a pas d’opérateur responsable, la fonction renverra None. Si l’opérateur n’a pas de nom attribué, son e-mail sera renvoyé.

delete_pended_messages() supprime tous les messages programmés pour le client actuel. Par défaut, cela supprime aussi les messages créés par les « Ne pas annuler » flèches. Pour conserver les messages des « Ne pas annuler » flèches, passez le paramètre False : delete_pended_messages(False).

set_note(comment) ajoute un commentaire à une discussion.

Exemple : set_note('Refaire')

add_unread(count) marque une discussion avec un client comme non lue

Le paramètre count peut être omis ou défini sur 1 ; dans ce cas, la discussion avec le client affichera un indicateur de +1 message non lu.

Si tout autre nombre est passé, il sera affiché dans la « Clients » section comme le nombre de messages non lus d’un client.

clear_unread() marque une discussion comme lue

unsubscribe() Fonction permettant de se désabonner des messages du bot. Un exemple est fourni dans cet article. Pour le client désabonné, un symbole apparaîtra — un message rouge avec une croix.

circle-info

Important !

Le Le calculateur est exécuté en premier, puis seulement le message est envoyé.

Par conséquent, si vous devez envoyer un message final comme « Vous avez été désabonné du bot » ou « Vous avez été bloqué », vous devez utiliser un processus en deux étapes :

  1. Tout d’abord, envoyez un bloc contenant le message final.

  2. Ensuite, envoyez un bloc vide contenant la fonction de désabonnement/de blocage.

Si vous essayez de faire les deux dans un seul bloc, le message ne sera pas envoyé.

Si vous placez la unsubscribe() fonction dans le calculateur du même bloc que votre message, le message ne sera pas envoyé, et le système affichera une erreur.

block_client() bloque un client afin qu’il ne puisse plus envoyer de messages au bot. Les messages du bot déjà programmés seront également annulés. Cependant, il restera possible d’écrire directement au client depuis la discussion dans la « Clients » section

Un client bloqué aura un marqueur — une icône de cadenas rouge.

unblock_client() débloque le client. Le client pourra à nouveau interagir avec le bot et suivre les chaînes de messages.

set_client_name(name) modifie le nom du client. Passez le nom du client sous forme de chaîne entre guillemets doubles. Vous pouvez également utiliser une variable contenant le nom du client, par exemple : set_client_name("John Smith")

get_bind_clients() fonction sans paramètre qui renvoie un tableau des identifiants des clients liés au client actuel.

get_current_pipline_id() fonction sans paramètre qui renvoie l’ID du tunnel dans lequel se trouve actuellement le client.

Si l’affaire du client se trouve à l’étape « non traitée », la fonction renvoie None.

Travail avec les tâches

circle-check
circle-info

MaviBot utilise le format de date "jj.mm.aaaa" et le format d’heure "HH:MM".

create_task() | update_task() | done_task() | delete_task()

chevron-rightDescriptionhashtag

create_task(email, name, date_srok, description, time_srok) – crée une tâche

Paramètres : ! e-mail - e-mail de la personne responsable ! name - nom de la tâche ! date_srok - date d’échéance, date ! description - description de la tâche time_srok - heure d’échéance, heure

update_task(task_id,email, name, date_srok, description, time_srok) - met à jour une tâche

Paramètres : ! task_id- ID de la tâche ! e-mail - e-mail de la personne responsable ! name - nom de la tâche ! date_srok - date d’échéance, date ! description - description de la tâche time_srok - heure d’échéance, heure

done_task(task_id)- marque une tâche comme terminée

Paramètres : ! task_id- ID de la tâche

delete_task(task_id) – supprime une tâche

Paramètres : ! task_id- ID de la tâche

chevron-rightExempleshashtag

Créons une tâche pour l’opérateur :

Mettez à jour la date d’échéance et la description.

Mise à jour de la tâche

Marquer la tâche comme terminée.

Marquage de la tâche comme terminée

Suppression de la tâche

chevron-rightExemple de code à copierhashtag

task_id=create_task('[email protected]', 'Test', '22.01.2023', 'tâche de test', '08:00') status=delete_task(task_id)

Travail avec les affaires

get_order_id() | create_order() | set_order_name() | set_order_budget() | get_active_orders_ids() | get_success_orders_ids() | get_fail_orders_ids() | get_order_var() | get_order_vars() | set_order_var() | set_order_vars() | move_order_to_next_state() | set_order_status_success() | set_order_status_fail(order_id)| get_state_id() | change_state() | get_order_id_by_var_value() | latest_order_datetime() | count_client_orders(), get_count_orders() | delete_order(order_id)

chevron-rightDescriptionhashtag

Récupération de l’ID de l’affaire en cours

get_order_id() - renvoie l’état de l’affaire.

Création d’une nouvelle affaire

create_order(name, budget, description, client_name, phone, email, state_id) L’affaire actuellement active dans le pipeline, ainsi que ses variables, ne seront disponibles que dans les fonctions liées aux affaires et dans le CRM. Paramètres de la fonction : ! name - (facultatif), le nom de l’affaire. S’il n’est pas fourni, la fonction s’applique à l’affaire active actuelle du client.

! budget - (facultatif) la valeur de l’affaire. Si elle n’est pas fournie, s’applique à l’affaire active actuelle.\nSi budget n’est pas un nombre, la fonction renverra : le budget doit être un nombre

description - (facultatif), la description de l’affaire.

Paramètres supplémentaires pour la création du client :

client_name - (facultatif) chaîne, nom d’un nouveau client

phone - (facultatif) chaîne, numéro de téléphone d’un nouveau client.

e-mail - (facultatif) chaîne, adresse e-mail d’un nouveau client.

Pour créer un client, il faut fournir au moins un téléphone ou un e-mail. Si un téléphone est fourni et qu’aucun client avec ce numéro n’existe dans le projet, un nouveau client sera créé.

Si un e-mail est fourni sans téléphone et qu’aucun client avec cet e-mail n’existe, un nouveau client sera créé.

Paramètre supplémentaire :

state_id - nombre, permet de définir l’état initial de l’affaire lors de sa création

Définir ou mettre à jour le nom de l’affaire

set_order_name(name, order_id)

name - ❗obligatoire, chaîne ; le nom de l’affaire

order_id - (facultatif) ID de l’affaire. S’il n’est pas fourni, la modification s’applique à l’affaire active actuelle du client.

Définir ou mettre à jour le budget de l’affaire

set_order_budget(budget, order_id)

budget -❗obligatoire, nombre ; la valeur de l’affaire

order_id - (facultatif) ID de l’affaire. S’il n’est pas fourni, s’applique à l’affaire active actuelle du client.

Pour utiliser order_id correctement :

  1. Vous pouvez le spécifier manuellement — récupérez l’ID de l’affaire et passez-le en paramètre de la fonction si vous souhaitez cibler une affaire précise.

  1. Récupérez-le à l’aide de la fonction get_order_id(), car la variable intégrée order_id renvoie la valeur au format {client_id}-{order_id}, ce qui peut entraîner un comportement incorrect.

Récupération des listes d’affaires ((à l’exclusion des affaires archivées, réussies ou échouées))

get_active_orders_ids()

Obtenir la liste des ID des affaires réussies

get_success_orders_ids()

Obtenir la liste des ID des affaires échouées

get_fail_orders_ids()

Récupération de la valeur d’une variable d’affaire

get_order_var(order_id, variable)

Paramètres :

! order_id - ID de l’affaire

! variable - nom de la variable dont vous souhaitez récupérer la valeur

Récupération des données de l’affaire

get_order_vars(order_id, names)

Paramètres :

! order_id - ID de l’affaire

names - un tableau de noms de variables à récupérer. S’il est omis, la fonction renvoie toutes les variables de l’affaire spécifiée

La fonction renvoie un dictionnaire contenant les variables répertoriées dans le names tableau pour l’affaire identifiée par order_id. Si names n’est pas fourni, elle renvoie un dictionnaire avec toutes les variables de l’affaire spécifiée.

Ajout d’une variable d’affaire

set_order_var(order_id, variable, value)

Paramètres :

! order_id - ID de l’affaire

! variable - le nom de la variable à ajouter ou mettre à jour dans une affaire

circle-exclamation

! value - valeur de la variable

Ajout de plusieurs variables d’affaire

set_order_vars(order_id, variables_dict)

Paramètres :

! order_id - ID de l’affaire.

! variables_dict - un dictionnaire de variables

Passage à l’état suivant du tunnel

move_order_to_next_state(order_id)

Paramètres : order_id - ID de l’affaire. S’il n’est pas spécifié, l’affaire active actuelle sera déplacée.\nL’ordre des états d’affaire est défini selon la séquence configurée dans MavibotCRM.

Récupération de l’étape du tunnel dans MavibotCRM

get_state_id(client_id, order_id) Vous pouvez également copier directement l’ID de l’état du pipeline depuis les « Paramètres d’état ».

Paramètres :

order_id - ID de l’affaire du client

Vous pouvez appeler la fonction avec ou sans le order_id paramètre. Si order_id est omis, la fonction renverra l’ID de l’état du pipeline pour l’affaire active actuelle.

Pour utiliser correctement order_id :

  1. Vous pouvez le spécifier manuellement en obtenant l’ID de l’affaire et en le passant comme paramètre de la fonction lorsque vous souhaitez cibler une affaire précise.

  2. Récupérez-le à l’aide de la fonction get_order_id(), car la variable intégrée order_id renvoie une valeur au format {client_id}-{order_id}, ce qui peut provoquer un comportement incorrect.

Déplacement d’un lead dans le tunnel MavibotCRM par ID d’état

change_state(state_id, order_id)

Paramètres : ! state_id - ID de l’état du tunnel order_id ( facultatif) - l’ID de l’affaire à déplacer dans le pipeline. S’il est omis, l’affaire active actuelle sera déplacée.

Obtention de l’ID d’une affaire par nom et valeur de variable

get_order_id_by_var_value(var_name, var_value, client_id)

Paramètres : ! var_name - nom de la variable ! var_value - valeur de la variable ;\nclient_id - (facultatif) ID de l’affaire du client ; par défaut, l’ID du client dans le bot

Obtention de la date et de l’heure de la dernière affaire

latest_order_datetime(client_id, dt_fmt)

Paramètres :\nclient_id - (facultatif) l’ID de l’affaire du client ; par défaut, l’ID du client dans le bot ;\ndf_fmt - (facultatif) format pour la date et l’heure renvoyées ; la valeur par défaut est "%d.%m.%y %H:%M"

Obtention du nombre d’affaires du client

count_client_orders(client_id, state_id, get_all, active)

Paramètres :\nclient_id - (facultatif) l’ID de l’affaire du client ; par défaut, l’ID du client dans le bot ;\nstate_id - (facultatif) l’ID de l’état de l’affaire dans le pipeline ;\nget_all - (facultatif) indicateur de filtre pour le paramètre active ; la valeur par défaut est 1 (le filtrage par actif est désactivé) ;\nactive - utilisé uniquement lorsque get_all est 0 ; filtre les affaires actives ; la valeur par défaut est 1 (ne renvoie que les affaires actives) ;

Obtenir le nombre d’affaires dans un état d’affaire spécifique

get_count_orders(id) - renvoie le nombre d’affaires actuellement dans un état de pipeline spécifique selon l’ID d’état.

La fonction prend un seul paramètre :

! id - l’ID de l’état de l’affaire.

Exemple d’utilisation de la fonction :

L’ID de l’étape peut être trouvé dans les paramètres.

Ensuite, vous devez saisir la fonction dans le calculateur comme suit :

Lors des tests du bot, la réponse du bot consistera en le nombre d’affaires dans l’état spécifié par la valeur transmise à la fonction.

Suppression d’une affaire

delete_order(order_id) — supprime une affaire dans MaviBotCRM.

order_id - (facultatif) l’ID de l’affaire à supprimer. S’il est omis, l’affaire la plus récente sera supprimée.

chevron-rightExempleshashtag

Toutes les fonctions sont simples à utiliser.\r\nPar exemple, créons une nouvelle affaire et envoyons son numéro au client :

Enregistrement de la demande du client

Vous pouvez obtenir l’ID de l’affaire active actuelle du client à l’aide de la fonction get_order_id(), ou récupérer la liste complète des affaires du client à l’aide de get_active_orders_ids().

Récupération de l’ID de l’affaire active actuelle
Récupération de la liste des affaires actives
chevron-rightExemple de code à copierhashtag

Définition d’un tag d’affaire réussie

set_order_status_success()

set_order_status_success(order_id)

Paramètres :

order_id - l’ID de l’affaire. Si le paramètre n’est pas spécifié, le tag sera défini pour l’affaire active actuelle.

Définition d’un tag d’affaire échouée

set_order_status_fail()

set_order_status_fail(order_id)

Paramètres :

order_id - l’ID de l’affaire. Si le paramètre n’est pas spécifié, le tag sera défini pour l’affaire active actuelle.

Définition d’un tag d’affaire archivée

set_order_status_archive()

set_order_status_archive(order_id)

Paramètres :

order_id - l’ID de l’affaire. Si le paramètre n’est pas spécifié, le tag sera défini pour l’affaire active actuelle.

Mis à jour