# Constructeur d’API

Certaines fonctions de requête API peuvent être exécutées dans le Calculateur.

Les requêtes sont envoyées via la **POST** ou **GET** méthode vers une URL au format suivant :

**<https://chatter.mavibot.ai/api/{api\\_key}/{action}>**

Où :

**api\_key** — la clé d’accès API générée dans les paramètres du projet.

<figure><img src="/files/124e34b5c0c9e486f09df77f063719f187659e3f" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Pour utiliser le jeton dans une requête URL, vous devez d’abord générer une clé API.

Les instructions pour cela sont fournies dans la section « Génération d’une clé API ». <mark style="color:red;">**lien**</mark>
{% endhint %}

{% hint style="danger" %}
Lors de la copie d’une URL depuis cette page, un espace peut apparaître et doit être supprimé.

Exemple de lien incorrect :&#x20;<https://chatter.mavibot.pro> /api/callback

Si l’espace après .pro subsiste, la requête ne fonctionnera pas.
{% endhint %}

{% hint style="warning" %}
N’utilisez pas de caractères interdits lors de l’envoi d’une requête GET.

Assurez-vous de bien comprendre le format correct des requêtes GET.
{% endhint %}

## **Comment générer une clé API**

{% hint style="success" %}
L’ancienne fonctionnalité de génération de clé API fonctionne toujours comme avant, mais elle n’est pas disponible pour les nouveaux projets.

Si votre projet possède déjà des clés API générées sans les paramètres d’accès décrits dans cette section, ces clés API existantes continueront de fonctionner normalement.

Si vous devez générer de nouvelles clés, utilisez les paramètres mis à jour.
{% endhint %}

Pour générer une clé API, allez dans les paramètres du projet :

<figure><img src="/files/c027594505abb3b888bc249c32bc3238a3b6ed27" alt="" width="301"><figcaption></figcaption></figure>

Ensuite, allez dans la section « Intégrations » :

<figure><img src="/files/08dbd1c0ac0375936de0b49c8bcb2059c92adb2f" alt="" width="563"><figcaption></figcaption></figure>

Vous trouverez le bouton « Ajouter une clé API » dans la section « Intégrations » :

<figure><img src="/files/0285b6b63e2c1d10c5f6dd20cf28ff718db16e60" alt=""><figcaption></figcaption></figure>

Après avoir cliqué sur le bouton, une fenêtre modale s’ouvrira avec les paramètres d’accès et les options de génération de clé API :

<figure><img src="/files/02fb5df91576e54792d10b503fe037eead95c418" alt=""><figcaption></figcaption></figure>

Ensuite, vous devez sélectionner les autorisations d’accès pour la clé API :

<figure><img src="/files/36731b5ec24ec747371a730524ba6228dcd5d96a" alt=""><figcaption></figcaption></figure>

La fonction API fonctionnera selon les autorisations d’accès que vous sélectionnez.

{% hint style="warning" %}
Veuillez noter !

La fonction API dépend des autorisations d’accès que vous définissez : si vous générez une clé API avec un accès en lecture seule aux informations du client, puis que vous l’utilisez pour envoyer un message à un client ou modifier ses variables, la requête API échouera.\
L’autorisation requise pour chaque requête API est indiquée dans la carte de requête API :

<img src="/files/2bf2898a72f82fc91ad3e28ecc23f1a54ec3f4af" alt="" data-size="original">
{% endhint %}

Ensuite, saisissez un nom pour la clé API :

<figure><img src="/files/5e4b2b9bad43782863453c6d5f078a613f4ccf4d" alt=""><figcaption></figcaption></figure>

Générez la clé API en cliquant sur le bouton « Générer » :

<figure><img src="/files/640ea9a597f4e821f4ccfa5f57a0d9e98dd63cf9" alt=""><figcaption></figcaption></figure>

Après cela, cliquez sur « Terminé » et la clé api sera ajoutée à la section :

<figure><img src="/files/e06583e9bf1b9e9174376903ce25c54d6f45b244" alt=""><figcaption></figcaption></figure>

Vous pouvez ajouter autant de clés API que nécessaire, en attribuant des autorisations d’accès différentes à chacune.

<figure><img src="/files/dabb205134d315f0b7f4a900f6aa68d1c47e3b5f" alt=""><figcaption></figcaption></figure>

Ensuite, vous devez définir une clé principale du projet. Cela vous permet d’utiliser la clé dans une URL de requête avec l’espace réservé #{api\_key}.

Pour ce faire, cliquez sur le bouton « {+} » à droite de la clé API souhaitée :

<figure><img src="/files/6baf0ed86bd8ab164bbefd252ee548e92eb4ef6b" alt=""><figcaption></figcaption></figure>

Un libellé apparaîtra alors à côté de la clé, indiquant qu’il s’agit de la clé principale du projet.

<figure><img src="/files/ce0f7fece38444d9f500ad3bfb8e756e5bd609d3" alt=""><figcaption></figcaption></figure>

Vous pouvez accéder à la clé principale du projet via api\_key : générez simplement la clé requise, définissez ses autorisations et désignez-la comme clé principale du projet. Ensuite, dans le Calculateur, utilisez l’URL de requête avec l’espace réservé #{api\_key}, qui contiendra la valeur de la clé principale du projet.

<figure><img src="/files/94f9671268874f58a5b4d4bb46076c38fe1fcf42" alt=""><figcaption><p>URL de la requête</p></figcaption></figure>

<figure><img src="/files/67eb57ecbe327560efa4fd46053c921bd88282fb" alt=""><figcaption></figcaption></figure>

Toute autre clé générée avec des paramètres d’accès sera considérée comme une clé secondaire. Dans l’URL de requête, vous pouvez utiliser sa valeur à la place de #{api\_key}. Pour ce faire, copiez la valeur de la clé secondaire :

<figure><img src="/files/2dd9e6743c7308e3a766c89db49bcb8f901ae841" alt=""><figcaption></figcaption></figure>

et collez-la dans l’URL de requête à la place de #{api\_key} :

<figure><img src="/files/a65d64b5a1325eb07bc36cf2f332d8d338adc4cd" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Une clé API générée avec l’ancienne méthode est définie par défaut comme clé principale du projet et dispose de toutes les autorisations.
{% endhint %}

{% hint style="danger" %}
Remarque !&#x20;

Si vous supprimez la clé définie comme clé principale du projet, vous devrez désigner manuellement une nouvelle clé comme principale.
{% endhint %}

