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

# Webhooks sortants

> Recevez les événements Setteo en temps réel dans Make, Zapier, n8n ou votre propre outil : prospect créé, tag ajouté, message envoyé ou reçu.

Un webhook sortant prévient votre outil à chaque événement choisi. Setteo envoie une requête `POST` avec un corps JSON à l'adresse que vous indiquez.

Utilisez-le pour pousser vos prospects dans un CRM, prévenir votre équipe, ou lancer une automatisation quand un prospect reçoit un tag.

## Ajouter un webhook

**1. Ouvrez les automatisations**

Dans **Configuration > Intégrations**, ouvrez l'onglet **Automatisations**. Seul le **Propriétaire** y a accès.

**2. Ajoutez un webhook**

Dans **Webhooks**, cliquez sur **Ajouter un webhook**.

**3. Nommez-le et collez l'adresse**

Donnez un **Nom** pour le retrouver, par exemple « Nouveaux prospects vers Zapier ». Dans **URL du webhook**, collez l'adresse de réception fournie par votre outil.

**4. Choisissez les événements**

Cochez les **Événements à envoyer**.

**5. Testez**

Cliquez sur **Envoyer un test**. Votre outil reçoit un événement de test, qui ne compte pas dans les statistiques du webhook.

![La fenêtre Ajouter un webhook avec le nom, l'URL et les événements](https://mintcdn.com/setteo-397937b0/8GC7bemlJPmdkd2M/images/integrations/ajouter-webhook.png?fit=max\&auto=format\&n=8GC7bemlJPmdkd2M\&q=85\&s=f24d749d0f7ef59584ee5bcc306003d9)

Les Propriétaires reçoivent un e-mail de sécurité à chaque webhook ajouté.

> [!NOTE]
>
> Vous utilisez Make ? L'application Setteo crée son webhook toute seule. Voir [Make, Zapier et n8n](https://docs.setteo.io/integrations/make-zapier-n8n.md).

## Les événements

| Événement | Envoyé quand… |
| - | - |
| **Prospect créé** (`prospect.created`) | un prospect arrive dans Setteo, quelle que soit sa source |
| **Prospect mis à jour** (`prospect.updated`) | son nom, son e-mail, son téléphone, sa chaleur, son étape, sa source ou son désabonnement change |
| **Tag ajouté au prospect** (`prospect.tag_added`) | un tag est posé sur le prospect |
| **Message WhatsApp non délivrable** (`prospect.wa_undeliverable`) | un message WhatsApp n'a pas pu être remis |
| **Message envoyé** (`message.sent`) | un message part vers le prospect |
| **Message reçu** (`message.received`) | le prospect écrit |
| **Conversation inactive** (`conversation.inactive`) | une conversation s'arrête, avec ses 25 premiers messages |

### Filtrer par tag

Pour **Tag ajouté au prospect**, le champ **Seulement pour ces tags** limite l'envoi à certains tags. Laissez-le vide pour envoyer l'événement quel que soit le tag ajouté.

> [!TIP]
>
> Un clic sur un lien court n'a pas d'événement propre. Posez un **Tag au clic** sur le lien court, puis écoutez **Tag ajouté au prospect** pour ce tag. Voir [Liens courts](https://docs.setteo.io/gerer/liens-courts.md).

## Ce que contient un événement

Chaque requête a la même forme :

```json theme={null}
{
  "event_type": "prospect.tag_added",
  "timestamp": "2026-10-20T10:00:00.000000Z",
  "data": {
    "prospect": {
      "id": 123,
      "first_name": "Jean",
      "variables": { "source_campagne": "webinaire" },
      "tags": ["Webinaire", "Appel réservé"],
      "bookings": [
        { "event_name": "Appel découverte", "starts_at": "2026-10-22T14:00:00+02:00", "closer_name": "Camille" }
      ]
    },
    "new_tag": "Appel réservé"
  }
}
```

* Pour un événement prospect, `data.prospect` contient ses champs, ses `variables`, ses `tags` et ses rendez-vous.
* Les rendez-vous sont dans `bookings`, pas dans `variables`.
* Les champs issus de l'analyse des conversations (profil, maturité, motif de perte…) sont vides si votre formule n'inclut pas l'analyse.

Le format complet de chaque événement est dans la [référence des webhooks sortants](https://docs.setteo.io/api-reference/automations.md).

## Vérifier que la requête vient de Setteo

Chaque requête est signée selon la norme [Standard Webhooks](https://www.standardwebhooks.com). Votre outil peut ainsi refuser une requête que Setteo n'a pas envoyée.

Elle porte trois en-têtes :

| En-tête | Contenu |
| - | - |
| `webhook-id` | L'identifiant de l'envoi. Il reste le même quand Setteo réessaie un envoi : utilisez-le pour écarter un doublon. |
| `webhook-timestamp` | L'heure de l'envoi, en secondes Unix. |
| `webhook-signature` | `v1,` suivi de la signature HMAC-SHA256, en base64, de `webhook-id.webhook-timestamp.corps`. |

Le **secret de signature** est propre à chaque webhook. Pour le copier, ouvrez le webhook et dépliez **Secret de signature**, sous l'URL. Il commence par `whsec_`.

Les bibliothèques Standard Webhooks vérifient la signature pour vous et prennent le secret tel quel :

```javascript Node.js theme={null}
import { Webhook } from "standardwebhooks";

const webhook = new Webhook(process.env.SETTEO_WEBHOOK_SECRET);

// Passez le corps brut, avant tout JSON.parse : la signature porte sur ces octets exacts.
const event = webhook.verify(rawBody, request.headers);
```

```php PHP theme={null}
use StandardWebhooks\Webhook;

$webhook = new Webhook(getenv('SETTEO_WEBHOOK_SECRET'));

// Passez le corps brut, avant tout json_decode : la signature porte sur ces octets exacts.
$event = $webhook->verify(file_get_contents('php://input'), getallheaders());
```

> [!WARNING]
>
> Si votre outil répond `401` ou `403`, Setteo désactive le webhook aussitôt : renvoyer la même requête ne changerait rien. Vérifiez votre code de vérification avec **Envoyer un test**, qui ne désactive jamais le webhook, puis réactivez-le avec **Actif**.

## Suivre l'état d'un webhook

Chaque webhook affiche son **État**, son **Taux de réussite**, ses **Envois** et son **Dernier envoi**.

| État | Ce que ça veut dire |
| - | - |
| **Fonctionne** | Les envois arrivent. |
| **Échecs fréquents** | Votre outil répond souvent en erreur. Vérifiez qu'il accepte la requête. |
| **En pause après des échecs** | Après une série d'échecs, Setteo arrête d'envoyer pendant environ une heure, puis reprend seul. |
| **Désactivé** | Le webhook n'envoie plus rien : vous l'avez coupé, ou votre outil a refusé un envoi (`401`, `403` ou `410`). Réactivez-le avec **Actif**. |
| **Jamais déclenché** | Aucun événement choisi ne s'est encore produit. |

> [!WARNING]
>
> Si votre outil répond `401`, `403` ou `410 Gone`, Setteo désactive le webhook. Il reste désactivé jusqu'à ce que vous le réactiviez.

## Modifier ou supprimer

Cliquez sur **Modifier** pour changer le nom, l'adresse, les événements ou les tags. **Supprimer** arrête immédiatement l'envoi. C'est irréversible.

## Webhook ou API ?

Le webhook prévient en temps réel. Pour lire ou modifier des données à la demande, utilisez l'[API](https://docs.setteo.io/integrations/cles-api.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.