Travailler 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()
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 depuis l'éditeur.

days_from_last_message()
détermine le nombre de jours depuis le dernier message du client. Créé pour vérifier s'il se trouve dans la fenêtre de 24 heures.
Exemple :
d = days_from_last_message()
Si plus de 30 jours se sont écoulés depuis le dernier message du client, la fonction retournera la valeur 9999.
free***_***client()
annule l'attribution de l'opérateur responsable.
Exemple : free_client()
assign_to_user(email, only_active)
attribue un dialogue à un opérateur, où :
- email - un paramètre de chaîne (optionnel). Si seul l'email est fourni, un dialogue sera attribué à l'opérateur spécifié, quel que soit son statut actuel.
- only_active - True ou False (paramètre optionnel). Si défini sur True, un dialogue sera attribué à l'opérateur spécifié uniquement s'il est actuellement en service.
Exemples :
assign_to_user() - attribue un dialogue à un opérateur aléatoire actuellement en service
assign_to_user('email de l'opérateur') - attribue un dialogue à l'opérateur quel que soit son statut
assign_to_user('email de l'opérateur', True) - attribue un dialogue à l'opérateur spécifié uniquement s'il est actuellement en service
distribute_client()
attribue un dialogue à l'opérateur selon les paramètres de distribution automatique.
Exemple : distribute_client()
get_operator()
récupère l'email de l'opérateur responsable
Exemple : get_operator()
Il 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, il retournera None.
get_operator_name()
récupère le nom de l'opérateur responsable
Exemple : get_operator_name()
Il peut être utilisé pour afficher des informations à un client. S'il n'y a pas d'opérateur responsable, il retournera None. Si l'opérateur n'a pas de nom attribué, il retournera son email.
delete_pended_messages()
supprime tous les messages programmés pour le client actuel. Par défaut, il supprime également les messages créés par les flèches "Ne pas annuler". Pour conserver les messages des flèches "Ne pas annuler", passez le paramètre False : delete_pended_messages(False).
set_note(comment)
ajoute un commentaire à un dialogue.
Exemple : set_note('Refaire')
add_unread(count)
marque un dialogue avec un client comme non lu
Le paramètre count peut être omis ou défini sur 1 ; dans ce cas, le dialogue avec le client affichera un indicateur de +1 message non lu.


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

clear_unread()
marque un dialogue comme lu
unsubscribe()
Fonction pour 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.


Important !
Le calculateur est exécuté en premier, et ensuite 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 :
- D'abord, envoyez un bloc contenant le message final.
- Ensuite, envoyez un bloc vide contenant la fonction de désabonnement/blocage.
Si vous essayez de faire les deux dans un seul bloc, le message ne sera pas envoyé.

Si vous placez la fonction unsubscribe() 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 pour l'empêcher d'envoyer des messages au bot. Les messages précédemment programmés du bot seront également annulés. Cependant, il sera toujours possible d'envoyer un message au client directement depuis le dialogue dans la section "Clients"

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

unblock_client()
débloque le client. Le client pourra à nouveau interagir avec le bot et parcourir 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()
une fonction sans paramètre qui retourne un tableau des IDs des clients liés au client actuel.
get_current_pipline_id()
une fonction sans paramètre qui retourne l'ID de l'entonnoir dans lequel se trouve actuellement le client.
Si l'affaire du client est dans l'étape "non traitée", elle retourne None.
Travailler avec les tâches
Les fonctions qui travaillent avec les tâches retournent le statut de l'opération comme True ou l'ID de la tâche en cas de succès. En cas d'échec, elles retournent False ou None.
MaviBot utilise le format de date "jj.mm.aaaa" et le format d'heure "HH:MM".
create_task() | update_task() | done_task() | delete_task()
create_task(email, name, date_srok, description, time_srok) – crée une tâche
Paramètres :\ ! email - email 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\ ! email - email 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
Attribuer un utilisateur responsable
assign_order_to_user(email, order_id) — attribuer un utilisateur responsable à une affaire
-
email— email de l'employé à attribuer comme responsable. Obligatoire. -
order_id— ID de l'affaire à laquelle attribuer l'employé. S'il n'est pas spécifié, l'affaire actuelle est utilisée. Optionnel.
Obtenir l'email de l'utilisateur responsable
get_order_operator(order_id) — obtenir l'email de l'utilisateur responsable d'une affaire
-
order_id— ID de l'affaire pour laquelle récupérer l'utilisateur responsable. S'il n'est pas spécifié, l'affaire actuelle est utilisée. Optionnel.
Créons une tâche pour l'opérateur :

Mettre à jour la date d'échéance et la description.

Marquer la tâche comme terminée.

Suppression de tâche

task_id=create_task('[email protected]', 'Test', '22.01.2023', 'test task', '08:00') status=delete_task(task_id)
Travailler 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) |
Récupération de l'ID de l'affaire actuelle
get_order_id() - retourne 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 l'entonnoir, 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 - (optionnel), le nom de l'affaire. S'il n'est pas fourni, la fonction s'applique à l'affaire active actuelle du client.
! budget - (optionnel) la valeur de l'affaire. S'il n'est pas fourni, s'applique à l'affaire active actuelle.
Si budget n'est pas un nombre, la fonction retournera : le budget doit être un nombre
description - (optionnel), la description de l'affaire.
Paramètres supplémentaires pour la création du client :
client_name - (optionnel) chaîne, nom d'un nouveau client
phone - (optionnel) chaîne, numéro de téléphone d'un nouveau client.
email - (optionnel) chaîne, adresse email d'un nouveau client.
Pour créer un client, au moins le téléphone ou l'email doit être fourni. Si le téléphone est fourni et qu'aucun client avec ce téléphone n'existe dans le projet, un nouveau sera créé.
Si l'email est fourni sans téléphone et qu'aucun client avec cet email n'existe, un nouveau sera créé.
Paramètre supplémentaire :
state_id - nombre, permet de définir l'état initial de l'affaire lors de la 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 - (optionnel) 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 - (optionnel) ID de l'affaire. S'il n'est pas fourni, s'applique à l'affaire active actuelle du client.
Pour utiliser correctement order_id :
- Vous pouvez le spécifier manuellement — obtenez l'ID de l'affaire et passez-le comme paramètre de la fonction si vous souhaitez cibler une affaire spécifique.


- Récupérez-le en utilisant la fonction get_order_id(), car la variable intégrée order_id retourne la valeur au format {client_id}-{order_id}, ce qui peut provoquer 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 une liste des IDs des affaires réussies
get_success_orders_ids()
Obtenir une liste des IDs 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 d'une affaire
get_order_vars(order_id, names)
Paramètres :
! order_id - ID de l'affaire
names - un tableau des noms de variables à récupérer. S'il est omis, la fonction retourne toutes les variables pour l'affaire spécifiée
La fonction retourne un dictionnaire contenant les variables listées dans le tableau names pour l'affaire identifiée par order_id. Si names n'est pas fourni, elle retourne 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
Si vous souhaitez modifier les paramètres "name" ou "description" de l'affaire, utilisez respectivement les noms de variables "name" ou "description".
! 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 de l'entonnoir
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.
L'ordre des états de l'affaire est défini selon la séquence définie dans MavibotCRM.
Récupération de l'étape de l'entonnoir dans MavibotCRM
get_state_id(client_id, order_id)
Vous pouvez également copier l'ID de l'état de l'entonnoir directement 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 paramètre order_id. Si order_id est omis, la fonction retournera l'ID de l'état de l'entonnoir pour l'affaire active actuelle.
Pour une utilisation correcte de order_id :
- 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 spécifique.
- Récupérez-le en utilisant la fonction get_order_id(), car la variable intégrée order_id retourne une valeur au format {client_id}-{order_id}, ce qui peut provoquer un comportement incorrect.
Déplacement d'un lead dans l'entonnoir MavibotCRM par ID d'état
change_state(state_id, order_id)
Paramètres :\ ! state_id - ID de l'état de l'entonnoir
order_id ( optionnel) - l'ID de l'affaire à déplacer dans l'entonnoir. S'il est omis, l'affaire active actuelle sera déplacée.
Obtenir l'ID de l'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 ;
client_id - (optionnel) ID de l'affaire du client ; par défaut, l'ID du client dans le bot
Obtenir la date et l'heure de la dernière affaire
latest_order_datetime(client_id, dt_fmt)
Paramètres :
client_id - (optionnel) l'ID de l'affaire du client ; par défaut, l'ID du client dans le bot ;
df_fmt - (optionnel) format pour la date et l'heure retournées ; par défaut "%d.%m.%y %H:%M"
Obtenir le nombre d'affaires du client
count_client_orders(client_id, state_id, get_all, active)
Paramètres :
client_id - (optionnel) l'ID de l'affaire du client ; par défaut, l'ID du client dans le bot ;
state_id - (optionnel) l'ID de l'état de l'affaire dans l'entonnoir ;
get_all - (optionnel) indicateur de filtre pour le paramètre active ; par défaut 1 (le filtrage par active est désactivé) ;
active - utilisé uniquement lorsque get_all est 0 ; filtre les affaires actives ; par défaut 1 (retourne uniquement les affaires actives) ;
Obtenir le nombre d'affaires dans un état d'affaire spécifique
get_count_orders(id) - retourne le nombre d'affaires actuellement dans un état d'entonnoir spécifique par 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 entrer la fonction dans le calculateur comme suit :

Lors du test du bot, la réponse du bot consistera en le nombre d'affaires dans l'état spécifié par la valeur passée à la fonction.
Suppression d'une affaire
delete_order(order_id) — supprime une affaire dans MaviBotCRM.
order_id - (optionnel) l'ID de l'affaire à supprimer. S'il est omis, l'affaire la plus récente sera supprimée.
Toutes les fonctions sont simples à utiliser.
Par exemple, créons une nouvelle affaire et envoyons son numéro au client :


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




Définition d'un tag d'affaire réussie
set_order_status_success()
Description
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()
Description
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()
Description
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.
Exemples
/*Archiver l'affaire active actuelle*/
res_arh = set_order_status_archive()


