# Outils

Laissez l'assistant agir sur les systèmes de votre client — réserver, rechercher, passer la main — pas seulement parler

> Full REST + WebSocket API reference: https://api.happ.tools/reference

Les outils permettent à l'assistant de *faire* des choses : chacun est une fonction que l'IA peut appeler en pleine conversation — votre webhook, ou un outil fourni par Happ.

<ToolsPageDemo />

## Ajouter un outil [#add-a-tool]

1. Ouvrez l'onglet **Outils** dans un assistant.
2. **Webhook** — requête HTTP vers votre API. Définissez le nom, la description, le schéma des paramètres, l'URL, la méthode et un secret partagé. Exemples : `create_reservation` (POST), `lookup_customer` (GET).
3. **Intégrés** — aucune configuration, chaque assistant les reçoit : `searchKnowledge` (recherche vectorielle dans la base de connaissances rattachée), `turnOffAiMode` (transfère la conversation à un opérateur humain avec tout le contexte), `searchPreviousConversations` (retrouve ce dont ce client a parlé auparavant) et `sendImage` (envoie une image de la base de connaissances dans la conversation).
4. Rédigez des descriptions qui expliquent *quand* appeler l'outil, pas seulement ce qu'il fait — l'IA voit le nom, la description et le schéma des paramètres dans son prompt.
5. Cliquez sur **Vérifier** sur n'importe quel outil pour lancer un appel de test et examiner la réponse.

L'IA remplit les paramètres requis à partir du contexte (en demandant d'abord au client si une information manque) et les appels d'outils sont récursifs — les résultats alimentent le tour suivant, elle peut donc enchaîner plusieurs outils dans une seule réponse.

## Exemple d'appel webhook [#example-webhook-call]

POST vers votre endpoint avec les paramètres collectés plus `chatId` :

```json
{ "table_id": "T-12", "time": "2026-05-18T19:30:00Z", "guests": 4, "phone": "+380501234567", "chatId": "chat-uuid" }
```

Renvoyez un JSON court que l'IA peut reformuler :

```json
{ "result": "Booking confirmed. Confirmation number #12345." }
```

Donnez un secret à l'outil et chaque appel porte `Authorization: Basic <secret>`. Les appels avec un corps (POST, PUT, PATCH) portent aussi `X-Signature: sha256=<hex>` — HMAC-SHA256 du corps brut ; recalculez-le avant traitement. Un outil GET envoie ses paramètres dans la query string et ne porte aucune signature.

**API :** [api.happ.tools/reference](https://api.happ.tools/reference)

## Ensuite [#next]

* [Base de connaissances](/docs/agents/knowledge) — laissez-le chercher l'information avant d'agir
* [Contrôle de l'IA](/docs/workspace/ai-control) — comment `turnOffAiMode` passe la main, et quand l'IA se réactive
* [Canaux](/docs/integrations/messengers) — où les appels d'outils ont lieu : Telegram, Instagram, WhatsApp, voix
