Les transactions dans le CRM sont affichées sous forme de fiches contenant des informations sur le client, le nom de la transaction, sa description et son montant.

Vous pouvez ajouter d'autres champs si nécessaire (voir fig. 8-12).

Bouton "Créer une transaction"

La fenêtre Créer une transaction vous permet de configurer et d'enregistrer rapidement une nouvelle transaction.

Remplissez le formulaire pour créer un client. Si le client existe, MaviBot vous proposera de le sélectionner dans la base de données.

  1. Si le client n'est pas trouvé, connectez un bot WhatsApp ou email au projet.
  2. Envoyez un message au client via le canal connecté — cela créera automatiquement son profil.
  3. Sélectionnez l'étape du tunnel où la transaction doit être placée.

Des variables de transaction peuvent également être ajoutées dans le formulaire modal :

Ensuite, cliquez sur "Créer" pour ajouter la transaction au système.

Bouton "Ajouter rapidement"

Ce bouton peut également aider à ajouter manuellement un nouveau client dans le CRM.

Cliquez sur le bouton pour ouvrir une fenêtre où vous pouvez saisir les détails du client.

Fig. 26 Fenêtre de création rapide de transaction (Remarque : Toutes les données sont fictives ; toute ressemblance est purement fortuite.)

Ainsi, la transaction sera créée dans l'étape "Intéressé".

Fait !​

Vous savez maintenant comment créer des transactions.

Comment créer une transaction depuis le chatbot

Exemple de flux de chatbot pour créer une transaction via une fonction

Aperçu du processus :

  1. Créez un bloc Départ

  1. Créez deux blocs de boutons.

  1. Allez dans les paramètres de connexion, activez l'option "L'utilisateur saisit des données" et spécifiez le nom du service que l'utilisateur va saisir.

  1. Ensuite, ajoutez la question "Quel est votre nom ?" dans un bloc blanc. Créez un nouveau bloc en dessous et activez "L'utilisateur saisit des données" dans ses paramètres de flèche.

Le paramètre "L'utilisateur saisit des données" avec la variable name est activé dans chaque connexion menant au bloc "Entrez votre numéro de téléphone".

  1. Maintenant, créez deux blocs — "Chat" et "Fallback" — à partir du bloc "Entrez votre numéro de téléphone".

  1. Sélectionnez le type "RegEx math" dans les paramètres de connexion.
  2. Activez le paramètre "L'utilisateur saisit des données".
  3. Saisissez le nom de la variable : phone.

Maintenant, dans le bloc Fallback, écrivez le message : "Ceci est incorrect ! Réessayez."

Cette configuration fonctionnera comme suit : si votre client saisit un numéro de téléphone incorrect, il recevra le message du bloc Fallback. Le message Fallback continuera à être envoyé jusqu'à ce que le client saisisse un numéro de téléphone correct.

  1. Ensuite, demandez au client son budget et créez immédiatement un nouveau bloc en dessous.

  1. Activez le paramètre "L'utilisateur saisit des données" dans la connexion et saisissez le nom de la variable : budget.

Activez la case à cocher "L'utilisateur saisit des données" sur la connexion et spécifiez la variable téléphone client_name.

  1. Vous pouvez soit changer le type du dernier bloc en "Leads", soit utiliser la fonction create_order.

    Voici l'option avec le bloc rouge "Leads".

Exemple.

La fonction create_order(name, budget, description, client_name, phone, email, state_id) est utilisée pour créer une transaction depuis le chatbot dans le CRM.

La transaction active actuelle dans le tunnel, ainsi que les variables, ne seront disponibles que dans les fonctions de gestion des transactions et du CRM.

Pour créer un client, la variable téléphone ou email doit être spécifiée. Si le téléphone est spécifié et qu'il n'y a pas de client avec ce téléphone dans le projet, un nouveau sera créé.

Si la variable email est spécifiée sans la variable téléphone, et qu'il n'y a pas de client dans le projet avec cette adresse, un nouveau sera créé.

