Webhooks

Soyez notifié dès qu'un enregistrement est créé, mis à jour ou supprimé.

Les webhooks envoient une requête HTTP à votre système chaque fois que des données changent dans Solid : vous n'avez donc jamais besoin d'interroger l'API en boucle.

Créer un webhook

  1. Allez dans Paramètres → API et webhooks → Webhooks.
  2. Cliquez sur + Créer un webhook et saisissez une URL HTTPS publique.
  3. Cliquez sur Enregistrer. Les événements commencent à arriver immédiatement.

Événements

ÉvénementExemples
Enregistrement crééperson.created, company.created
Enregistrement mis à jouropportunity.updated
Enregistrement supprimécompany.deleted

Contenu (payload)

Chaque événement est une requête POST avec un corps JSON :

{
  "event": "person.created",
  "data": {
    "id": "abc12345",
    "name": { "firstName": "Ana", "lastName": "Souza" },
    "createdAt": "2026-09-30T15:30:45Z"
  },
  "timestamp": "2026-09-30T15:30:50Z"
}

Répondez avec n'importe quel statut 2xx pour confirmer la réception. Les autres réponses sont enregistrées comme des échecs.

Vérifier la signature

Chaque requête est signée afin que vous puissiez vérifier qu'elle provient bien de Solid. Les en-têtes conservent les noms du moteur open source sur lequel Solid est construit :

En-têteContenu
X-Twenty-Webhook-SignatureSignature HMAC SHA-256
X-Twenty-Webhook-TimestampMoment où la requête a été signée
import crypto from 'node:crypto';

export function isFromSolid(req, secret) {
  const timestamp = req.headers['x-twenty-webhook-timestamp'];
  const expected = crypto
    .createHmac('sha256', secret)
    .update(`${timestamp}:${JSON.stringify(req.body)}`)
    .digest('hex');
  return expected === req.headers['x-twenty-webhook-signature'];
}

Rejetez les requêtes dont la signature ne correspond pas, et ignorez les horodatages de plus de quelques minutes afin d'empêcher les attaques par rejeu.

Sur cette page