# Fonctions (API) dans la calculatrice

{% hint style="warning" %}
Les fonctions API sont disponibles uniquement dans les offres « Business » et « MaviBot AI ».
{% endhint %}

## API MaviBot

<mark style="color:red;">**LÉGENDE :**</mark>\ <mark style="color:red;">**!**</mark> -Paramètres requis

### Comment envoyer un callback

#### **callback()**

{% hint style="danger" %}
Vous pouvez envoyer un callback uniquement à UN AUTRE client.

VOUS NE POUVEZ PAS envoyer un callback à VOUS-MÊME !
{% endhint %}

<details>

<summary>Description</summary>

**callback(client\_id, callback\_message)**

Paramètres :

<mark style="color:red;">**!**</mark>**&#x20;client\_id** - identifiant du client

<mark style="color:red;">**!**</mark>**&#x20;callback\_message** - texte du message de callback

</details>

<details>

<summary>Exemple</summary>

Un callback est un message système spécial que le bot reconnaît comme une commande déclenchant une action spécifique. Ce message est invisible pour l'utilisateur et n'est enregistré que dans le profil du client pour un traitement interne.

Envoyons un callback au client avec client\_id=73704021

<div data-with-frame="true"><figure><img src="/files/93d3a78d1d2b6d8a76235150981e156816dca5e6" alt="" width="563"><figcaption></figcaption></figure></div>

Ensuite, nous définissons la réponse à ce callback dans le bloc avec la condition.

</details>

<details>

<summary>Exemple de code à copier</summary>

```
callback('73704021', 'callback TEST123')

callback(client_id, 'callback TEST123')
```

</details>

### Comment envoyer un callback dans Telegram

#### **tg\_callback()**

<details>

<summary>Description</summary>

**tg\_callback(platform\_id , callback\_message,group\_id, business\_connection\_id)**

Paramètres :

<mark style="color:red;">**!**</mark>**&#x20;platform\_id** -  identifiant du client Telegram

<mark style="color:red;">**!**</mark>**&#x20;callback\_message** - texte du message de callback

&#x20;**group\_id** -  identifiant du bot Telegram

**tg\_business -** pour travailler avec des clients professionnels, la valeur « 1 » est transmise.

</details>

<details>

<summary>Exemple</summary>

Voici un exemple avec les paramètres requis :

<div data-with-frame="true"><figure><img src="/files/e119bdf74ee10e4868780e1fccd56402b85c067a" alt="" width="563"><figcaption></figcaption></figure></div>

Voici un exemple avec les paramètres facultatifs

<div data-with-frame="true"><figure><img src="/files/c02c86fdf4e2edb06bff6ce837a3a6a6afaca5f8" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Exemple de code à copier</summary>

```
tg_callback('73704021', 'callback TEST123')

tg_callback(platform_id, 'callback TEST123', None, 1)
```

</details>

### Comment ajouter une redirection de bot avec une balise en réponse à un bouton de callback ?

<details>

<summary>Description</summary>

**tg\_callback\_url\_open(callback\_query\_id, url)**

Paramètres : \ <mark style="color:red;">**!**</mark>**&#x20;callback\_query\_id** - cet identifiant vous permet d’identifier la personne qui a appuyé sur le bouton et de lui afficher une notification d’alerte,\ <mark style="color:red;">**!**</mark>**&#x20;url** - URL - spécifiant le bot et le paramètre (ressemble à : t.me/votre\_bot?start=XXXX, au lieu de votre\_bot - nom du bot)

</details>

### **Comment envoyer un message au client**

**message() | platform\_message() | whatsapp\_message()**

{% hint style="info" %}
Pour stocker un texte avec des sauts de ligne dans une variable, définissez la valeur comme suit :

`text = "First line text" + "\n" + "Second line text" + "\n" +"Third line text"`
{% endhint %}

<details>

<summary>Description</summary>

**message(client\_id, text, message\_id, timeout)**

