# Approbation des actions par l'équipe : une personne approuve avant que l'agent agisse

> Faites attendre une action API ou une étape de procédure jusqu'à ce qu'une personne de votre équipe l'approuve. L'agent indique au visiteur que sa demande est en cours d'examen, et le résultat est publié dans le chat.

Certaines actions ne devraient pas s'exécuter sur la seule décision de l'agent, comme un remboursement, une résiliation ou un avoir. Activez **Requires team approval** pour une [action API](/fr/docs/api-actions) ou une étape de [procédure](/fr/docs/procedures), et l'agent ne l'exécute plus de lui-même : l'appel attend sur la page **Approvals** jusqu'à ce qu'une personne de votre équipe l'approuve ou le refuse.

- L'agent indique au visiteur que sa demande est en cours d'examen et poursuit la conversation comme d'habitude.
- Une approbation exécute l'action une fois, avec exactement les paramètres qui attendaient. L'IA n'est pas sollicitée de nouveau.
- Un refus signifie qu'elle ne s'exécute jamais. Le visiteur en est informé, avec votre raison si vous en donnez une.
- Une demande que personne ne tranche à temps expire et ne s'exécute pas non plus.

> L'approbation par l'équipe fait partie des offres Pro et Enterprise. Voir [Offres](#offres).

## Offres

| | Free | Starter | Pro | Enterprise |
| --- | --- | --- | --- | --- |
| Approbation des actions par l'équipe | Non | Non | Oui | Oui |

Avec Free et Starter, l'interrupteur ne peut pas être activé. Après un passage à une offre inférieure, les actions et les étapes sur lesquelles il est activé le conservent et peuvent toujours être modifiées, mais **l'agent ne les exécute pas depuis le chat** : il indique au visiteur qu'il ne peut pas faire cela ici. Les demandes faites avant le changement d'offre attendent toujours sur la page **Approvals** et peuvent être tranchées.

## L'activer

**Pour une action API :** ouvrez l'action dans l'onglet **Actions**, allez dans **3. When the AI should use it**, activez **Requires team approval** et choisissez quand une demande expire : après 1 heure, 4 heures, 24 heures (par défaut) ou 3 jours. Enregistrez l'action. Elle affiche un badge **Needs approval** dans la liste. Seules les actions côté serveur peuvent demander une approbation ; les actions côté client et les boutons ne le peuvent pas.

**Pour une étape de procédure :** dans une étape **Call an action**, cochez **Requires team approval** et choisissez quand une demande expire. L'interrupteur de l'action elle-même compte aussi : une action marquée **Requires team approval** attend une approbation dans chaque étape de procédure qui l'appelle, avec le délai d'expiration de l'action.

Si **Ask the visitor to confirm first** est aussi coché, le visiteur confirme d'abord, et la demande part ensuite à votre équipe.

## Ce que voit le visiteur

Quand l'agent appelle l'action, rien n'est envoyé à votre API. L'agent indique au visiteur, dans sa langue, que la demande a été transmise à votre équipe pour examen et qu'il verra le résultat dans le chat. Le visiteur peut continuer à parler d'autre chose en attendant.

Quand la demande est tranchée, intoCHAT publie un message dans la conversation, dans la langue du visiteur (anglais, allemand, français, italien ou espagnol) :

| Résultat | Message (en français) |
| --- | --- |
| Approuvée, et l'action a réussi | « Bonne nouvelle : notre équipe a approuvé votre demande, et elle a été effectuée. » |
| Approuvée, mais l'action a échoué | « Notre équipe a approuvé votre demande, mais elle n'a pas pu être effectuée pour le moment. … » |
| Refusée | « Notre équipe a examiné votre demande et n'a pas pu l'approuver. » suivi de « Motif : … » quand vous en donnez un |
| Expirée | « Notre équipe n'a pas pu examiner votre demande à temps, elle n'a donc pas été effectuée. … » |

La langue est déterminée par ce que le visiteur a écrit, ou par la **Reply language** de l'agent quand elle est toujours utilisée. Un chat ouvert affiche le message en 15 secondes environ ; sinon, le visiteur le voit la prochaine fois qu'il ouvre le chat. L'agent connaît aussi le résultat au message suivant du visiteur.

Une conversation peut avoir jusqu'à 3 demandes en attente à la fois. Si l'agent appelle de nouveau la même action avec les mêmes paramètres pendant qu'elle attend, aucune deuxième demande n'est créée.

## Approuver ou refuser

Les demandes apparaissent sur la page **Approvals** de la barre latérale, avec un badge indiquant le nombre de demandes en attente. Utilisez **Agent** pour voir les demandes d'un seul agent.

Chaque demande en attente affiche l'action, l'agent, la procédure si elle en vient, le moment où elle a été faite et celui où elle expire, ses paramètres et un lien vers la conversation.

- **Approve** vous demande de confirmer, puis exécute l'action avec exactement les paramètres affichés et informe le visiteur du résultat. Si l'action échoue, la demande affiche **Approved, failed** avec l'erreur, et le visiteur apprend qu'elle n'a pas pu être effectuée.
- **Reject** demande une raison facultative, jusqu'à 500 caractères, que le visiteur voit dans son chat.

Deux personnes ne peuvent pas trancher toutes les deux : la première qui clique décide, et l'autre voit « Already decided ». Une action ne s'exécute jamais deux fois pour une même demande.

**Recent decisions** liste les 50 dernières décisions, avec qui a décidé, quand, la raison et le résultat.

### Qui peut décider

Toutes les personnes dont le rôle peut modifier les actions de l'agent : le propriétaire, les admins et les editors, ainsi que les [rôles personnalisés](/fr/docs/team) avec **Edit** sur **Actions & procedures**. Les membres limités à certains agents ne voient que les demandes de ces agents. Les viewers ne peuvent pas ouvrir la page. Chaque approbation et chaque refus sont enregistrés dans le [journal d'audit](/fr/docs/audit-log).

