---
title: Automatisations
description: >-
  Construisez un flux d'intégration entrant depuis un modèle ou de zéro :
  réglages et relances, étapes HTTP et variables, puis mappage du résultat.
---
**Automations** (Automatisations) constitue la moitié inférieure d'**Integrations**
(Intégrations), sous **Connections** (Connexions) dans la barre latérale. Une
automatisation est un flux d'appels HTTP que Callab exécute pour vous. Les flux
entrants récupèrent des données, généralement des contacts issus d'un CRM ; les flux
sortants envoient des données et sont traités dans [Webhooks](/fr/operate/webhooks).
Cette page porte sur le type entrant.

:::note[Avant de commencer]
Un flux qui lit un CRM nécessite un jeton d'accès pour celui-ci. Connectez d'abord le
système sous **Connections** ([Vue d'ensemble des intégrations](/fr/operate/integrations/overview))
ou préparez une clé d'API à enregistrer comme variable prédéfinie.
:::

## Add Flow

**Add Flow** (Ajouter un flux) ouvre **Choose Integration Template** (Choisir un
modèle d'intégration). En haut, **Start from Scratch** (Partir de zéro) crée une
intégration personnalisée avec votre propre configuration. En dessous, deux onglets :
**Integration** liste les modèles entrants, **Webhook** liste les modèles sortants.
Un champ de recherche filtre par nom, et la liste affiche 10 modèles par page avec
**Previous** (Précédent) et **Next** (Suivant).

Les modèles entrants sont **HubSpot - Bring Contacts**, **Zoho CRM - Bring Contacts**,
**Zoho CRM - Bring Leads**, **Pipedrive - Bring Persons**, **GoHighLevel - Bring
Contacts** et **Google Sheets - Bring Contacts**.

![Choose Integration Template, avec Start from Scratch et les modèles entrants.](/media/operate/add-flow-templates.webp)

### À partir d'un modèle

Le choix d'un modèle transforme la même boîte de dialogue en **Clone Integration**
(Cloner l'intégration) ; **Back** (Retour) revient à la liste. Elle est préremplie :
**Integration Name** (Nom de l'intégration, soit le nom du modèle suivi de `(Copy)`),
**Tags** (obligatoire, par exemple `hubspot_contacts`), **Category** (Catégorie, le
nom du système) et une variable prédéfinie, `access_token`, dont la valeur est
`{{access_token}}`. Renommez-la si vous le souhaitez, remplacez la valeur de la
variable par votre jeton si le système n'est pas connecté, puis cliquez sur
**Clone Integration**. Le flux apparaît dans la liste **Automations**.

![Clone Integration pour HubSpot - Bring Contacts.](/media/operate/clone-integration.webp)

### À partir de zéro

**Start from Scratch** ouvre **Add Custom Integration** (Ajouter une intégration
personnalisée), un assistant en 3 étapes : **General** (Général), **Steps &
Variables** (Étapes et variables) et **Mapping** (Mappage).

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

*Les trois étapes de Add Custom Integration.*

## Étape 1 : General

**Basic Information** (Informations de base)

| Champ | Signification |
|---|---|
| **Name** (obligatoire) | La façon dont le flux est listé, par exemple `HubSpot Contact Sync`. |
| **Workspace** | Le workspace dont le flux alimente les contacts. Par défaut, le workspace courant. |
| **Tag Name** (obligatoire) | Le tag attribué à chaque contact importé par le flux, par exemple `crm`. Les campaigns sélectionnent leur audience par tag, voir [Audience, tags et catégories](/fr/deploy/campaigns/audience-tags-and-categories). |
| **Category Name** | La catégorie attribuée à ces contacts, par exemple `CRM`. |

**Retry Configuration** (Configuration des relances)

| Champ | Valeur par défaut | Signification |
|---|---|---|
| **Re-execute Delay** et **Unit** | 20 **Seconds** | Le délai d'attente avant de réexécuter le flux, afin de maintenir les contacts synchronisés avec le système source. |
| **Max Retries** | 3 | Le nombre de nouvelles tentatives après une exécution en échec. |

**Predefined Variables** (Variables prédéfinies) sont des valeurs statiques, telles
que des clés d'API ou des jetons secrets, disponibles à chaque étape du flux. **Add
Variable** ajoute un nom et une valeur ; référencez-la dans une étape sous la forme
`{{variableName}}`.

![Étape 1, General, avec la configuration des relances.](/media/operate/custom-integration-general.webp)

## Étape 2 : Steps & Variables

Une bannière explique la règle qui structure cette étape : seul le résultat de la
dernière étape compte comme résultat de l'intégration. L'intégralité de la réponse de
cette dernière étape est utilisée, sauf si sa condition de succès désigne une clé de
réponse.

**Integration Flow Steps** (Étapes du flux d'intégration) : **Add Flow Step** ouvre
**Add New Integration Step** (Ajouter une nouvelle étape d'intégration).

| Champ | Valeur par défaut | Signification |
|---|---|---|
| **Method** | **GET** | **GET**, **POST**, **PUT**, **DELETE**, **OPTIONS**, **HEAD** ou **PATCH**. |
| **Depends On Step** | **None** | L'étape qui doit réussir avant l'exécution de celle-ci. |
| **URL** (obligatoire) | | Le point de terminaison, par exemple `https://api.example.com/webhook`. Les variables sont autorisées : `{{access_token}}`. |
| **Headers** | aucun | Paires clé/valeur ; cliquez sur **Add** après chacune. |
| **Content Type** et corps | **JSON** | Pour **POST**, **PUT**, **PATCH**, **OPTIONS** et **DELETE** uniquement. **JSON**, **URL Encoded**, **Form Data** ou **Text** ; le corps est construit en conséquence sous forme de champs JSON, de paires clé/valeur ou de texte brut. |
| **Timeout (sec)** | 20 | Par tentative. |
| **Retry Limit** | 3 | Tentatives après le premier échec. |
| **Total Step Timeout (sec)** | 60 | Plafond pour l'ensemble des tentatives. |
| **Success Condition** | désactivée | Lorsqu'elle est cochée : **Expected Status Code** (`200`), **Response Key Path** en notation pointée (`data.status`) et **Expected Value** (un booléen, un nombre, `null` ou une chaîne). |

![Add New Integration Step avec une condition de succès.](/media/operate/add-integration-step.webp)

Chaque étape ajoutée est listée avec sa méthode et son URL et dispose des commandes
**Edit Step** (Modifier l'étape) et **Remove Step** (Supprimer l'étape).

**Custom Variables** (Variables personnalisées) transmettent des données entre les
étapes : la sortie d'un appel devient l'entrée du suivant. Une variable possède un
**Variable Name**, un **JSON Path Location** dans la source (`data.user.id`), un
**Source Type** (**Response**), un **Source Step**, un **Data Type** (**String**,
**Object**, **MD5**, **Array**, **Number** ou **Boolean**) et une **Custom Value**
facultative pour une valeur statique.

Une variable est obligatoire : `results`, qui capture la sortie principale du flux.
Une bannière propose **Add "results" Variable**, qui la crée en tant qu'**Object**
issu de la réponse de la dernière étape. Vous ne pouvez pas passer à l'étape 3 sans
elle.

![Étape 2 avec une étape et la variable results.](/media/operate/custom-integration-steps.webp)

## Étape 3 : Mapping

**Field Mapping** (Mappage des champs) transforme les enregistrements de `results` en
contacts. **Execute Flow for Mapping** (Exécuter le flux pour le mappage) exécute le
flux une fois afin de connaître les champs de son résultat, puis vous mappez chacun
d'eux vers un champ de contact standard (nom, numéro de téléphone, métadonnées).
**Save** crée l'automatisation.

![Étape 3, Mapping, avant l'exécution du flux.](/media/operate/custom-integration-mapping.webp)

## Après l'enregistrement

Le flux est listé sous **Automations**, avec les colonnes **Flow** (Flux),
**Direction**, **Status** (Statut) et **Actions**. Les boutons **All** (Tous),
**Inbound** (Entrant) et **Outbound** (Sortant) ainsi que le champ de recherche
restreignent la liste.

- **Start** (Démarrer) fait passer le statut du flux à **Running** (En cours
  d'exécution) ; **Stop** (Arrêter) le remplace pendant l'exécution.
- **Execute** (Exécuter) exécute le flux une fois, immédiatement.
- Le menu des actions contient **Edit** (Modifier), **Duplicate** (Dupliquer),
  **View History** (Afficher l'historique), **Test Flow** (Tester le flux) et
  **Delete** (Supprimer). **Edit** ouvre un formulaire sur une seule page ;
  **Advanced Form** (Formulaire avancé) permet de revenir aux trois étapes.

**View History** ouvre **Integration History Logs** (Journaux d'historique de
l'intégration) avec le résultat de chaque exécution ; un flux qui n'a jamais été
exécuté indique **No execution history found for this integration.**

## Vérifier

- Le flux figure dans la liste **Automations** et son compteur a augmenté de 1.
- Après la première exécution, **Contacts** liste de nouveaux contacts portant le
  **Tag Name** défini à l'étape 1.

## Dépannage

- **Next est désactivé à l'étape 2.** La variable `results` est manquante. Utilisez
  **Add "results" Variable**.
- **L'étape échoue avec un 401.** Le jeton dans `{{access_token}}` est vide ou expiré.
  Reconnectez le système sous **Connections**, ou mettez à jour la variable prédéfinie.
- **Execute Flow for Mapping ne renvoie rien à mapper.** La condition de succès de la
  dernière étape désigne un **Response Key Path** absent de la réponse. Effacez-le et
  relancez l'exécution.

## Ressources associées

- [Vue d'ensemble des intégrations](/fr/operate/integrations/overview)
- [Webhooks](/fr/operate/webhooks)
- [Contacts](/fr/deploy/contacts)
- [Audience, tags et catégories](/fr/deploy/campaigns/audience-tags-and-categories)
