# L’API du logiciel d’édition

* [Comment recevoir les messages sur l'URL du webhook spécifiée dans les paramètres du projet](#how-to-get-messages-on-webhook-url-that-is-specified-in-the-projects-settings)&#x20;
* [Comment utiliser un webhook universel](#how-to-use-a-universal-webhook)&#x20;
* [Comment lancer le bot](#how-to-launch-the-bot)&#x20;
* [Comment travailler avec les messages](#how-to-work-with-messages)&#x20;
* [Comment distribuer les clients](#how-to-distribute-the-clients)&#x20;
* [Comment travailler avec les variables](#how-to-work-with-variables)&#x20;
* [Comment obtenir client\_id](#how-to-get-client_id)&#x20;
* [Quelles autres possibilités il existe](#what-other-possibilities-there-are)

Les requêtes sont effectuées avec la méthode **POST** sur l'URL, c.-à-d. **<https://chatter.mavibot.ai/api/{api\\_key}/{action}>**

Où il se trouve : **api\_key** est la clé d'accès à l'API, qui est obtenue dans les paramètres du projet :

![](https://lh4.googleusercontent.com/NMHfsMXf9aqYBwcLqud8V-NoFMxqqxkcSdhxjckgEtowma_UmtxTmDqHFIsQwrpjc7kR8afwlpnC5FGMjLxYHtNwhnkR6xF0iwlUPjXTlkqRlYtoHfWrhp_dce8r5I5R-pPgDMzV)

{% hint style="success" %}
**Vous pouvez obtenir la clé d'accès en utilisant la variable #{api\_key}.** Elle contient la clé générée correspondante. N'oubliez pas d'en générer une avant de l'utiliser.
{% endhint %}

{% hint style="danger" %}
Lorsque vous copiez l'URL de la requête depuis cette page, un espace est ajouté et doit être supprimé lors de l'appel&#x20;

Un exemple de copie incorrecte du lien : <https://chatter.mavibot.ai/api/callback&#x20>;

L'espace après .pro est facile à ne pas remarquer, mais s'il est laissé en place, la requête ne fonctionnera pas
{% endhint %}

{% hint style="warning" %}
**Lors de l'envoi de la requête avec la méthode GET, n'utilisez pas de mots interdits.** Vérifiez la bonne structure des requêtes GET
{% endhint %}

## Comment recevoir les messages sur l'URL du webhook spécifiée dans les paramètres du projet

![Les paramètres du projet](https://lh5.googleusercontent.com/042KfsD4dxlKvcCDd-bReA7zTmfMHDr2LoX5jD1maPuo5OIwkyQ4qEXwFpwX41YA1Sx7SHES2TwLQD6Trs_TmwO57Pso2ogV4w8lJdmwhtIi7JdSwJvoePaXSYxO8NKLVm6kooPc)

Chaque message entrant ou sortant s'accompagne des requêtes POST json suivantes :

```
{
    'id' : l'identifiant du message dans le système,
    'client' : {
        'id' : l'identifiant du client dans le système,
        'recepient' : l'identifiant du client dans la messagerie,
        'client_type' : le type de messagerie,
        'name' : le nom du client,
        'avatar' : l'avatar du client,
        'created_at' : la date de création du client,
        'tag' : la clé d'abonnement,
        'group' : le bot auquel le client est rattaché,
    },
    'message' : le texte du message,
    'attachments' : le tableau de liens vers des fichiers,
    'message_id' : l'id du bloc à partir duquel le message a été envoyé,
    'project_id' : l'id du projet,
    'is_input' : 1 si le message provient d'un client, 0 s'il provient du bot,
    'delivered' : 1 si le message est envoyé avec succès, 0 s'il y a eu une erreur,,
    'error_message' : le message expliquant l'erreur
}
```

Si la requête a renvoyé une erreur, elle ne sera pas renvoyée. Si le serveur a renvoyé une erreur, les notifications passeront néanmoins.

## Comment utiliser un webhook universel

Ces méthodes peuvent désormais être lancées avec les requêtes POST et GET.

* [callback ](#the-bots-launch)
* [whatsapp\_callback](#launching-the-bot-through-the-number-on-whatsapp)&#x20;
* [message ](#sending-the-message-to-the-client)
* [whatsapp\_message](#sending-messages-in-whatsapp)

Auparavant, les paramètres (avec lesquels les méthodes des clients étaient lancées, c.-à-d. **client\_id**) étaient définis de manière très stricte dans nos méthodes et cela imposait certaines restrictions lors de leur utilisation avec des services tiers.

Vous pouvez désormais indiquer dans quel paramètre de la requête Mavibot cherchera l'identifiant de l'utilisateur : pour cela, un paramètre avec le préfixe **value\_** est utilisé, comme **value\_user\_id** et **value\_group\_id**.

De plus, la méthode d'envoi du callback **callback** peut être lancée en transmettant un e-mail (**client\_email**) et un numéro de téléphone du client (**client\_phone**).

{% hint style="success" %}
Méthodes **callback** et **whatsapp\_callback** ne sont pas liés aux noms des paramètres. Vous pouvez spécifier quel paramètre contiendra le numéro de téléphone, l'e-mail et l'id du client.
{% endhint %}

C'est utile lorsque vous configurez la réception du webhook via un autre site.

**Pour indiquer quelle variable contient client\_id** vous devez transmettre **value\_client\_id** et mentionner le nom du paramètre qui contient cette valeur

**Pour indiquer quelle variable contient phone** vous devez transmettre **value\_phone** et mentionner le nom du paramètre qui contient cette valeur

**Pour indiquer quelle variable contient email** vous devez transmettre **value\_email** et mentionner le nom du paramètre qui contient cette valeur

**Pour indiquer quelle variable contient user\_id** vous devez transmettre **value\_user\_id** et mentionner le nom du paramètre qui contient cette valeur

**Pour indiquer quelle variable contient group\_id** vous devez transmettre **value\_group\_id** et mentionner le nom du paramètre qui contient cette valeur

Exemple :

Saisissez l'adresse 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 à la requête ci-dessous :

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

{% hint style="info" %}
Comme vous pouvez le voir, le nom du paramètre qui contient le nom est différencié par le préfixe **value\_**
{% endhint %}

## Comment lancer le bot

## Le lancement du bot

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

La méthode peut être utilisée pour lancer le workflow du client ou pour approuver l'action sur un service tiers. Ce message ne sera pas visible pour le client. \
**Les paramètres transmis en plus sont enregistrés dans les variables.** \
La méthode d'envoi du callback peut désormais être activée en partageant un e-mail (client\_email) ou le numéro de téléphone du client (client\_phone)

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Corps de la requête

| Name          | Type                    | Description                                         |
| ------------- | ----------------------- | --------------------------------------------------- |
| client\_phone | Utilisez des guillemets | numéro de téléphone permettant de trouver le client |
| client\_email | Utilisez des guillemets | e-mail permettant de trouver le client              |
| client\_id    | Utilisez des guillemets | id du client dans l'éditeur                         |
| message       | Utilisez des guillemets | le texte du message                                 |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Lancement du bot via le numéro sur WhatsApp

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

Cette méthode lance le bot dans WhatsApp après que le client s'est inscrit via le site ou après qu'il a laissé une demande avec son numéro de téléphone \
**Les paramètres transmis en plus sont enregistrés dans les variables**

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Corps de la requête

| Name    | Type                    | Description                      |
| ------- | ----------------------- | -------------------------------- |
| name    | Utilisez des guillemets | le nom du client                 |
| message | Utilisez des guillemets | le texte du message              |
| phone   | Utilisez des guillemets | le numéro de téléphone du client |
| bot\_id | Utilisez des guillemets | l'id du bot                      |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Lancement du bot via l'id Telegram

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/tg_callback`

La méthode peut être utilisée pour lancer le workflow ou confirmer des actions sur un site tiers. Ce message ne sera pas visible pour le client.&#x20;

**Les paramètres transmis en plus sont enregistrés dans les variables**

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Corps de la requête

| Name      | Type                    | Description                                  |
| --------- | ----------------------- | -------------------------------------------- |
| message   | Utilisez des guillemets | le texte du message                          |
| user\_id  | Utilisez des guillemets | l'id de l'utilisateur dans Telegram          |
| group\_id | Utilisez des guillemets | le nom du bot (doit se terminer par **bot**) |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Comment travailler avec les messages

**Paramètres pour l'envoi de messages**

**attachment\_type** peut prendre ces valeurs : **image, vidéo, lien, fichier, audio** \
Lors de l'envoi de pièces jointes, le paramètre **message** n'est pas obligatoire

**buttons** identifie les boutons qui seront joints au message. Le format des boutons est comparable aux paramètres avancés du bouton. Deux variantes de transmission des boutons sont possibles : l'une avec l'indication contextuelle dans les messageries sans boutons et l'autre sans celle-ci

Voici un exemple du paramètre buttons :

```
"buttons": {"hint": "Ce texte sera affiché dans Whatsapp",
 "buttons": [
    {"type": "reply", 
     "text": "Quels services nous pouvons fournir", 
     "line": 0, "index_in_line": 0}, 
       
    {"type": "reply", 
     "text": "Infos de paiement", 
     "line": 0, 
     "index_in_line": 1}, 
        
    {"type": "reply", 
     "text": "Nos coordonnées", 
     "line": 1, "index_in_line": 0}, 
        
    {"type": "reply", 
     "text": "Laisser une demande", 
     "line": 1, "index_in_line": 1}
   ] 
}
```

## Envoi du message au client

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

Cette méthode peut être utilisée pour envoyer des messages avec notifications. Le paramètre **message** est obligatoire si vous n'envoyez pas de fichier. Si vous en envoyez un, alors le texte n'est pas nécessaire

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name             | Type                    | Description                    |
| ---------------- | ----------------------- | ------------------------------ |
| message\_id      | Utilisez des guillemets | le numéro du bloc d'envoi      |
| message          | Utilisez des guillemets | le texte du message            |
| client\_id       | Utilisez des guillemets | l'id du client dans l'éditeur  |
| attachment\_type | Utilisez des guillemets | le type d'affichage du fichier |
| attachment\_url  | Utilisez des guillemets | l'URL du fichier               |
| buttons          | objet                   | buttons                        |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
import requests
import json

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

{% endtab %}
{% endtabs %}

## Envoi de messages dans WhatsApp

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/whatsapp_message`

Permet d'envoyer un message au nom du bot connecté au numéro indiqué **whatsapp\_bot\_id** doit être pris dans la section « Messageries et chats ». Chaque page WhatsApp connectée reçoit un identifiant unique

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name              | Type                    | Description                            |
| ----------------- | ----------------------- | -------------------------------------- |
| message\_id       | Utilisez des guillemets | le numéro du bloc d'envoi              |
| whatsapp\_bot\_id | numéro                  | le bot WhatsApp qui envoie le message  |
| attachment\_url   | Utilisez des guillemets | l'url du fichier                       |
| attachment\_type  | Utilisez des guillemets | le type d'affichage du fichier         |
| message           | Utilisez des guillemets | le texte du message                    |
| phone             | Utilisez des guillemets | le numéro de téléphone du destinataire |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
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)
```

{% endtab %}
{% endtabs %}

## Envoi de messages en masse

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

La méthode permet la distribution de messages. Si le paramètre **clients** n'est pas mentionné, la diffusion sera envoyée à tous les utilisateurs. Il est nécessaire d'envoyer soit un fichier, soit un texte

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name             | Type                    | Description                                              |
| ---------------- | ----------------------- | -------------------------------------------------------- |
| message\_id      | Utilisez des guillemets | le numéro du bloc d'envoi                                |
| list             | Utilisez des guillemets | la liste des numéros des destinataires                   |
| décalage         | Utilisez des guillemets | le nombre de secondes entre les messages. 0,2 par défaut |
| message          | Utilisez des guillemets | le texte du message                                      |
| clients          | tableau                 | les ids des destinataires                                |
| attachment\_type | Utilisez des guillemets | le type d'affichage du fichier                           |
| attachment\_url  | Utilisez des guillemets | l'URL du fichier                                         |
| buttons          | Utilisez des guillemets | buttons                                                  |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
{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)
```

{% endtab %}
{% endtabs %}

## Obtention de l'historique des messages

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

Obtention de l'historique des messages. Vous pouvez obtenir le **client\_id** param [ICI](#how-to-get-client_id)

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Paramètres de requête

| Name       | Type                    | Description    |
| ---------- | ----------------------- | -------------- |
| client\_id | Utilisez des guillemets | l'id du client |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
{
  "status": "success",
  "result": [
    {
      "id": 104500,
      "answered": true,
      "client_replica": false,
      "message_id": 390,
      "message_from_outside": 0,
      "created_at": 1587895014,
      "text": "CouCou",
      "attachments": {
        
      },
      "delivered": true,
      "error_message": "true"
    },
  ]
}
```

{% endtab %}
{% endtabs %}

## Effacement de l'historique des messages

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

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Paramètres de requête

| Name       | Type                    | Description    |
| ---------- | ----------------------- | -------------- |
| client\_id | Utilisez des guillemets | l'id du client |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
import requests
import json


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

{% endtab %}
{% endtabs %}

## Comment distribuer les clients

## Attribuer un client à un employé

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/assign_to_user`

La méthode permet d'affecter un client à un employé. Le paramètre e-mail est facultatif. Si l'e-mail n'est pas fourni, il sera réparti selon l'algorithme du système

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Paramètres de requête

| Name       | Type   | Description                            |
| ---------- | ------ | -------------------------------------- |
| client\_id | Chaîne | l'id du client                         |
| e-mail     | Chaîne | l'e-mail du collaborateur (facultatif) |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
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)
```

{% endtab %}
{% endtabs %}

## Chargement des clients dans le système

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/load_clients`

La méthode permet de charger des clients dans le système. Lors du téléchargement de clients WhatsApp, vous pouvez transmettre librement le numéro avec @s.whatsapp.net à la fin ou sans celui-ci.&#x20;

Vous pouvez obtenir l'id du groupe (**group\_id**) [ici ](#what-other-possibilities-there-are)via /api/\<api\_key>/connected\_channels&#x20;

(si client\_type=13 (téléphonie) alors group\_id="")&#x20;

Vous pouvez voir le type de messagerie d'où provient le client (**client\_type**)&#x20;

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

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name         | Type   | Description                                   |
| ------------ | ------ | --------------------------------------------- |
| platform\_id | Chaîne | le numéro de téléphone                        |
| group\_id    | Chaîne | l'id du groupe                                |
| client\_type | Chaîne | le type de messagerie d'où provient le client |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
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)
# en cas de succès, la fonction renvoie pour chaque élément son id et son statut additionnel
# exemple de réponse
# {"status":"success","items":[{"platform_id":"700000000@s.whatsapp.net","group_id":"5kqchxwyvdvFZOsp80q2qw==","client_type":6,"status":"success","id":1469409}]}
```

{% endtab %}
{% endtabs %}

## Ajout de clients à la liste

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

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name     | Type    | Description                        |
| -------- | ------- | ---------------------------------- |
| list\_id | entier  | le numéro de la liste              |
| clients  | tableau | le tableau des numéros des clients |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Suppression de clients de la liste

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

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name     | Type    | Description                        |
| -------- | ------- | ---------------------------------- |
| list\_id | entier  | le numéro de la liste              |
| clients  | tableau | le tableau des numéros des clients |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Obtention de la liste des clients

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/get_clients`

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Paramètres de requête

| Name   | Type                    | Description                                                    |
| ------ | ----------------------- | -------------------------------------------------------------- |
| offset | Utilisez des guillemets | décalage à partir du premier élément                           |
| limit  | entier                  | le nombre d'éléments dans la réponse. 500 par défaut, max. 500 |
| list   | Utilisez des guillemets | le numéro de la liste                                          |

{% tabs %}
{% tab title="200 : OK Renvoie le statut des éléments et le tableau" %}

```javascript
{
"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
    }
]
}
```

{% endtab %}
{% endtabs %}

## Obtention de la liste des abonnés dans n'importe quelle messagerie

<mark style="color:green;">`POST`</mark> `https://chatter.mavibot.ai/api/<api_key>/subscribers`

Obtention des informations sur les clients dans la messagerie choisie

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Paramètres de requête

| Name         | Type                    | Description                                                                                                     |
| ------------ | ----------------------- | --------------------------------------------------------------------------------------------------------------- |
| page         | entier                  |                                                                                                                 |
| tag          | Utilisez des guillemets | la balise mentionnée sur la page d'abonnement t                                                                 |
| group        | entier                  | l'id du groupe auquel l'abonné est rattaché                                                                     |
| date\_from   | entier                  | horodatage de la date après laquelle ils se sont abonnés                                                        |
| date\_to     | entier                  | horodatage de la date jusqu'à laquelle ils se sont abonnés                                                      |
| client\_type | entier                  | l'id de la messagerie à laquelle vous devez vous abonner. Si vous ne changez rien, tous les clients s'affichent |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

### Autorisation de supprimer des clients

<mark style="color:green;">**`POST`**</mark>` ``https://chatter.mavibot.ai/api/<api_key>/get_clients`

Autorisation d'accès lors de la génération de la clé : « Autorisation de supprimer des clients »

Paramètres

Chemin\
api key\* — jeton d'accès

Corps\
client\_ids — liste des ID clients à supprimer. Maximum 500. Exemple : \[199571, 199707, 1935722]

## Comment travailler avec les variables

## Attribution de variables

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

Permet d'enregistrer des variables dans l'application et chez le client. \
La requête d'attribution de variables ajoute par défaut aux variables de transaction. \
Si vous devez modifier les variables dans le profil, vous devez ajouter le préfixe **client**. \
Ex. pour mobile : client.phone&#x20;

Le paramètre **clients** permet d'attribuer des variables en masse&#x20;

Ex. : {"client\_id":49177759, "variables":\
{"client.phone":"1234567890"}}

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name       | Type                    | Description                                                  |
| ---------- | ----------------------- | ------------------------------------------------------------ |
| clients    | tableau                 | tableau des ids des clients pour l'attribution des variables |
| client\_id | Utilisez des guillemets | id du client                                                 |
| variables  | objet                   | hachage de variable (clé valeur)                             |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
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)
```

{% endtab %}
{% endtabs %}

## Obtention des variables

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

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Paramètres de requête

| Name       | Type                    | Description  |
| ---------- | ----------------------- | ------------ |
| client\_id | Utilisez des guillemets | id du client |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
import requests
import json


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

{% endtab %}
{% endtabs %}

## **Comment obtenir client\_id**

## Obtention de client\_id à partir de la valeur platform\_id

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

La méthode renvoie l'id du client pour exécuter des requêtes vers l'API

Exemple de paramètres : {"platform\_ids": \["571830542", "256865200"]}

#### Paramètres de chemin

| Name | Type                    | Description |
| ---- | ----------------------- | ----------- |
|      | Utilisez des guillemets | clé d'accès |

#### Corps de la requête

| Name          | Type                    | Description                      |
| ------------- | ----------------------- | -------------------------------- |
| platform\_ids | Utilisez des guillemets | tableau d'ids dans la messagerie |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
[{
"id":15099119,
"tag":null,
"created_at":1618815253,
"name":"Oscar Wilde",
"avatar":"https:\\/\\/files.salebot.pro\\/uploads\\/avatars\\/256865200.jpg",
"platform_id":"2568652",
"group":"Salebotpro_bot",
"variables":{"tg_username":"@wildeo"}},

{"id":21087377,
"tag":null,
"created_at":1626275893,
"name":"Freddie Mercury",
"avatar":"https:\\/\\/files.salebot.pro\\/uploads\\/avatars\\/571830542.jpg",
"platform_id":"571830542",
"group":"Salebotpro_bot",
"variables":{"tg_username":"@freddieisqueen"}
}]
```

{% endtab %}
{% endtabs %}

## Comment obtenir l'id client sur le chat en ligne

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

Cette méthode permet d'intégrer le site et le chatbot, c.-à-d. si une personne est allée sur la page avec l'offre spéciale, vous pouvez envoyer instantanément un message sur l'offre dans le chat

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Paramètres de requête

| Name      | Type                    | Description                         |
| --------- | ----------------------- | ----------------------------------- |
| tag       | Utilisez des guillemets | balise client                       |
| name      | Utilisez des guillemets | le nom du client                    |
| recipient | Utilisez des guillemets | l'id de la conversation sur le site |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

Où obtenir le recipient ? Sur le site qui utilise le chat en ligne « Mavibot.ai », vous devez récupérer la fonctionnalité SaleBotPro.recipient\_id à l'aide de JS.

![](https://lh4.googleusercontent.com/kTHJGnkdMXxirfxHrmgHcg3n9nRn35lHIiWbQ6LZyaQZ4IbO8TnOtgihTt4MdAqFa1bWujmpYDOId9ALFfmud8n-XD2AJlxep2luxjL4nCl2YgDTpdemE4wJVsgFuPw1h382oUL5)

## Comment obtenir l'id client avec le numéro WhatsApp

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

La méthode renvoie l'id du client pour exécuter des requêtes vers l'API si vous connaissez le numéro de téléphone du client dans WhatsApp. \
S'il n'existe pas de client avec ce numéro, vous obtiendrez une erreur 404.

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Paramètres de requête

| Name  | Type                    | Description            |
| ----- | ----------------------- | ---------------------- |
| phone | Utilisez des guillemets | le numéro de téléphone |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Obtention de l'id client avec le numéro de téléphone

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

La méthode renvoie l'id du client pour exécuter des requêtes vers l'API. \
La recherche s'effectue à travers les clients WhatsApp, ainsi qu'à travers les variables.

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Paramètres de requête

| Name  | Type                    | Description            |
| ----- | ----------------------- | ---------------------- |
| phone | Utilisez des guillemets | le numéro de téléphone |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Obtention de l'id client par e-mail

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

La méthode renvoie l'id du client pour exécuter des requêtes vers l'API. La recherche s'effectue à travers les variables.

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Paramètres de requête

| Name   | Type                    | Description              |
| ------ | ----------------------- | ------------------------ |
| e-mail | Utilisez des guillemets | e-mail pour la recherche |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Obtention de l'id client par la valeur de la variable

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

La méthode renvoie l'id du client pour exécuter des requêtes vers l'API

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Paramètres de requête

| Name | Type                    | Description                                                          |
| ---- | ----------------------- | -------------------------------------------------------------------- |
| var  | Utilisez des guillemets | le nom de la variable à travers laquelle la recherche sera effectuée |
| val  | Utilisez des guillemets | la valeur de la variable                                             |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## **Quelles autres possibilités il existe**

## Déplacement de la transaction vers l'état MavibotCRM

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

Le numéro de transaction peut être obtenu dans la fenêtre d'édition du workflow MavibotCRM.

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name       | Type                    | Description                                                      |
| ---------- | ----------------------- | ---------------------------------------------------------------- |
| client\_id | Utilisez des guillemets | id du client                                                     |
| state\_id  | Utilisez des guillemets | le numéro d'état vers lequel transférer la transaction du client |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Vérification si la personne suit le compte Instagram&#x20;

<mark style="color:blue;">`GET`</mark> `https://chatter.mavibot.ai/api/<api_key>/check_insta_subscription`

Peut être appelée avec la méthode POST et la méthode GET

#### Paramètres de chemin

| Name     | Type                    | Description    |
| -------- | ----------------------- | -------------- |
| api\_key | Utilisez des guillemets | la clé d'accès |

#### Corps de la requête

| Name       | Type                    | Description                                             |
| ---------- | ----------------------- | ------------------------------------------------------- |
| user\_name | Utilisez des guillemets | le nom d'utilisateur du client que vous voulez vérifier |
| login      | Utilisez des guillemets | le login du bot qui est vérifié                         |

{% tabs %}
{% tab title="200 : OK Le champ is\_follower contient l'information indiquant si la personne le suit ou non" %}

```javascript
{
"username": "beyonce",
"account_id": "1463220603",
"avatar": "https://instagram.fhel6-1.fna.fbcdn.net/v/t51.2885-19/1060168..",
"real_name": "Beyonce",
"is_follower": true,
"status": 200
}
```

{% endtab %}
{% endtabs %}

## Vérification si le numéro de téléphone possède WhatsApp

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

**Pour utiliser la méthode, vous DEVEZ avoir connecté WhatsApp et Mavibot**

Peut être appelée avec la méthode POST et la méthode GET \
Le numéro de téléphone peut être transmis dans n'importe quel format

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

#### Corps de la requête

| Name  | Type                    | Description            |
| ----- | ----------------------- | ---------------------- |
| phone | Utilisez des guillemets | le numéro de téléphone |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

## Obtention de la liste des messageries connectées au projet (y compris group\_id)

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

La fonction renvoie le paramètre **group\_id** à chaque messagerie et c'est celui qui doit être transmis lors du chargement des clients&#x20;

Le champ **status** renvoie également pour WhatsApp, et il prend une valeur de : \
**NOT\_STARTED = 0** \
**STARTED = 1** \
**ASLEEP = 2** \
**STOPPED = 3**

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

{% tabs %}
{% tab title="200 : OK " %}

```javascript
{'project_id': 1, 
'viber': [{
        'id': 14, 
        'uri': 'salebotstage', 
        'name': 'salebotstage', 
        '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': [] 
}
```

{% endtab %}
{% endtabs %}

## Obtention de la liste des blocs à partir du schéma du bot

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

#### Paramètres de chemin

| Name     | Type                    | Description   |
| -------- | ----------------------- | ------------- |
| api\_key | Utilisez des guillemets | jeton d'accès |

{% tabs %}
{% tab title="200 : OK " %}

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

{% endtab %}
{% endtabs %}

{% hint style="success" %}
Si vous avez besoin de méthodes supplémentaires, veuillez contacter le support client&#x20;
{% 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/integrations/api/settings.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.
