# Boutons et pièces jointes

## Comment travailler avec les boutons

{% hint style="info" %}
Instagram ne prend pas en charge l’envoi de boutons intégrés et de réponse en même temps
{% endhint %}

### Clavier **(réponse)**

Instagram prend en charge jusqu’à 11 boutons de réponse. Les boutons ne peuvent être disposés qu’en une seule ligne

Exemple :

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

Résultat :

<div data-with-frame="true"><figure><img src="/files/2c12cd32cd1d87424e2042f3eb34d16039e11248" alt="" width="375"><figcaption></figcaption></figure></div>

### Dans le texte (intégré)

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

<div data-with-frame="true"><figure><img src="/files/74b8713f21f395b596359d04a1bf0f8852d19d98" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="danger" %}
Instagram ne prend pas en charge plus de 3 boutons intégrés
{% endhint %}

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

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

Les boutons peuvent renvoyer vers des ressources tierces. Visuellement, ces boutons sont identiques.

Pour des instructions sur la configuration des boutons, consultez la **Boutons** section.

## Comment travailler avec les pièces jointes

Vous pouvez envoyer des pièces jointes dans le message. Pour plus d’informations sur les pièces jointes prises en charge et sur la manière de les ajouter, consultez la [Envoi de pièces jointes](/doc/fr/chatbot/builder/attachments/tab.md) section de la documentation.

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

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

{% hint style="warning" %}
Vous pouvez téléverser des pièces jointes dans un bloc soit sous forme de fichier, soit en fournissant un lien vers le fichier.

Les fichiers vidéo téléversés ne doivent pas dépasser 20 Mo, tandis que les fichiers audio et image ne doivent pas dépasser 5 Mo.
{% endhint %}

**Exigences relatives aux pièces jointes :**

| Type de fichier multimédia | Format pris en charge | Taille maximale |
| -------------------------- | --------------------- | --------------- |
| Audio                      | M4A                   | 5 Mo            |
| Image                      | JPEG, PNG             | 5 Mo            |
| Vidéo                      | MP4                   | 20 Mo           |

{% hint style="warning" %}
Il est **NOT** il est recommandé d’utiliser le format MP4 pour les pièces jointes audio. De plus, **aucun son ne sera envoyé du tout au format MP3**.
{% endhint %}

## Comment créer un carrousel

Le carrousel peut contenir de 2 à 10 cartes (diapositives).

<div data-with-frame="true"><figure><img src="/files/6301d59a1c2c339159a7048470507b057561e1ec" alt="" width="375"><figcaption></figcaption></figure></div>

Prenons un carrousel de 3 cartes comme exemple. Pour créer les cartes, vous devez saisir ce qui suit dans le **Calculatrice** :

p = \[{"title":"TITRE", "description": "DESCRIPTION DE L'IMAGE 1", "image": "LIEN VERS L'IMAGE 1", "buttons":\[{"text":"TEXTE DU BOUTON 1"}]},{"title":"TITRE", "description": "DESCRIPTION DE LA CARTE 2", "image": "LIEN VERS L'IMAGE 2", "buttons":\[{"text":"TEXTE DU BOUTON 2"}]}, {"title":"TITRE", "description": "DESCRIPTION DE LA CARTE 3", "image": "LIEN VERS L'IMAGE 3", "buttons":\[{"text":"TEXTE DU BOUTON 3"}]}]                                              &#x20;

r = send\_carousel(p, '')

<div data-with-frame="true"><figure><img src="/files/265021d2eb8a2e3ec6246dca894629b60d592f84" alt=""><figcaption></figcaption></figure></div>

Copiez le lien :

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

Le résultat :

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

{% hint style="warning" %}
Veuillez noter : l’expression `r = send_carousel(p, '')` doit commencer sur une nouvelle ligne dans le Calculateur.
{% endhint %}

Cela signifie que vous devez attribuer à une variable un tableau contenant le titre, la description, l’image et les boutons `p` (nommez la variable différemment si vous le souhaitez). Ensuite, utilisez cette variable dans le `send_carousel(p, "")` .