{% hint style="success" %}
Veuillez noter !&#x20;

Si vous disposez de clés API générées avec l’ancienne méthode, elles continueront de fonctionner normalement. Il n’est pas possible de générer de nouvelles clés API de l’ancien type.
{% endhint %}

## Comment recevoir des messages à l’URL Webhook spécifiée dans les paramètres du projet

![Paramètres du projet](/files/42c368949597fbe6bb4c08591f26c1cd200cbc00)

Chaque message entrant ou sortant sera envoyé sous forme de requête JSON POST suivante :

```
{
    "id": "ID du message dans le système",
    "client": {
        "id": "ID du client dans le système",
        "recepient": "ID du client dans le messager",
        "client_type": "type de messager",
        "name": "nom du client",
        "avatar": "avatar du client",
        "created_at": "date de création du client",
        "tag": "clé d’abonnement",
        "group": "bot auquel le client est lié"
    },
    "message": "texte du message",
    "attachments": "tableau contenant des liens de fichiers ou des dictionnaires de liens de fichiers",
    "message_id": "ID du bloc depuis lequel le message a été envoyé",
    "project_id": "ID du projet",
    "is_input": "1 si le message provient du client, 0 s’il provient du bot",
    "delivered": "1 si le message a été envoyé avec succès, 0 s’il y a eu une erreur",
    "error_message": "texte de l’erreur de livraison du message"
}
```

Si une requête renvoie une erreur, elle ne sera pas réessayée. Même si le serveur renvoie des erreurs, les notifications continueront d’être envoyées.

### Comment créer une requête JSON

Accédez aux paramètres du bloc où les données seront enregistrées dans le tableau.&#x20;

<figure><img src="/files/38d47a42d3d426c99747a857646ec4a8e144d5cd" alt=""><figcaption></figcaption></figure>

1. Ajoutez une section Requête API.
2. Sélectionnez POST-JSON comme type de requête.
3. Ensuite, remplissez les champs de la requête :

<figure><img src="/files/384b5925f68ffafaa4988e26c8cbcf154ca37b43" alt=""><figcaption></figcaption></figure>

**URL de la requête** — le chemin vers la fonction à appeler. Dans la documentation, il est toujours affiché sur la première ligne à côté du type de requête :

<figure><img src="/files/8befc9478753d5dec5482db66421207f39bfd2d3" alt=""><figcaption></figcaption></figure>

**Valeurs enregistrées** — une liste de paramètres de réponse avec les noms de variables où les résultats doivent être stockés, au format suivant :

> **request\_parameter -> votre\_variable**
>
> Si la réponse contient des paramètres avec une structure complexe, analysez-les comme suit :
>
> * > "cell\_number":{"row":4,"col":2}\
>   > \
>   > \
>   > cell\_number|row ->String; \
>   > cell\_number|col -> Column<br>

**En-têtes de la requête** — à remplir si nécessaire. Cela inclut généralement le format des données et/ou le jeton d’accès.

**Paramètres JSON** — le corps de la requête, où vous spécifiez les paramètres de données au format JSON. Exemple :

**{"client\_id": "#{recipient\_id\_in\_builder}", "message":"Hello!"}**

Pour comprendre la structure de la réponse, écrivez #{custom\_answer} dans le champ Message afin d’afficher la valeur de la variable.<br>

<figure><img src="/files/007be496a044ccfc8af53076d57f3510d53699fb" alt=""><figcaption><p>Réception du résultat d’une requête API sous forme de message</p></figcaption></figure>

Ensuite, la documentation liste les paramètres autorisés dans la section « Body » :&#x20;

<figure><img src="/files/8e8bfb6a831b6c54214ba1a842644e37e76ead5d" alt="" width="551"><figcaption></figcaption></figure>

## Comment utiliser un webhook universel

Les méthodes listées peuvent maintenant être exécutées sous forme de requêtes POST ou GET.