Dans le flux, nous avons collecté les données suivantes par étapes :

  • Name - nom de la transaction (dans l'exemple, j'ai besoin d'un site web & j'ai besoin d'une landing page) ;
  • Budget — coût de la transaction, qui a été annoncé dans les blocs après que le client a sélectionné le type de site web ;
  • Phone — le numéro de téléphone du client
  • Client_name — le nom du client

Si vous devez créer une transaction dans un état de transaction spécifique, transmettez le paramètre state_id.

Important !​

Si vous ne transmettez aucun paramètre, transmettez none à la place du paramètre (comme dans la Fig. 36, où none est spécifié à la place du paramètre email).

Où trouver l'identifiant de l'état (paramètre state_id)

ID de l'étape :

Autres paramètres

La barre de recherche permet de rechercher une transaction par le nom du client.

Filtre : permet de filtrer les transactions avec divers paramètres. Vous pouvez également enregistrer le filtre créé si vous l'utilisez fréquemment.

Comment déclencher un bot lorsqu'une transaction passe à une nouvelle étape du tunnel

Pour déclencher un bot lors d'un changement d'étape d'une transaction dans le tunnel CRM :

  1. Allez dans les paramètres du projet.
  2. Ouvrez la section "Callbacks".

Cliquez sur "Paramètres de callback de transition d'étape CRM" :

Après cela, vous verrez une fenêtre modale avec tous les tunnels du projet. Vous pouvez choisir soit le tunnel entier, soit une étape spécifique.

Ensuite, enregistrez les paramètres.​

Maintenant, lorsque l'état de la transaction change — automatiquement ou manuellement — une notification est générée depuis n'importe où sur le site, qui peut être utilisée pour déclencher une réponse du bot.

La notification ressemble à ceci : crm_state_changed Nom du tunnel:Nom de l'étape

La variable callback_query_id apparaîtra également dans la fiche du client, stockant l'identifiant de la transaction pour laquelle la notification a été envoyée.

Pour déclencher votre bot en réponse à cet événement, saisissez le texte du callback dans le champ de déclencheur d'une connexion ou d'un bloc basé sur un déclencheur (comme un bloc Départ ou Déclencheur).

Si vous souhaitez garder le client dans le flux principal du chatbot, utilisez le bloc "Chat". Ce bloc ne peut pas être transitionné, donc après avoir réagi au callback, le client reste dans le tunnel principal tout en recevant le message.

Si vous devez continuer le tunnel après un changement d'état, utilisez le bloc "Départ". Le client sera redirigé vers le bloc "Départ" en réponse au callback, permettant au tunnel de continuer à partir de là.

Comment déplacer une transaction

Pour déplacer une transaction vers n'importe quelle étape du tunnel, cliquez simplement dessus et faites-la glisser avec le bouton gauche de la souris vers l'étape souhaitée.

Lorsqu'une transaction est déplacée vers "Échoué" ou "Archivé", une fenêtre modale apparaît vous invitant à spécifier la raison. Cette action crée une variable de transaction correspondante : failed_reason ou archived_reason.
La raison fournie est enregistrée dans la variable respective. Si la transaction est ensuite restaurée, la variable restored_from_failed ou restored_from_archived est ajoutée avec la valeur "true".

Comment empêcher le déplacement d'une transaction vers l'étape spécifiée

Si vous devez restreindre les étapes vers lesquelles les transactions peuvent être déplacées manuellement, configurez la restriction dans les paramètres de l'état.

Ouvrez le tunnel et allez dans les paramètres de l'étape.

Utilisez les paramètres de l'étape pour restreindre le déplacement des transactions vers des étapes spécifiques. Sélectionnez les étapes souhaitées dans la liste de contrôle (sélections multiples autorisées) et enregistrez les modifications.

Après l'enregistrement, les étapes restreintes seront visuellement mises en évidence dans MaviBot CRM. Elles apparaîtront plus sombres et le déplacement des transactions vers celles-ci sera désactivé. Si des restrictions de déplacement d'étape sont appliquées, ces étapes seront également masquées dans l'interface de chat client.

Réaction à la suppression d'une transaction dans le CRM

Lorsqu'une transaction est supprimée dans le CRM, le bot reçoit un callback nommé crm_lead_removed pour notifier le client.

Comment basculer entre les transactions

Lorsque des actions sont effectuées sur des transactions directement dans la page CRM, les callbacks suivants sont déclenchés :

  • change_responsible_order — le responsable attribué à la transaction a changé.
  • crm_state_changed — la transaction a été déplacée vers une étape différente du tunnel.
  • crm_system_state_changed — la transaction a été déplacée vers Perdu, Gagné ou Archivé.
  • crm_lead_removed — la transaction a été supprimée.

De plus, les variables du client incluront callback_order_id, qui contient l'ID de la transaction spécifique affectée par l'action CRM.

Lors du traitement de l'un de ces callbacks, la transaction correspondante devient temporairement active dans le bloc de traitement, vous permettant d'accéder directement à ses variables.

Une fois que le flux passe au bloc suivant, la logique standard de MaviBot reprend — tout accès ultérieur aux variables de transaction renverra les valeurs de la transaction active la plus récente du client.

Comment basculer une transaction vers une étape active dans le bot

La fonction switch_order(order_id) vous permet de rendre une transaction spécifique active afin d'accéder à ses variables.

  • order_id — un paramètre optionnel pour l'ID de transaction spécifique. S'il est omis, la transaction la plus récente du client devient active.
  • Pour activer une transaction particulière, transmettez son ID à la fonction switch_order(order_id).
  • Si vous appelez cette fonction dans un bloc de calcul et fournissez un ID de transaction cible, vous pourrez accéder aux variables de cette transaction dans tous les blocs suivants.

Si la fonction switch_order est appelée avec l'ID d'une transaction supprimée ou inexistante, aucun basculement n'aura lieu. Dans ce cas, la fonction renverra l'ID de la transaction actuellement active pour le client (ou None si le client n'a pas de transaction active).

Vous pouvez donc vérifier si le basculement a réussi en comparant l'order_id transmis à la fonction avec la valeur qu'elle renvoie :

switch_result = switch_order(order_id)

result = if(switch_result == order_id, value_if_true, value_if_false)

Si aucun argument n'est transmis à la fonction switch_order(), elle activera la transaction la plus récente du client. Cela vous permet de revenir en arrière ou de réinitialiser la transaction active — par exemple, après avoir effectué des opérations avec une autre transaction, ou lorsque vous n'avez pas besoin de conserver une transaction temporairement activée par un callback CRM.