> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ouraicalling.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Outils et webhooks

> Donnez des outils aux assistants pendant les appels et recevez les résultats après eux

## Outils pendant l'appel

Les assistants peuvent agir, pas seulement parler. Deux mécanismes :

### Outils HTTP (Flow Builder)

Les [nœuds Outil](/flow-builder/nodes#tool) appellent vos points de terminaison HTTP en cours de conversation. Vous définissez un schéma JSON pour les paramètres : le LLM les extrait de la conversation, et votre point de terminaison renvoie les données que l'assistant restitue à l'oral. Prend en charge l'exécution asynchrone et les phrases d'attente pour les backends lents.

### Serveurs MCP sur l'assistant

Attachez des **serveurs MCP externes** à un assistant (URL, en-têtes d'authentification optionnels, liste blanche d'outils optionnelle) : l'assistant utilise leurs outils en direct pendant les appels. Cela ouvre tout l'écosystème MCP (Zapier MCP, les serveurs MCP internes de votre entreprise) sans écrire la moindre colle HTTP :

* Le transport est détecté automatiquement (HTTP en streaming ou SSE).
* Une liste blanche vide signifie que *tous* les outils de ce serveur sont autorisés.
* Les résultats d'outils trop volumineux sont tronqués en toute sécurité.
* Un serveur MCP injoignable ne bloque jamais un appel : il est ignoré et consigné comme événement d'appel.

Limité selon le plan : le paramètre `connect_ai_mcp`, et les serveurs MCP comptent dans `max_tools` au même titre que les nœuds Outil du Flow.

### Outils réutilisables (à configurer une fois, à utiliser partout)

Au-delà des nœuds Outil du Flow, vous pouvez définir des **outils réutilisables** sur la page *Outils* du tableau de bord — outils API HTTP ou serveurs MCP externes, créés une seule fois et attribués à autant d'assistants que vous le souhaitez. Dans l'éditeur d'assistant, ouvrez **Paramètres → Outils** et activez les outils que cet assistant peut appeler ; les attributions sont enregistrées immédiatement.

Ces mêmes attributions sont aussi disponibles par voie programmatique :

* **API REST :** [`GET`/`POST /tools`, `GET`/`PATCH`/`DELETE /tools/{id}`](/api-reference/introduction), `GET /assistants/{id}/tools`, `PUT /assistants/{id}/tools` (corps `{"tool_ids": [...]}` — l'ensemble cible complet).
* **MCP :** [`list_tools`, `get_tool`, `create_tool`, `update_tool`, `delete_tool`, `get_assistant_tools`, `set_assistant_tools`](/api/mcp#available-tools).

Les valeurs secrètes des configurations d'outils (en-têtes d'authentification, tokens) ne quittent jamais le serveur — toutes les réponses les masquent sous la forme `•••`.

## Webhooks après l'appel

Lorsqu'un appel se termine, la plateforme vous transmet le résultat — le moyen standard d'alimenter les CRM et les automatisations en aval.

### `call.completed`

Envoyé à deux types de destinataires :

1. **URL de webhook par assistant** — configuration rapide, non signée.
2. **Webhooks d'espace de travail** — gérés de façon centralisée, **signés** en HMAC-SHA256 sur le corps brut :

```text theme={null}
X-Famulor-Signature: sha256=<hex digest>
```

Vérifiez la signature en calculant le HMAC du corps brut de la requête avec votre secret de webhook, puis en comparant les empreintes.

### Contenu de la charge utile

La charge utile inclut les métadonnées de l'appel (assistant, direction, statut, durée, horodatages), la **transcription**, les **variables de Flow** collectées (via les [nœuds Collecte](/flow-builder/nodes#collect)), le contexte lead/campagne pour les appels de campagne, ainsi que des liens vers des artefacts comme l'enregistrement.

<Tip>
  Répondez en `2xx` rapidement (en moins de quelques secondes) et traitez la suite de façon asynchrone. Les réponses autres que 2xx sont considérées comme des échecs de livraison.
</Tip>

## Interroger plutôt que recevoir

Tout ce qu'un webhook fournit peut aussi être récupéré via l'[API REST](/api-reference/introduction) (`GET /calls`, `GET /calls/{id}`) ou les [outils MCP](/api/mcp#available-tools) (`list_calls`, `get_call`) — utile pour les tâches de réconciliation et les rattrapages de données.