Paramètres :\ <mark style="color:red;">**!**</mark>**&#x20;client\_id** - identifiant du client\ <mark style="color:red;">**!**</mark>**&#x20;text** - texte du message\
**message\_id** - l’ID du bloc. Si vous laissez le champ de texte vide (") et remplissez ce paramètre, le texte du bloc spécifié sera envoyé au client.

*Remarque : si vous transmettez le paramètre message\_id à la fonction message, le bloc sera quand même entièrement exécuté, et le client spécifié dans le paramètre client\_id sera déplacé vers le bloc que vous avez transmis dans message\_id.*

\
**timeout** - délai du message ou heure d’envoi programmée. Vous pouvez utiliser le paramètre timeout pour retarder l’envoi du message :\
a) Un délai en secondes (jusqu’à 3600 secondes). Si la valeur dépasse 3600, le message sera envoyé dans une heure. Si la valeur est négative, le message sera envoyé immédiatement. Exemple : timeout = 50                                                                                                                 &#x20;

b) Une date et une heure précises au format jj.mm.aaaa hh:mm, exemple : timeout = '03.04.2022 15:00'. Si une date passée est spécifiée, le message sera envoyé immédiatement.

**platform\_message(platform\_id, text, client\_type,  message\_id, timeout,group\_id)**