Il laisse `#{None}` dans le **"Réponse"** .

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

{% hint style="info" %}
Vous pouvez ajouter des liens aux boutons dans les cartes du carrousel. Lorsqu’un utilisateur clique sur le bouton, il sera redirigé vers le lien.
{% endhint %}

Pour ajouter un lien à un bouton sur la carte, incluez-le dans le tableau :

p = \[{"title":"titre", "description": "DESCRIPTION DE LA CARTE 1", "image": "LIEN VERS L'IMAGE 1", "buttons":\[{"text":"TEXTE DU BOUTON 1", "url":"LIEN DU BOUTON" }]}]

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

{% hint style="info" %}
Un autre paramètre facultatif, `payload`, a été ajouté aux boutons des cartes du carrousel. Il n’est pas affiché au client, mais vous permet d’analyser le choix du client.
{% endhint %}

Comme les cartes de carrousel nécessitent souvent des boutons avec un texte identique, un paramètre `payload` supplémentaire a été introduit. Ce paramètre n’est pas visible par le client, mais il vous permet d’analyser sa sélection.

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

<div data-with-frame="true"><figure><img src="/files/5f0583c739271331cb7f600f72b9cf6522fb9421" alt=""><figcaption></figcaption></figure></div>

Faites attention à son utilisation correcte :

p = \[{"title":"titre", "description": "DESCRIPTION DE LA CARTE 1", "image": " 1", "buttons":\[{"text":"TEXTE DU BOUTON 1","payload":"1"}]},{"title":"titre", "description": "DESCRIPTION DE LA CARTE 2", "image": "LIEN VERS L'IMAGE 2", "buttons":\[{"text":"TEXTE DU BOUTON 1","payload":"2"}]}, {"title":"titre", "description": "DESCRIPTION DE LA CARTE 3", "image": "LIEN VERS L'IMAGE 3", "buttons":\[{"text":"TEXTE DU BOUTON 1"}]}]

Le `payload` le paramètre peut être omis, comme illustré dans la figure ci-dessus.

## Comment définir des phrases d’introduction

Les phrases d’introduction permettent à une personne de commencer une discussion avec une entreprise à l’aide d’une liste de demandes fréquemment posées. Vous pouvez en définir jusqu’à quatre.

<div data-with-frame="true"><figure><img src="/files/118392ba96ddecc49e534b6ef44db0130ea32a76" alt="" width="375"><figcaption></figcaption></figure></div>

Pour configurer des phrases d’introduction, vous devez activer un curseur dans le compte Instagram connecté, dans la section « Canaux ».

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

Après avoir cliqué sur ce curseur, une fenêtre contextuelle apparaît, dans laquelle vous pouvez définir les phrases d’introduction nécessaires.

<div data-with-frame="true"><figure><img src="/files/78f8551cdfdf8875b11417f595443843057cfee7" alt=""><figcaption></figcaption></figure></div>

Ensuite, suivez ces étapes :

1. Configurez des réponses à des phrases spécifiques dans votre tunnel.
2. Placez les blocs nécessaires dans l’état « Démarrer ».
3. Saisissez le texte de la phrase d’introduction dans le déclencheur.

{% hint style="warning" %}

#### Veuillez noter !&#x20;

Les phrases d’introduction apparaissent pour les utilisateurs qui n’ont pas encore contacté votre compte Instagram auparavant (ou si tout l’historique des discussions précédentes a été supprimé).
{% endhint %}

## Configurer une réponse par mot-clé dans Direct

Pour répondre aux clients dans les messages Direct en fonction de mots-clés, vous pouvez utiliser un bloc avec un déclencheur (blocs Démarrer et Déclencheur) et saisir les mots auxquels vous souhaitez que votre bot réponde dans le champ Déclencheur :

<div data-with-frame="true"><figure><img src="/files/563307ddb7173860deecca87be7ba83cb6c188bb" alt="" width="375"><figcaption></figcaption></figure></div>

