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ù :

  1. 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.
  2. 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 :

  1. D'abord, envoyez un bloc contenant le message final.
  2. 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 :

  1. 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.

  1. 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 :

  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 spécifique.
  2. 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()