Paramètres :\ <mark style="color:red;">**!**</mark>**&#x20;platform\_id** -  identifiant du client dans le messager\ <mark style="color:red;">**!**</mark>**&#x20;text** - texte du message\
**client\_type -** type de messager, paramètre facultatif. S’il n’est pas spécifié, le client sera recherché dans le même messager que celui depuis lequel le bot envoie le message. S’il est spécifié, le client sera recherché dans la base de données du messager spécifié. Vous pouvez trouver les types de messager [ici.](/doc/fr/chatbot/functions/variables.md#how-to-work-with-variables)\
**message\_id** - ID du bloc. S’il est spécifié, le client recevra le message du bloc spécifié, et non la valeur du paramètre text.\
**timeout** - heure d’envoi ou délai. C’est similaire au paramètre du même nom de la fonction message().\
**group\_id** - identifiant du bot

**whatsapp\_message(phone, text, message\_id)**

Paramètres :\ <mark style="color:red;">**!**</mark>**&#x20;phone**- le numéro de téléphone du client où WhatsApp est enregistré\ <mark style="color:red;">**!**</mark>**&#x20;text** - texte du message\
**message\_id** - correspond à l’ID du bloc. Si le champ texte est laissé vide ('') et que ce paramètre est défini, le client recevra le contenu du message du bloc spécifié.

{% hint style="info" %}
Le bot WhatsApp doit être connecté au projet.
{% endhint %}

</details>

<details>

<summary>Exemple</summary>

Un exemple simple d’envoi d’un message par client\_id :

<div data-with-frame="true"><figure><img src="/files/ae81f99e73287ecea533f0560f8f9083b71c155d" alt="" width="563"><figcaption><p>Envoi d’un message par client_id</p></figcaption></figure></div>

Différentes options pour envoyer un message par client\_id :

<div data-with-frame="true"><figure><img src="/files/ea76b62136e617acd69bdacda9dc35a6e36df439" alt="" width="563"><figcaption><p>Différentes options pour envoyer un message </p></figcaption></figure></div>

Exemple d’envoi d’un message via platform\_message() :

<div data-with-frame="true"><figure><img src="/files/0a7b61845fc0e20e7b9a53ba86a0a965b1628c4c" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Exemple de code à copier</summary>

```
/*Envoi d’un message par client_id*/
message(73704021, 'Message text for client')
/*Envoi d’un message par client_id avec un délai de 30 secondes*/
message(73704021, 'Hi! Thanks for writing..','',30)
/*Envoi d’un message depuis le bloc 3190 par client_id le 03.04.2022 à 15h00*/
message(73704021, '',3190, '03.04.2022 3pm')

/*Envoi d’un message dans WhatsApp*/
whatsapp_message('79999999999', 'Message text for the client')
```

</details>

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

get\_client\_id\_by\_platform\_i&#x64;**()**

<details>

<summary>Description</summary>

**get\_client\_id\_by\_platform\_id(client\_type, platform\_id , group)**&#x20;

Après exécution, la fonction renverra le client\_id si un client correspondant aux conditions spécifiées est trouvé ; sinon, elle renverra None.

<mark style="color:red;">**!**</mark> **client\_type** - messager. Pour la valeur de client\_type, lisez [cet article](/doc/fr/chatbot/functions/variables.md).&#x20;

<mark style="color:red;">**!**</mark> **platform\_id** - ID du client dans le messager spécifié.

**group**  - est un paramètre requis si plus d’un bot de messagerie est connecté.

{% hint style="warning" %}
Si plusieurs messagers du même type sont connectés dans le projet, la recherche sera alors basée sur tous les messagers connectés de ce type.

Dans ce cas, nous recommandons de transmettre le paramètre group.
{% endhint %}

</details>

### Fonction pour les requêtes GET : requests\_get(url, answer\_type, headers, params, auth, proxy)&#x20;

<details>

<summary>Description</summary>

<mark style="color:red;">**!**</mark>**&#x20;url** - est un lien sur lequel la requête est effectuée

**answer\_type**  – est un paramètre facultatif qui définit ce qui doit être renvoyé par la réponse du serveur : ('status' – renvoie le code d’état de la réponse ; 'json' – renvoie le corps JSON de la réponse ; 'text' – renvoie le texte brut de la réponse ; toute autre valeur (y compris la valeur par défaut) renvoie une réponse au format : '{"status": status\_code, "data": data}')

**headers** - est un paramètre facultatif pour transmettre les en-têtes de la requête,&#x20;

**params** - est *get* paramètres de requête (peuvent également être inclus directement dans l’URL),

**auth** - est un paramètre facultatif utile pour l’authentification API. Si vous ne souhaitez utiliser aucun paramètre facultatif mais avez besoin du suivant, passez 0 ici.

**proxy** -  est un paramètre facultatif ; accepte une valeur : "de", qui achemine la requête via une adresse IP européenne.

</details>

### Fonctions pour les requêtes POST

<details>

<summary>Description</summary>

requests\_post(url, answer\_type, headers, data, json\_data, auth, proxy)

<mark style="color:red;">**!**</mark>**&#x20;url** - est un lien sur lequel la requête est effectuée,

**answer\_type** - est un paramètre facultatif qui définit ce qui doit être renvoyé par la réponse du serveur : ('status' – renvoie le code d’état de la réponse ; 'json' – renvoie le corps JSON de la réponse ; 'text' – renvoie le texte brut de la réponse ; toute autre valeur (y compris la valeur par défaut) renvoie une réponse au format : '{"status": status\_code, "data": data}')

**headers** - est un paramètre facultatif pour transmettre les en-têtes de la requête

**data** - est un paramètre facultatif ; représente le corps de la requête lorsque l’API ne fonctionne pas avec JSON.

&#x20;**json\_data** - est un paramètre facultatif ; représente également le corps de la requête. Vous ne devez utiliser qu’un seul de ces paramètres à la fois.

{% hint style="warning" %}
Veuillez noter : certaines configurations d’en-têtes peuvent empêcher l’envoi de la requête avec un type de corps spécifique.
{% endhint %}

**auth** - est un paramètre facultatif utile pour l’authentification API. Si vous ne souhaitez utiliser aucun paramètre facultatif mais avez besoin du suivant, passez 0 ici

**proxy** - est un paramètre facultatif ; accepte une valeur : "de", qui achemine la requête via une adresse IP européenne.

</details>

### Fonctions pour les requêtes PUT

<details>

<summary>Description</summary>

requests\_put(url, answer\_type, headers, data, auth, proxy)

<mark style="color:red;">**!**</mark>**&#x20;url** - est un lien sur lequel la requête est effectuée

**answer\_type** - est un paramètre facultatif qui définit ce qui doit être renvoyé par la réponse du serveur : ('status' – renvoie le code d’état de la réponse ; 'json' – renvoie le corps JSON de la réponse ; 'text' – renvoie le texte brut de la réponse ; toute autre valeur (y compris la valeur par défaut) renvoie une réponse au format : '{"status": status\_code, "data": data}')

**headers** - est un paramètre facultatif pour transmettre les en-têtes de la requête

**data** - est un paramètre facultatif ; représente le corps de la requête lorsque l’API ne fonctionne pas avec JSON.

**auth** - est un paramètre facultatif utile pour l’authentification API. Si vous ne souhaitez utiliser aucun paramètre facultatif mais avez besoin du suivant, passez 0 ici

proxy - est un paramètre facultatif ; accepte une valeur : "de", qui achemine la requête via une adresse IP européenne.

**data\_is\_json** est un paramètre facultatif.\
S’il est défini, les données passées dans `data` seront envoyées au format JSON.\
Pour l’activer, passez `'1'`.

</details>

### Fonctions pour les requêtes PATCH

requests\_patch(url, answer\_type, headers, data, auth, proxy)

<details>

<summary>Description</summary>

<mark style="color:red;">**!**</mark>**&#x20;url** - est un lien sur lequel la requête est effectuée

**answer\_type** - est un paramètre facultatif qui définit ce qui doit être renvoyé par la réponse du serveur : ('status' – renvoie le code d’état de la réponse ; 'json' – renvoie le corps JSON de la réponse ; 'text' – renvoie le texte brut de la réponse ; toute autre valeur (y compris la valeur par défaut) renvoie une réponse au format : '{"status": status\_code, "data": data}')

**headers** - est un paramètre facultatif pour transmettre les en-têtes de la requête

**data** - est un paramètre facultatif ; représente le corps de la requête lorsque l’API ne fonctionne pas avec JSON.

**auth** - est un paramètre facultatif utile pour l’authentification API. Si vous ne souhaitez utiliser aucun paramètre facultatif mais avez besoin du suivant, passez 0 ici

proxy - est un paramètre facultatif ; accepte une valeur : "de", qui achemine la requête via une adresse IP européenne.

</details>

### Fonctions pour les requêtes DELETE

requests\_delete(url, answer\_type, headers, data, json\_data, auth, proxy)

<details>

<summary>Description</summary>

<mark style="color:red;">**!**</mark>**&#x20;url** - est un lien sur lequel la requête est effectuée

**answer\_type** - est un paramètre facultatif qui définit ce qui doit être renvoyé par la réponse du serveur : ('status' – renvoie le code d’état de la réponse ; 'json' – renvoie le corps JSON de la réponse ; 'text' – renvoie le texte brut de la réponse ; toute autre valeur (y compris la valeur par défaut) renvoie une réponse au format : '{"status": status\_code, "data": data}')

**headers** - est un paramètre facultatif pour transmettre les en-têtes de la requête

data -  est un paramètre facultatif ; représente le corps de la requête lorsque l’API ne fonctionne pas avec JSON.

json\_data - est facultatif et peut également être utilisé comme corps de la requête. Cependant, une seule option doit être utilisée à la fois

auth - est un paramètre facultatif utile pour l’authentification API. Si vous ne souhaitez utiliser aucun paramètre facultatif mais avez besoin du suivant, passez 0 ici

proxy - est un paramètre facultatif ; accepte une valeur : "de", qui achemine la requête via une adresse IP européenne.

</details>

### Fonction pour obtenir le nom du bloc à partir de son ID

<details>

<summary>Description</summary>

get\_block\_name\_by\_id(block\_id)

<mark style="color:red;">**!**</mark>**&#x20;block\_id** — identifiant du bloc (id)&#x20;

</details>


---

# 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/chatbot/functions/api.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.
