---
title: Webhooks
description: >-
  Les automatisations sortantes vers un autre système : modèles de webhook HubSpot, Zoho CRM, Pipedrive et GoHighLevel, et webhook personnalisé.
---
Un webhook est un flux sortant : un ou plusieurs appels HTTP que Callab adresse à un
autre système. Il se crée depuis le même bouton **Add Flow** (Ajouter un flux) qu'une
automatisation entrante, sous l'onglet **Webhook**, et apparaît sous **Automations**
(Automatisations) avec le filtre **Outbound** (Sortant). Pour le sens entrant, voir
[Automatisations](/fr/operate/automations) ; pour un outil que l'agent appelle en cours
de conversation, voir [Live Webhook](/fr/build/tools/live-webhook).

## Modèles

**Add Flow**, puis l'onglet **Webhook**, affiche **Choose Webhook Template**
(Choisir un modèle de webhook). Chaque modèle correspond à un appel prêt à l'emploi
vers un CRM connecté :

| Système | Modèles |
|---|---|
| HubSpot | **Update Contact**, **Create Deal**, **Create Company**, **Search Companies**, **Get Deal** |
| Zoho CRM | **Create Note**, **Search Contacts**, **Create Account**, **Get Contact**, **Create Deal** |
| Pipedrive | **Get Person**, **Search Persons**, **Create Note**, **Get Deal**, **Update Person** |
| GoHighLevel | **Create Task**, **Create Contact**, **Update Opportunity**, **Get Pipelines**, **Search Opportunities** |

La liste est paginée (**Previous**, **Next**) et permet la recherche.

![Choose Webhook Template, première page.](/media/operate/webhook-templates.webp)

Le choix d'un modèle transforme la même boîte de dialogue en **Clone Webhook**
(Cloner le webhook), avec le champ **Webhook Name** (Nom du webhook) prérempli (le
nom du modèle suivi de `(Copy)`) et une variable prédéfinie, `access_token`, réglée
sur `{{access_token}}`. **Clone Webhook** l'enregistre ; **Back** (Retour) revient à
la liste.

## Start from Scratch

**Start from Scratch** (Partir de zéro) sous l'onglet **Webhook** ouvre
**Create Custom Webhook** (Créer un webhook personnalisé), un assistant en 2 étapes.

<video src="/media/operate/custom-webhook-wizard.mp4" autoplay loop muted playsinline></video>

*Create Custom Webhook : Details, puis Steps.*

### Étape 1 : Details

**Basic Information** (Informations de base) regroupe le **Workspace** et le
**Webhook Name**. Les **Predefined Variables** (Variables prédéfinies) sont des
valeurs statiques telles que des clés d'API, disponibles pour toutes les étapes et
référencées sous la forme `{{variableName}}` ; **Add Variable** en ajoute une.

### Étape 2 : Steps

**Webhook Steps** (Étapes du webhook) : **Add Step** ouvre **Add Integration Step**
(Ajouter une étape d'intégration), le même formulaire qu'une étape d'intégration :
**Method**, **Depends On Step**, **URL**, **Headers**, **Timeout (sec)**,
**Retry Limit**, **Total Step Timeout (sec)** et une **Success Condition**
(Condition de réussite) facultative avec un code de statut attendu, un chemin de clé
dans la réponse et une valeur attendue. Les champs sont décrits dans
[Automatisations](/fr/operate/automations#étape-2--steps--variables).

Les **Custom Variables** (Variables personnalisées) transmettent des données entre
les étapes, exactement comme dans une intégration. Un webhook n'a ni variable
`results` obligatoire ni étape de mappage.

Deux boutons ferment l'assistant : **Test Flow** exécute les étapes une fois pour
vous permettre de vérifier la réponse, **Save** crée le webhook.

![Étape 2 avec le formulaire Add Integration Step ouvert.](/media/operate/custom-webhook-step.webp)

## Vérifier

- Le webhook apparaît sous **Automations** avec le filtre **Outbound**.
- **Test Flow** renvoie le code de statut attendu. Il figure aussi dans le menu
  d'actions de la ligne du webhook sous **Automations**, à côté de **View History**
  (Voir l'historique), qui ouvre les **Integration History Logs** (Journaux
  d'historique d'intégration) avec le résultat de chaque exécution.

## Dépannage

- **Add est désactivé à côté d'un en-tête.** La clé et la valeur sont toutes deux
  requises avant que **Add** ne s'active.
- **L'étape expire.** Augmentez **Timeout (sec)** pour un point de terminaison lent,
  et assurez-vous que **Total Step Timeout (sec)** couvre toujours l'ensemble des
  nouvelles tentatives.
- **L'appel d'un modèle renvoie 401.** `{{access_token}}` n'est pas défini :
  connectez le système sous **Connections** (Connexions) ou remplacez la valeur de la
  variable par un token.

## Voir aussi

- [Automatisations](/fr/operate/automations)
- [Outil Live Webhook](/fr/build/tools/live-webhook)
- [Présentation des intégrations](/fr/operate/integrations/overview)
