Passer au contenu principal
Les webhooks envoient des données à vos systèmes en temps réel lorsque des événements se produisent dans Twenty — aucune interrogation n’est nécessaire. Utilisez-les pour maintenir les systèmes externes synchronisés, déclencher des automatisations ou envoyer des alertes.

Créer un Webhook

  1. Allez dans Paramètres → API & Webhooks → Webhooks
  2. Cliquez sur + Créer un webhook
  3. Saisissez votre URL de webhook (doit être publiquement accessible)
  4. Cliquez sur Enregistrer
Le webhook s’active immédiatement et commence à envoyer des notifications.

Gérer les Webhooks

Modifier: Cliquez sur le webhook → Mettre à jour l’URL → Enregistrer Supprimer: Cliquez sur le webhook → Supprimer → Confirmer

Événements

Twenty envoie des webhooks pour ces types d’événements :
ÉvénementExemple
Enregistrement crééperson.created, company.created, note.created
Enregistrement mis à jourperson.updated, company.updated, opportunity.updated
Enregistrement suppriméperson.deleted, company.deleted
Tous les types d’événements sont envoyés à votre URL de webhook. Le filtrage des événements pourrait être ajouté dans de prochaines versions.

Format de la charge utile

Chaque webhook envoie une requête HTTP POST avec un corps JSON :
{
  "event": "person.created",
  "data": {
    "id": "abc12345",
    "firstName": "Alice",
    "lastName": "Doe",
    "email": "alice@example.com",
    "createdAt": "2025-02-10T15:30:45Z",
    "createdBy": "user_123"
  },
  "timestamp": "2025-02-10T15:30:50Z"
}
ChampDescription
événementCe qui s’est passé (par exemple, person.created)
donnéesL’enregistrement complet qui a été créé/mis à jour/supprimé
horodatageQuand l’événement s’est produit (UTC)
Répondez avec un statut HTTP 2xx (200-299) pour accuser réception. Les réponses non 2xx sont consignées comme des échecs de livraison.

Validation des Webhooks

Twenty signe chaque requête de webhook pour des raisons de sécurité. Validez les signatures pour garantir l’authenticité des requêtes.

En-têtes

En-têteDescription
X-Twenty-Webhook-SignatureSignature HMAC SHA256
X-Twenty-Webhook-TimestampHorodatage de la requête

Étapes de validation

  1. Récupérez l’horodatage depuis X-Twenty-Webhook-Timestamp
  2. Créez la chaîne : {timestamp}:{JSON payload}
  3. Calculez le HMAC SHA256 en utilisant votre secret de webhook
  4. Comparez avec X-Twenty-Webhook-Signature

Exemple (Node.js)

const crypto = require("crypto");

const timestamp = req.headers["x-twenty-webhook-timestamp"];
const payload = JSON.stringify(req.body);
const secret = "your-webhook-secret";

const stringToSign = `${timestamp}:${payload}`;
const expectedSignature = crypto
  .createHmac("sha256", secret)
  .update(stringToSign)
  .digest("hex");

const isValid = expectedSignature === req.headers["x-twenty-webhook-signature"];

Webhooks vs Workflows

MéthodeDirectionCas d’utilisation
WebhooksSORTIENotifier automatiquement les systèmes externes de toute modification d’enregistrement
Workflow + requête HTTPSORTIEEnvoyer des données avec une logique personnalisée (filtres, transformations)
Déclencheur de webhook de workflowENTRÉERecevoir des données dans Twenty depuis des systèmes externes
Pour recevoir des données externes, voir Configurer un déclencheur de webhook.