* [callback](#zapusk-bota)
* [whatsapp\_callback](#zapusk-bota)
* [message](#otpravka-soobshenii)
* [whatsapp\_message](#otpravka-soobshenii)

Auparavant, nos méthodes avaient des paramètres fixes (comme **client\_id** et **fb\_id**) pour déclencher les actions des abonnés, ce qui imposait certaines limitations lors de l’intégration avec des services tiers.

Vous pouvez désormais spécifier quel paramètre de requête SaleBot doit utiliser pour trouver l’ID de l’utilisateur. Utilisez un paramètre avec le préfixe **value\_**, par exemple, **value\_user\_id** ou **value\_group\_id**.

De plus, la méthode d’envoi callback peut désormais être déclenchée à l’aide de l’e-mail du client (**client\_email**) ou du numéro de téléphone (**client\_phone**).

{% hint style="success" %}
Le **callback**, **fb\_callback**, et **whatsapp\_callback** Les méthodes ne sont pas liées à des noms de paramètres spécifiques. Vous pouvez préciser quel paramètre contient le numéro de téléphone, l’e-mail ou l’ID du client.
{% endhint %}

Ceci est utile lors de la configuration de la réception d’un webhook depuis un site web.

**Pour spécifier quelle variable contient client\_id**, utilisez le paramètre value\_client\_id et indiquez le nom du paramètre contenant cette valeur.

**Pour spécifier quelle variable contient le numéro de téléphone**, utilisez value\_phone.

**Pour spécifier quelle variable contient l’e-mail,** utilisez value\_email.

**Pour spécifier quelle variable contient user\_id**, utilisez value\_user\_id.

**Pour spécifier quelle variable contient group\_id**, utilisez value\_group\_id.

**Pour spécifier la variable contenant le message lui-même dans le webhook**, utilisez value\_message (transmis de la même manière que les autres paramètres).

Exemple :

Dans l’adresse, indiquez value\_client\_id = my\_client.

`https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback?value_client_id=my_client`\
`{"my_client":49177759, "message":"Hello world"}`

La requête sera équivalente à celle ci-dessous :

`https://chatter.mavibot.pro/api/d3f31dabef80ddeb73d43938b4ef8bb0/callback`\
`{"client_id":49177759, "message":"Hello world"}`

Comme vous pouvez le voir, le nom du paramètre contenant la valeur est précédé du préfixe **value\_**.

{% hint style="warning" %}
Veuillez noter !&#x20;

Certains événements génèrent des notifications système au sein du projet.

Par exemple, il existe des notifications système avec un champ message qui n’est pas vide, mais qui ne contient aucun texte client.

En même temps, le projet peut également générer des hooks de message avec un contenu spécifique, tel que « message: new\_chat\_member ».

Il est donc important de vérifier le contenu : il s’agira soit d’une notification système, soit d’un hook pour un événement spécifique.
{% endhint %}

## Comment démarrer le bot

### Démarrer le bot

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/callback</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/callback><br>

Cette méthode peut être utilisée pour déclencher un tunnel pour un client ou confirmer une action sur une ressource externe. Le client ne verra pas ce message.<br>

**Veuillez noter : tous les paramètres que vous transmettez en plus seront enregistrés dans la variable**

La méthode callback peut désormais aussi être déclenchée à l’aide de l’e-mail du client (client\_email) ou de son numéro de téléphone (client\_phone).

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier/supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

Chemin

clé api\* - jeton d’accès

Corps

client\_phone - numéro de téléphone utilisé pour rechercher le client

client\_email - e-mail utilisé pour rechercher le client

client\_id - ID du client dans le constructeur

message - texte du message

resume\_bot - True (paramètre facultatif). Si le bot est en pause, cela permet de le réactiver.&#x20;

Exemple : resume\_bot = True

time\_shift - nombre. Si spécifié, le message sera envoyé après le nombre donné de secondes à partir du moment actuel.

send\_time - date et heure au format "%Y-%m-%d %H:%M:%S" (par ex. "2024-10-16 13:15:59"). Cela définit la date et l’heure d’envoi du message. Si time\_shift et send\_time sont tous deux spécifiés, time\_shift sera prioritaire.

```
import requests
import json

params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.salebot.pro/api/{token}/callback'
requests.post(url, json=params)
```

</details>

### Démarrer le bot à l’aide d’un numéro WhatsApp

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/whatsapp_callback</summary>

URL de la requête : <https://chatter.mavibot.ai/api/\\>\<api\_key>/whatsapp\_callback

Cette méthode peut déclencher le bot WhatsApp après qu’un client s’est enregistré sur le site web ou a soumis une demande avec son numéro de téléphone.

**Veuillez noter : tous les paramètres que vous transmettez en plus seront enregistrés dans la variable**

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

Chemin

clé api\* - jeton d’accès

Corps

name - nom du client\
message - texte du message\
phone - numéro de téléphone du client\
bot\_id - ID du bot\
resume\_bot - True (paramètre facultatif). Si le bot est en pause, utilisez ceci pour le reprendre. Exemple : resume\_bot = True

time\_shift - nombre. Si spécifié, le message sera envoyé après le nombre donné de secondes à partir du moment actuel.

send\_time - date et heure au format "%Y-%m-%d %H:%M:%S" (par ex. "2024-10-16 13:15:59"). Cela définit la date et l’heure d’envoi du message. Si time\_shift et send\_time sont tous deux spécifiés, time\_shift sera prioritaire.

</details>

### Démarrer le bot à l’aide d’un ID Telegram

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.pro/api/#{api_key}/tg_callback</summary>

URL de la requête : <https://chatter.mavibot.pro/api/#{api\\_key}/tg\\_callback>

Cette méthode peut être utilisée pour déclencher un tunnel pour un client ou confirmer une action sur un site web externe. Le client ne verra pas ce message.

**Veuillez noter : tous les paramètres que vous transmettez en plus seront enregistrés dans des variables.**

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

Chemin

clé api\* - jeton d’accès

Corps

message - texte du message\
user\_id - ID utilisateur Telegram\
group\_id - nom du bot (se termine par bot)\
resume\_bot - True (paramètre facultatif). Si le bot est en pause, utilisez ceci pour le reprendre. Exemple : resume\_bot = True

time\_shift - nombre. Si spécifié, le message sera envoyé après le nombre donné de secondes à partir du moment actuel.

send\_time - date et heure au format "%Y-%m-%d %H:%M:%S" (par ex. "2024-10-16 13:15:59"). Cela définit la date et l’heure d’envoi du message. Si time\_shift et send\_time sont tous deux spécifiés, time\_shift sera prioritaire.

</details>

### Envoi de messages callback à une liste de clients par platform\_id

<details>

<summary><mark style="color:green;">POST</mark>  https://chatter.mavibot.ai/api/#{api_key}/send_callback_by_platform_id</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/send\\_callback\\_by\\_platform\\_id>

Lorsque des clients avec un platform\_id de la liste sont trouvés dans le projet, un callback sera envoyé avec le texte du champ callback\_text.\
\ <mark style="color:red;">**Limite : 1 requête = maximum 300 envois**</mark>&#x20;

Exemple de paramètres de requête :\
{"platform\_ids":\[407184121, "79609879898", "2rwewefw"], "callback\_text": "test\_callback"}

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

Chemin

clé api\* - jeton d’accès

Corps

platform\_ids - liste des IDs clients dans le messager\
callback\_text - texte du callback\
group\_id - ID du bot

time\_shift - nombre. Si spécifié, le message sera envoyé après le nombre donné de secondes à partir du moment actuel.

send\_time - date et heure au format "%Y-%m-%d %H:%M:%S" (par ex. "2024-10-16 13:15:59"). Cela définit la date et l’heure d’envoi du message. Si time\_shift et send\_time sont tous deux spécifiés, time\_shift sera prioritaire.

</details>

### Envoi d’un message callback à un client par e-mail

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/email_callback</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/email\\_callback>

Cette méthode peut déclencher le bot e-mail après qu’un client s’est enregistré sur le site web ou a soumis une demande avec son e-mail. La méthode localisera l’e-mail du client ou le créera s’il n’est pas trouvé.

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

**Veuillez noter : tous les paramètres que vous transmettez en plus seront enregistrés dans la variable**

Chemin

clé api\* - jeton d’accès

Corps

name - nom du client\
message - texte du message\
aemail - adresse e-mail\
email\_id\_bot - adresse e-mail du bot\
resume\_bot - True (paramètre facultatif).&#x20;

Si le bot est en pause, utilisez ceci pour le reprendre. Exemple : resume\_bot = True

time\_shift - nombre. Si spécifié, le message sera envoyé après le nombre donné de secondes à partir du moment actuel.

send\_time - date et heure au format "%Y-%m-%d %H:%M:%S" (par ex. "2024-10-16 13:15:59"). Cela définit la date et l’heure d’envoi du message. Si time\_shift et send\_time sont tous deux spécifiés, time\_shift sera prioritaire.

</details>

## Comment travailler avec les messages

### Paramètres d’envoi des messages

**attachment\_type** — peut être : **image, vidéo, lien, fichier ou audio**.\
Lors de l’envoi d’une pièce jointe, le paramètre message est facultatif.

**buttons** — définit les boutons à joindre au message. Le format des boutons correspond aux paramètres avancés des boutons.

Les boutons peuvent être transmis de deux manières : avec un indice pour les messagers qui ne prennent pas en charge les boutons, ou sans celui-ci.

Exemple du paramètre buttons :

```
"buttons": {
  "hint": "Ce texte sera affiché dans WhatsApp",
  "buttons": [
    {
      "type": "reply",
      "text": "Parlez-moi des services",
      "line": 0,
      "index_in_line": 0
    },
    {
      "type": "reply",
      "text": "Tarifs des services",
      "line": 0,
      "index_in_line": 1
    },
    {
      "type": "reply",
      "text": "Contacts",
      "line": 1,
      "index_in_line": 0
    },
    {
      "type": "reply",
      "text": "Envoyer une demande",
      "line": 1,
      "index_in_line": 1
    }
  ]
}
```

### Envoi d’un message à un client

<details>

<summary><mark style="color:green;">POST</mark>  https://chatter.mavibot.ai/api/#{api_key}/message</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/message>

Cette méthode peut être utilisée pour envoyer des messages de notification. Le paramètre message est requis, sauf si vous envoyez un fichier. Si vous envoyez un fichier, le texte est facultatif.

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

Chemin

clé api\* - jeton d’accès

Corps

message\_id - numéro du bloc d’envoi\
message - texte du message\
client\_id - ID du client dans le constructeur\
attachment\_type - type d’affichage du fichier. Requis si attachment\_url est fourni.\
attachment\_url - URL du fichier\
buttons - boutons

time\_shift - nombre. Si spécifié, le message sera envoyé après le nombre donné de secondes à partir du moment actuel.

send\_time - date et heure au format "%Y-%m-%d %H:%M:%S" (par ex. "2024-10-16 13:15:59"). Cela définit la date et l’heure d’envoi du message. Si time\_shift et send\_time sont tous deux spécifiés, time\_shift sera prioritaire.

```
import requests
import json

# Envoi d’un message texte
params = {"message": "some_text", "client_id": "25554"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/message'
requests.post(url, json=params)

# Envoi d’une pièce jointe
params = {
    "message": "some message",
    "client_id": "1234565",
    "attachment_type": "video/image/file",
    "attachment_url": "https://qwreqw"
}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/message'
requests.post(url, json=params)

# Dans 'attachment_type', spécifiez 'video', 'image' ou 'file'
# selon le type de pièce jointe : vidéo, image ou document.
```

</details>

### Envoi d’un message dans WhatsApp

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.salebot.pro/api/&#x3C;api_key>/whatsapp_message</summary>

URL de la requête : <https://chatter.mavibot.pro/api/\\>\<api\_key>/whatsapp\_message

Permet d’envoyer un message au nom du bot connecté au numéro spécifié. Le whatsapp\_bot\_id doit être récupéré dans la section « Messageries et chats ». Chaque compte WhatsApp connecté se voit attribuer un identifiant unique par le constructeur.

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

Chemin

clé api\* - jeton d’accès

Corps

message\_id - numéro du bloc d’envoi\
whatsapp\_bot\_id - ID du bot WhatsApp depuis lequel le message doit être envoyé\
attachment\_url - URL du fichier\
attachment\_type - type d’affichage du fichier. Requis si attachment\_url est fourni.\
message - texte du message\
phone - numéro de téléphone du destinataire

time\_shift - nombre. Si spécifié, le message sera envoyé après le nombre donné de secondes à partir du moment actuel.

send\_time - date et heure au format "%Y-%m-%d %H:%M:%S" (par ex. "2024-10-16 13:15:59"). Cela définit la date et l’heure d’envoi du message. Si time\_shift et send\_time sont tous deux spécifiés, time\_shift sera prioritaire.

```
import requests
import json

params = {"message": "some_text", "phone": "79875146788"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/whatsapp_message'
requests.post(url, json=params)
```

</details>

### Envoi de messages en masse

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/broadcast</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/broadcast>

Cette méthode permet de lancer une diffusion.

Vous pouvez utiliser <mark style="color:red;">**l’une des options mutuellement exclusives suivantes**</mark>:

1. paramètre list — la diffusion sera envoyée à la liste de clients spécifiée.
2. paramètre clients — la diffusion sera envoyée à un tableau d’IDs clients.
3. paramètres platform\_ids et group\_id — la diffusion sera envoyée à un tableau de platform\_ids (IDs du messager) pour le bot spécifié (group\_id).
4. Si aucun des paramètres ci-dessus n’est fourni, la diffusion ne sera pas envoyée.

Paramètres requis : message (et/ou attachment\_type et attachment\_url) ou message\_id.

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

**list** - numéro de liste à laquelle la diffusion doit être envoyée

clients - IDs clients dans le constructeur

message - texte du message

platform\_ids - IDs des destinataires dans le messager. Doit être utilisé avec le paramètre group\_id requis

group\_id - requis uniquement lors de l’utilisation de platform\_ids. Ignoré avec les autres options. Spécifie le bot pour l’envoi aux platform\_ids donnés

attachment\_url - URL du fichier

attachment\_type - type d’affichage du fichier. Requis si attachment\_url est fourni.

buttons - boutons

message\_id - numéro du bloc d’envoi

shift — nombre de secondes entre les messages. La valeur par défaut est 0.2.

time\_shift - nombre. Si spécifié, le message sera envoyé après le nombre donné de secondes à partir du moment actuel.

send\_time - date et heure au format "%Y-%m-%d %H:%M:%S" (par ex. "2024-10-16 13:15:59"). Cela définit la date et l’heure d’envoi du message. Si time\_shift et send\_time sont tous deux spécifiés, time\_shift sera prioritaire.

```
import requests
import json

params = {"message": "some_text", "clients": ["5", "58", "110"]}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
```

</details>

### Récupération de l’historique des messages

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_history?client_id=</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_history?client\\_id=>

Le paramètre client\_id peut être obtenu ici. <mark style="color:red;">**lien**</mark>

Autorisation d’accès lors de la génération de la clé : **« Autorisation de lire les informations du client »**.

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

limit - nombre d’éléments dans la réponse. Par défaut : 2000, maximum : 2000

start\_date - date de début de la période de sélection (requis si stop\_date est spécifiée), format : jj.mm.aaaa&#x20;

stop\_date - date de fin de la période de sélection (requis si start\_date est spécifiée), format : jj.mm.aaaa

```
{
  "status": "success",
  "result": [
    {
      "id": 104500,
      "answered": true,
      "client_replica": false,
      "message_id": 390,
      "message_from_outside": 0,
      "created_at": 1587895014,
      "text": "Meow meow",
      "attachments": {
        
      },
      "delivered": true,
      "error_message": "true",
      "manager_id": 12486,
      "manager_email": "example@mail.com"
    },
  ]
}
```

</details>

### Effacer l’historique des messages

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/clear_history?client_id=</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/clear\\_history?client\\_id=>

Supprime l’historique du chat&#x20;

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier/supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

```
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/clear_history?client_id=85856'
requests.get(url)
```

</details>

## Comment attribuer des clients

### Attribuer un client à un employé

<details>

<summary><mark style="color:green;">POST</mark>  https://chatter.mavibot.ai/api/#{api_key}/assign_to_user</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/assign\\_to\\_user>

Cette méthode vous permet d’attribuer un client à un employé. Le paramètre email est facultatif. Si aucun e-mail n’est fourni, le système attribuera le client selon son algorithme.

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier/supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client\
aemail - e-mail de l’employé (facultatif)

```
import requests
import json

params = {"client_id":"#{client_id}","email":"xxxxx@mail.ru"}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/broadcast'
requests.post(url, json=params)
```

</details>

### Importation de clients dans le système

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/load_clients</summary>

URL de la requête : <https://chatter.mavibot.pro/api/#{api\\_key}/load\\_clients>

Cette méthode vous permet d’importer des clients dans le système. Lors du téléversement de clients WhatsApp, vous pouvez fournir le numéro dans n’importe quel format, avec ou sans la terminaison @s.whatsapp.net.

L’ID du groupe (group\_id) peut être obtenu ICI via /api/\<api\_key>/connected\_channels. (Si client\_type = 13 (téléphonie), alors group\_id est une chaîne vide : ""). <mark style="color:red;">**lien**</mark>

Le type de messager d’où provient le client (client\_type) peut être trouvé ICI. <mark style="color:red;">**lien**</mark>

Exemple : \[{"platform\_id":"79875555555","group\_id":34810,"client\_type":6}]

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

platform\_id - numéro de téléphone\
group\_id - ID du groupe\
client\_type - type de messager d’où provient le client

```
import requests
import json
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/load_clients'
params = [{ "platform_id": 274827917, "group_id": 169166236, "client_type":0},
{"platform_id":"79538550785@s.whatsapp.net", "group_id": "1hwF7lwEjv4SKYIGFhQnBw==", "client_type": 6}]
requests.post(url, json=params)
# si la fonction réussit, elle renverra un ID et un statut d’ajout pour chaque élément
# exemple de réponse
# {"status":"success","items":[{"platform_id":"700000000@s.whatsapp.net","group_id":"5kqchxwyvdvFZOsp80q2qw==","client_type":6,"status":"success","id":1469409}]}
```

</details>

### Ajouter des clients à une liste

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/add_to_list</summary>

URL de la requête : <https://chatter.mavibot.ai/api/\\>\<api\_key>/add\_to\_list

Ajoute des clients à une liste

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

list\_id - numéro de liste\
clients - tableau d’IDs clients

Exemple :\
Paramètres JSON\
{"list\_id":1170282, "clients":\[411262772, 646410963]}

</details>

### Supprimer des clients d’une liste

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/remove_from_list</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/remove\\_from\\_list>

Supprime des clients d’une liste

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

list\_id - numéro de liste\
clients - tableau des numéros de clients dans le constructeur Mavibot (valeurs de client\_id)

</details>

### Récupérer la liste des clients

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/get_clients</summary>

**URL de la requête :** <https://chatter.mavibot.a/aipi/\\>\<api\_key>/get\_clients

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

offset – décalage à partir du premier élément

limit – nombre d’éléments dans la réponse / Par défaut : 500, maximum : 500

list – numéro de liste

reverse – indique un tri inversé (du plus ancien enregistrement au plus récent). Ce paramètre fonctionne uniquement si la liste n’est pas spécifiée.

Renvoie le statut et un tableau d’éléments.

```
{
"status":"success",
"clients":[{
    "id":44483,
    "platform_id":"146467928",
    "client_type":0,
    "name":null,
    "avatar":null,
    "message_id":null,
    "project_id":1,
    "created_at":1588248599,
    "updated_at":1588248599,
    "custom_answer":null,
    "tag":null,
    "group":"143414131",
    "operator_start_dialog":null
    }
]
}
```

</details>

### Récupérer la liste des abonnés du bot dans n’importe quel messager

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/subscribers</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/subscribers>

Récupère les informations client depuis un messager sélectionné.

*<mark style="color:red;">Remarque !</mark>* Cette méthode ne renvoie pas de variables.

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

page\
tag – étiquette spécifiée sur la page d’abonnement\
group – ID du groupe VK auquel l’abonné est lié\
date\_from – Abonné après cette date (horodatage)\
date\_to – Abonné avant cette date (horodatage)\
client\_type – ID du messager pour lequel récupérer la liste des abonnés. Si non spécifié, tous les clients seront renvoyés

```
[  
  {
    "id": 44886,
    "tag": null,
    "created_at": 1609867984,
    "name": "John Smith",
    "vk_id": "146467928",
    "group": "155824294",
    "variables": null
  },
  {
    "id": 44889,
    "tag": null,
    "created_at": 1609867984,
    "name": "Anna Smith",
    "vk_id": "1609867984",
    "group": "155824294",
    "variables": {
      "utm_source": "some_value"
    }
  }
]
```

</details>

## Comment travailler avec les variables

### Affectation des variables

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/save_variables</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/save\\_variables>

&#x20;<mark style="color:green;">**!**</mark>**&#x20;**<mark style="color:$success;">**Aucune limite ne s’applique à cette requête.**</mark>&#x20;

Permet d’enregistrer des variables à la fois dans le lead et dans le client.&#x20;Par défaut, la requête d’affectation de variables les ajoute aux variables du deal.&#x20;Pour mettre à jour les variables dans le profil client, utilisez le préfixe client. Par exemple, pour un téléphone : client.phone.

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Mettre à jour**: Le paramètre clients permet d’affecter des variables en masse.\
Exemple : {"client\_id":49177759, "variables":{"client.phone":"88888888888"}}

**Chemin**

clé api\* - jeton d’accès

**Corps**

clients – tableau d’IDs clients pour l’affectation des variables

client\_id – ID du client

variables – table de hachage des variables (paires clé-valeur)

```
import requests
import json

params = {"client_id": "25554", "variables": {"var_name": "var_value"}}
token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/save_variables'
requests.post(url, json=params)
```

</details>

### Récupérer les variables

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_variables?client_id=</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_variables?client\\_id=>

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

Exemple : <https://chatter.mavibot.ai/api/d3f31dabef80ddeb73d43938b4ef8bb0/get\\_variables?client\\_id=49177759>

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

```
import requests
import json


token = 'b551e18c8b8e86bea6f14f38de3f5cc3c31ba1edb4d8'
url = f'https://chatter.mavibot.ai/api/{token}/get_variables?client_id=85856'
requests.get(url)
```

</details>

## Comment récupérer l’ID du client (client\_id)

### Récupérer client\_id à l’aide de la valeur platform\_id

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_platform_id</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_client\\_id\\_by\\_platform\\_id>

Autorisation d’accès lors de la génération d’une clé : **« Autorisation de modifier ou supprimer les informations du client »**.

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

platform\_ids - tableau d’ID dans un messager\
group\_id - ID du bot

```
[{
"id":15099119,
"tag":null,
"created_at":1618815253,
"name":"ОЛЬГА БЕЛИК",
"avatar":"https:\\/\\/files.mavibot.ai\\/uploads\\/avatars\\/256865200.jpg",
"platform_id":"2568652",
"group":"Mavibotai_bot",
"variables":{"tg_username":"@belik"}},

{"id":21087377,
"tag":null,
"created_at":1626275893,
"name":"John Smith",
"avatar":"https:\\/\\/files.mavibot.ai\\/uploads\\/avatars\\/571830542.jpg",
"platform_id":"571830542",
"group":"Mavibotai_bot",
"variables":{"tg_username":"@jsmith61"}
}]
```

</details>

### Récupérer l’ID du client depuis le chat en ligne

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/online_chat_client_id?recipient=</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/online\\_chat\\_client\\_id?recipient=>

Cette méthode vous permet d’intégrer un site web à un chatbot. Par exemple, si un utilisateur visite une page promotionnelle, vous pouvez immédiatement envoyer un message dans le chat avec une offre personnalisée.

Autorisation d’accès lors de la génération d’une clé : « Autorisation de modifier ou supprimer les informations du client ».

<img src="/files/c590ff50ca1eba64ceeef10aca18ad61e21ef6c1" alt="" data-size="original">

**Chemin**

api key\* - jeton d’acces

**Corps**

tag - étiquette (tag du client)\
name - nom du client\
recipient - ID de la conversation sur un site web

#### Où obtenir le **recipient ?**&#x20;

Vous pouvez l’obtenir sur le site web avec le chat en ligne Mavibot.ai, utilisez JS pour obtenir la propriété **MavibotAi.recipient\_id**.

<img src="/files/549164e4710f9d559ae3f3968ff2fb34315a4889" alt="" data-size="original">

```
{ "client_id": 36553 }
```

</details>

### Récupérer client\_id par numéro WhatsApp

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/whatsapp_client_id?phone=</summary>

URL de la requête : <https://chatter.mavibot.ai/api/#{api\\_key}/whatsapp\\_client\\_id?phone=>

Cette méthode renvoie l’ID du client pour effectuer des requêtes API si vous connaissez le numéro WhatsApp du client.\
Si aucun client n’existe avec ce numéro, la méthode renverra une erreur 404.

Autorisation d’accès lors de la génération d’une clé : « Autorisation de modifier ou supprimer les informations du client ».

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

phone - numéro de téléphone\
group\_id - ID du bot

</details>

### Récupérer client\_id par numéro de téléphone

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/find_client_id_by_phone?phone= </summary>

URL de la requête : <https://chatter.mavibot.ai/api/\\>\<api\_key>/find\_client\_id\_by\_phone?phone=&#x20;

Cette méthode renvoie l’ID du client pour effectuer des requêtes API.

La recherche est effectuée à la fois parmi les clients WhatsApp et via les variables.

Autorisation d’accès lors de la génération d’une clé : « Autorisation de modifier ou supprimer les informations du client ».

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

phone - numéro de téléphone

</details>

### Récupérer client\_id par e-mail

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_email?email= </summary>

URL de requête : <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_client\\_id\\_by\\_email?email=&#x20>;

Cette méthode renvoie l'ID du client pour effectuer des requêtes API.\
La recherche est effectuée à l'aide de variables.

Autorisation d’accès lors de la génération d’une clé : « Autorisation de modifier ou supprimer les informations du client ».

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

email - e-mail pour la recherche

</details>

### Récupérer client\_id par valeur de variable

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_client_id_by_var?var=&#x26;val=</summary>

URL de requête : <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_client\\_id\\_by\\_var?var=\\&val=>

Cette méthode renvoie l’ID du client pour effectuer des requêtes API.

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations client »

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

**var -** nom de la variable à rechercher\
**val -** la valeur de la variable\
**group\_id -** ID du groupe\
**search\_in -** passez la valeur 'order' pour rechercher dans les variables de deal ; recherche jusqu'à trois variables pour les clients de projet et renvoie une liste de clients qui possèdent toutes les variables spécifiées.

</details>

### Récupérer l'ID du client créé le plus récemment par valeur de variable

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_latest_client_id_by_var?var=&#x26;val=</summary>

URL de requête : <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_latest\\_client\\_id\\_by\\_var> ?var=\&val=

Cette méthode renvoie l'ID du client créé le plus récemment pour effectuer des requêtes API. Elle recherche à la fois dans les variables client et deal.

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations client »

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

**var -** nom de la variable à rechercher\
**val -** la valeur de la variable

</details>

### Récupérer une liste de valeurs client\_id par valeur de variable

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_all_client_id_by_var?var=&#x26;val=</summary>

URL de requête : <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_all\\_client\\_id\\_by\\_var?var=\\&val=>

Cette méthode renvoie une liste d'ID de clients qui ont la variable spécifiée avec la valeur spécifiée.

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations client »

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

**var -** nom de la variable à rechercher\
**val -** la valeur de la variable

```
{
    // Réponse
}
```

</details>

### Récupérer une liste de valeurs client\_id sur la base de plusieurs valeurs de variables

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/find_all_client_id_by_several_vars?var=val</summary>

URL de requête : <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_all\\_client\\_id\\_by\\_several\\_vars?var=val>

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations client ».

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé API\* - jeton d'accès

**Corps**

variable1 - Valeur1

variable2 - Valeur2

variable3 - Valeur3

```
{
 "status":"success","client_ids":[93891114]
}
```

</details>

### Recherche par variables

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/find_clients</summary>

URL de requête : <https://chatter.mavibot.ai/api/#{api\\_key}/find\\_clients>

Cette méthode recherche par variables et renvoie une liste d'ID de clients qui répondent aux conditions de la requête.

Par défaut, la recherche est effectuée sur les variables client (recommandé) : {"q": {"result": "ok", "var": "home", "var": "60"}} – le client doit avoir toutes les variables spécifiées

Recherche dans les variables de deal, au moins une des variables spécifiées doit être présente : {"q": {"result": "ok", "var": "home", "var": "60"}, "search\_in": "order", "include\_all": False}

Le nom de la variable client est égal à l'une des valeurs de la liste : {"q": {"name": {"\_in": \["Joe", "Jane", "Donald"]}}}

Le nom de la variable client n'est ÉGAL à aucune des valeurs de la liste : {"q": {"name": {"\_not\_in": \["Joe", "Jane", "Donald"]}}}

Le nom de la variable client n'est pas égal à "Joe" : {"q": {"name": {"\_not": "Joe"}}}

**Remarque : la comparaison de nombres fonctionne uniquement si tous les clients ont des valeurs numériques dans la variable recherchée. Si un seul client a une chaîne de caractères, la requête échouera.**

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations client »

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

Paramètres

**Chemin**

clé api\* - jeton d’accès

**Corps**

q – paramètre requis, contient les conditions de requête pour la recherche de variables

search\_in – spécifie les variables de quelle entité rechercher ; si non fourni, la recherche est effectuée sur les variables client. Peut prendre la valeur order.

include\_all – indique si toutes les conditions de q doivent être remplies ;

False – si au moins une condition correspond, l'entité est sélectionnée

```
Succès
{"status":"success","client_ids":[41203, 5622354, 785212]} 
{"status":"success","client_ids":[]} 
{"status": "fail", "message": "Paramètre \"q\" requis"} {"status": "fail", "message": "Erreur dans le format du paramètre"}
Erreur
{"status":"fail","message":"Quelque chose s'est mal passé"}
```

</details>

## Comment travailler avec les deals

### Récupérer l'ID du deal actuel

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_current_order_id</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_current\\_order\\_id>

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations CRM ».

<img src="/files/69a277e842c772a86ff444828e0d8739f753ed86" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

```
Réponse réussie : {"status":"success","order_id":40632}, où
order_id - ID du deal actuel
Réponse d'erreur : {"status":"client_not_found"}
```

</details>

### Récupérer la liste des deals

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_orders</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_orders>

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations CRM »

<img src="/files/69a277e842c772a86ff444828e0d8739f753ed86" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

**order\_status** - étape du deal : \
0 - deals actifs\
1 - deals réussis\
2 - deals non réussis

```
Réponse réussie : {"status":"success","order_id":[40338,40340,40341]} 
Réponse d'erreur : {"status":"client_not_found"}
```

</details>

### Déplacer un deal vers l'étape suivante du tunnel Mavibot

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/move_order_to_next_state</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/move\\_order\\_to\\_next\\_state>

Autorisation d'accès lors de la génération de la clé : « Autorisation de modifier/supprimer les informations CRM »

<img src="/files/4e3acf9ac3da0f190178021774876825010f9b2e" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

**order\_id** - ID du deal

```
Réponse réussie : 
{"status":"success","state_id":37}, où 
state_id - ID de l'étape dans MavibotCRM 
Réponse d'erreur : 
{"status":"client_not_found"}
```

</details>

### Récupérer les données du deal

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/get_order_vars</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_order\\_vars>

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations CRM »

<img src="/files/69a277e842c772a86ff444828e0d8739f753ed86" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

**order\_id** - ID du deal

variables - tableau de variables\
(format:\["var\_name1", "var\_name2"])

```
Réponse réussie : 
{"status":"success","result":{"var_name1":"111","var_name2":"13.04.2023"}} 

Exemple d'erreur : 
{"status":"client_not_found"}
```

</details>

### Ajouter des variables de deal

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/set_order_vars</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/set\\_order\\_vars>

Autorisation d'accès lors de la génération de la clé : « Autorisation de modifier/supprimer les informations CRM »

<img src="/files/4e3acf9ac3da0f190178021774876825010f9b2e" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

**order\_id** - ID du deal

variables - un dictionnaire de variables (la clé est le nom de la variable, et la valeur est ce qui doit être enregistré dans cette variable)\
(format:{"var\_name": "var\_velue"})

```
Réponse réussie : {"status":"success"} 
Réponse d'erreur : {"status":"order 12345 not found"}
```

</details>

### Créer un deal

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/create_order</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/create\\_order>

Autorisation d'accès lors de la génération de la clé : « Autorisation de modifier/supprimer les informations CRM »

<img src="/files/4e3acf9ac3da0f190178021774876825010f9b2e" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

name - nom du deal

description - description du deal

budget - montant du deal

Vous devez spécifier l'un des paramètres suivants dans la requête : client\_id, email ou phone.\
Si plusieurs paramètres sont fournis, un seul sera utilisé. L'ordre de priorité est : client\_id > phone > email.\
Si phone ou email est fourni et qu'aucun client n'existe avec ce numéro de téléphone ou cet e-mail, un nouveau client sera créé.

```
Réponse réussie : {"status":"success","order_id":40654}, 
où order_id est l'ID du nouveau deal actif.
Réponse d'erreur : {"status":"client_not_found"}
```

</details>

### Déplacer un deal vers une étape dans MavibotCRM

<details>

<summary><mark style="color:green;">POST</mark> https://chatter.mavibot.ai/api/#{api_key}/set_order_state</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/set\\_order\\_state>

Autorisation d'accès lors de la génération de la clé : « Autorisation de modifier/supprimer les informations CRM »

<img src="/files/4e3acf9ac3da0f190178021774876825010f9b2e" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

state\_id - le numéro d'étape vers laquelle le deal du client doit être déplacé

</details>

### Récupérer l'ID de l'étape du tunnel dans Mavibot CRM

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/get_order_state</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/get\\_order\\_state>

Autorisation d'accès lors de la génération de la clé : « Autorisation de lire les informations CRM »

<img src="/files/69a277e842c772a86ff444828e0d8739f753ed86" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

**Corps**

client\_id - ID du client

state\_id - ID du deal (si non spécifié, la méthode renverra l'ID de l'étape du deal actuel)

```
Exemple de réponse réussie :
{'status': 'success', 'state_id': 123456}

Exemple de réponse infructueuse :
{'status': 'order not found'}
```

</details>

## Quelles autres fonctionnalités sont disponibles ?

### Vérifier si un numéro de téléphone a WhatsApp

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/#{api_key}/check_whatsapp</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/#{api\\_key}/check\\_whatsapp>

**Pour utiliser cette méthode, WhatsApp doit être connecté à Mavibot.**

Autorisation d’accès lors de la génération d’une clé : « Autorisation de modifier ou supprimer les informations du client ».

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

Peut être appelé via GET ou POST.\
Le numéro de téléphone peut être fourni dans n'importe quel format.

**Chemin**

clé api\* - jeton d’accès

**Corps**

phone - numéro de téléphone à vérifier

</details>

### Obtenir la liste des messageries connectées au projet

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/connected_channels</summary>

URL de requête : <https://chatter.mavibot.ai/api/\\>\<api\_key>/connected\_channels

Autorisation d’accès lors de la génération d’une clé : « Autorisation de modifier ou supprimer les informations du client ».

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

La fonction renvoie le paramètre group\_id pour chaque messagerie, qui doit être utilisé lors de l'importation des clients.

Pour WhatsApp, elle renvoie également un **status** champ, qui peut prendre les valeurs suivantes :<br>

**NOT\_STARTED = 0**\
**STARTED = 1**\
**ASLEEP = 2**\
**STOPPED = 3**

**Chemin**

clé api\* - jeton d’accès

```
{'project_id': 1, 
'viber': [{
        'id': 14, 
        'uri': 'mavibotstage', 
        'name': 'mavibotstage', 
        'enabled': true,
        'group_id': 11}], 
'facebook': [], 
'telegram': [{
        'id': 23, 
        'short_name': 'bulls_vs_bears_bot', 
        'name': 'bulls_vs_bears_bot', 
        'enabled': true,
        'group_id': 'bulls_vs_bears_bot'}], 
'whatsapp': [], 
'avito': [], 
'ok': [], 
'vkontakte': [{
        'id': 33, 
        'group': '143414131',
        'group_id': '143414131'}]
}
```

</details>

### Récupérer la liste des blocs du flux du bot

<details>

<summary><mark style="color:blue;">GET</mark> https://chatter.mavibot.ai/api/&#x3C;api_key>/get_messages</summary>

**URL de la requête :** <https://chatter.mavibot.ai/api/\\>\<api\_key>/get\_messages

Autorisation d’accès lors de la génération d’une clé : « Autorisation de modifier ou supprimer les informations du client ».

<img src="/files/f043ec27b500ffc6c0b6fa52bbfab905b83a9f62" alt="" data-size="original">

**Chemin**

clé api\* - jeton d’accès

</details>

### Récupérer des données client imbriquées

<details>

<summary>delimiter</summary>

Pour récupérer client\_id et/ou le numéro de téléphone du client à partir de dictionnaires imbriqués (pas au premier niveau), utilisez le paramètre delimiter.

Ajoutez ce qui suit à l'URL de votre requête :

?delimiter=1\&delimiter\_value\_client\_id={key1}1{key2}\&delimiter\_value\_phone={key1}1{key2}&#x20;

où :

?delimiter=1 – la valeur du délimiteur qui sépare les clés {key1}1{key2}1{key3}

delimiter\_value\_client\_id={key1}1{key2} – pour récupérer l'ID du client

delimiter\_value\_phone={key1}1{key2} – pour récupérer le numéro de téléphone du client

{key1}, {key2}, … – clés contenant les valeurs (peuvent inclure n'importe quel caractère sauf le délimiteur). Vous pouvez avoir un nombre illimité de clés :\
?delimiter=1\&delimiter\_value\_client\_id={key1}1{key2}1{key3}1{key4}1{key5}1{key6}. \
**Les clés sont transmises sans accolades.**

Utilisez le délimiteur entre les clés. Par exemple, si delimiter=2, alors {key1}2{key2}2{key3} ; si delimiter=5, alors {key1}5{key2}5{key3}. Assurez-vous que la clé ne contient pas le caractère délimiteur.

Exemple :

<https://chatter.mavibot.a/aipi/\\>\<api\_key>/callback<mark style="color:yellow;">**?delimiter=1\&delimiter\_value\_client\_id={key1}1{key2}\&delimiter\_value\_phone={key1}1{key2}**</mark>&#x20;

Vous pouvez également récupérer uniquement l'ID ou uniquement le numéro de téléphone :&#x20;

<https://chatter.salebot.pro/api/\\>\<api\_key>/callback<mark style="color:green;">**?delimiter=1\&delimiter\_value\_client\_id={key1}1{key2} -**</mark> uniquement l'ID du client ;

<https://chatter.salebot.pro/api/\\>\<api\_key>/callback<mark style="color:green;">**?delimiter=1delimiter\_value\_phone={key1}1{key2}**</mark> - uniquement le numéro de téléphone ;

Méthodes API :

1. Démarrer le bot : <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/callback
2. Démarrer le bot par numéro WhatsApp : <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/whatsapp\_callback
3. Démarrer le bot par ID Telegram : <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/tg\_callback
4. Envoyer un message de callback au client e-mail : <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/email\_callback
5. Envoyer un message au client : <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/message
6. Envoyer un message WhatsApp : <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/whatsapp\_message
7. Messagerie de masse : <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/broadcast
8. Attribuer des variables : <https://chatter.mavibotbot.ai/api/\\>\<api\_key>/save\_variables   \\

</details>

{% hint style="success" %}
Si vous avez besoin de méthodes supplémentaires, veuillez contacter le support.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/fr/travailler-avec-lapi/constructeur-dapi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