### Paramètres et secrets

La page, les e-mails, Slack et les webhooks affichent chaque paramètre par son nom. Une valeur dont le nom ou la forme ressemble à un identifiant, comme un paramètre appelé `api_key` ou `password`, un bearer token ou une longue clé, est affichée comme **Hidden**. Les en-têtes et l'authentification de votre action ne font jamais partie d'une demande : intoCHAT n'enregistre que les paramètres et construit la requête à partir de l'action enregistrée au moment de l'exécution.

## Notifications

Quand une demande est faite :

- **E-mail** à toutes les personnes qui peuvent décider pour cet agent (voir [Qui peut décider](#qui-peut-decider)), avec les paramètres et un lien vers la page **Approvals**. Chacun peut les désactiver sous **Notifications** dans les réglages de son compte (**Approval requests**). Jusqu'à 30 e-mails de demande par agent partent chaque heure ; les demandes au-delà attendent tout de même sur la page.
- **Slack** : l'alerte **Approval request**, si vous avez connecté les [alertes Slack](/fr/docs/lead-alerts-and-export#alertes-slack) et l'avez cochée.
- **Webhooks** : l'événement `action_approval.requested`, et `action_approval.decided` quand la demande est approuvée, refusée ou expire. Voir [Webhooks](/fr/docs/webhooks#donnees-d-approbation-d-action).
- **Inbox** : la conversation entre dans l'[Inbox](/fr/docs/inbox) avec le statut **Open**, sauf si elle y est déjà au statut Open ou Pending.

## Procédures

Une étape de procédure qui attend une approbation reste l'étape en cours. Appeler de nouveau l'action ne crée pas de deuxième demande, et l'agent continue d'aider le visiteur pour d'autres questions sans arrêter la procédure.

- **Approuvée et réussie :** la procédure reprend à l'étape suivante, au message suivant du visiteur. Si l'étape suivante est une étape **End** avec un message, l'agent le dit à ce moment-là ; s'il s'agit d'une étape **End** sans message, ou s'il n'y a plus d'étapes, la procédure est terminée.
- **Approuvée mais en échec, refusée ou expirée :** la procédure s'arrête.
- Si le visiteur annule et que l'agent arrête la procédure pendant qu'une demande attend, si une autre procédure démarre, ou si vous supprimez la procédure ou la modifiez de sorte que l'étape n'existe plus ou appelle une autre action, la demande est retirée. Elle apparaît comme **Rejected** avec « Withdrawn when the procedure ended in the chat » et ne s'exécute jamais : cliquer sur **Approve** ne fait alors que la retirer. Aucun message n'est publié, puisque le chat est déjà passé à autre chose.

## Expiration

Une demande expire au moment que vous avez choisi. L'expiration est vérifiée chaque fois que la conversation se poursuit, que la page **Approvals** est ouverte ou que le chat est ouvert, ainsi qu'une fois par jour pour toutes les demandes. Une demande expirée ne s'exécute jamais, et le visiteur en est informé.

## Limites

- Les demandes nécessitent une conversation enregistrée : dans un chat temporaire, une action qui demande une approbation ne s'exécute pas du tout.
- Dans le **Playground**, les demandes sont réelles : elles apparaissent sur la page **Approvals** et notifient votre équipe, et une approbation exécute votre véritable action.
- Dans les tests avec clients simulés (**Playground → Tests**), rien n'est demandé : l'agent apprend que la demande a été faite.
- Dans les chats passant par l'[API REST](/fr/docs/rest-api), le message de résultat est enregistré dans la conversation, où votre intégration peut le lire.
- Dans les conversations [Slack](/fr/docs/slack-agent) et par [e-mail](/fr/docs/email-agent), le message de résultat est enregistré dans la conversation mais n'est ni publié dans le fil ni envoyé par e-mail ; l'agent en informe la personne à son message suivant.
- Une approbation exécute l'action comme l'agent l'aurait fait, dans son délai de 30 secondes, avec le visiteur vérifié et le contact de la conversation pour les variables `{{user.*}}` et `{{contact.*}}`. Si l'action a été supprimée, désactivée ou transformée en action côté client entre-temps, l'approbation échoue et le visiteur en est informé.

## Étapes suivantes

- Configurez l'action : [Actions API](/fr/docs/api-actions).
- Intégrez-la dans un parcours étape par étape : [Procédures](/fr/docs/procedures).
- Recevez les événements dans vos outils : [Webhooks](/fr/docs/webhooks) et [alertes Slack](/fr/docs/lead-alerts-and-export#alertes-slack).