Le choix d’une correspondance se base sur la présence de mots-clés ou sur une correspondance exacte (options recommandées).

Dans l’onglet **« Texte du message »** champ, saisissez la réponse du bot que l’utilisateur recevra. Vous pouvez également ajouter des pièces jointes, des boutons et des liens.

## **Comment vérifier si un utilisateur est abonné à votre compte**

Il existe deux méthodes pour **vérifier** l’état de l’abonnement :

1\. Vérification de l’abonnement à l’aide du calculateur

**result = check\_insta\_subscription()**

`résultat` est le nom de la variable dans laquelle le **vérifier** résultat sera stocké (vous pouvez le renommer si nécessaire).

La fonction renvoie :

* **`True`** si l’utilisateur est abonné.
* **`Faux`** si l’utilisateur n’est pas abonné.

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

La vérification doit être effectuée dans le **champ « Variable »** champ, à la fois sur la flèche et dans le bloc.

* `result == True` – une expression dans le **champ « Variable »** champ si le client est abonné au compte.
* `result == False` – une expression si le client n’est pas abonné.

Vous pouvez également utiliser d’autres expressions de comparaison, par exemple :\
`result != False` (result n’est pas égal à False, ce qui signifie que l’utilisateur est abonné au compte).

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

<div data-with-frame="true"><figure><img src="/files/542f1c720c958464e37066b82e23d9d9bc9cd73e" alt=""><figcaption></figcaption></figure></div>

2. Données de vérification de la carte client

Lorsqu’un utilisateur interagit avec le bot, les variables `follow` et `followers` sont affichées et vérifiées dans la carte client (dans la sous-section **Variables client** ).

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

**`follow` variable** – vérifie l’état de l’abonnement. Il prend la valeur `True` si le client est abonné au compte, `Faux` s’il n’est pas abonné, et `None` si le compte du client est fermé.

**`verified`** – indique si l’utilisateur a un compte vérifié (coche bleue). Il est `True` si vérifié et `Faux` sinon.

**`followers`** – affiche le nombre d’abonnés/de followers du client.

Pour vérifier l’état de l’abonnement ou limiter la progression dans le tunnel, vous pouvez utiliser la **`follow`** variable dans les blocs de condition ou les connecteurs de flèche dans le **champ « Variable »** .

Exemple :

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

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

Dans l’onglet **Déclencheur** champ, saisissez n’importe quel mot qui déclenchera votre tunnel.

Dans l’onglet **variable de comparaison**, écrivez :\
`follow == True`\
OU\
`follow != False`

* Dans le premier cas, vous vérifiez si la personne est abonnée à votre compte.
* Dans le deuxième cas, vous vérifiez si la personne est **ne pas** abonnée à votre compte.

{% hint style="warning" %}
Veuillez noter que les `True` et `Faux` états doivent commencer par une majuscule. Sinon, la vérification ne fonctionnera pas correctement.
{% endhint %}

Pour envoyer différents messages en fonction de l’état de l’abonnement, vous devez créer deux blocs avec des conditions opposées. Si vous préférez une approche moins encombrée, nous vous recommandons plutôt de définir les conditions sur les connexions (flèches).

**Déclencheurs sur les connexions :**

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

Saisissez le déclencheur dans la **champ « Variable »** ligne de la flèche :\
`follow == True` ou `follow != False`

Si la condition du déclencheur est remplie, le client poursuit son parcours dans le tunnel.

Si le client n’est pas abonné, il passe au bloc où les conditions de vérification ne sont pas remplies (`follow == False` ou `follow != True`).

Si vous souhaitez que la vérification soit dynamique, nous vous recommandons d’ajouter un bouton — par exemple, **"Je me suis abonné"**— afin que la vérification puisse être effectuée et que la personne puisse passer à l’étape suivante.

{% hint style="danger" %}

#### Attention

Nous ne **NOT** recommandons pas de définir un délai sans bouton sur une flèche fermée, car la personne recevra des messages en continu, ce qui épuisera rapidement votre limite de messages.
{% 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/chatbot/messageries/instagram/buttons.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.
