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
- Allez dans Paramètres → API et webhooks → Webhooks.
- Cliquez sur + Créer un webhook et saisissez une URL HTTPS publique.
- Cliquez sur Enregistrer. Les événements commencent à arriver immédiatement.
Événements
| Événement | Exemples |
|---|---|
| Enregistrement créé | person.created, company.created |
| Enregistrement mis à jour | opportunity.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ête | Contenu |
|---|---|
X-Twenty-Webhook-Signature | Signature HMAC SHA-256 |
X-Twenty-Webhook-Timestamp | Moment 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.