Webhook
Ricevi una notifica nel momento in cui un record viene creato, aggiornato o eliminato.
I webhook inviano una richiesta HTTP al tuo sistema ogni volta che i dati cambiano in Solid, così non devi mai interrogare periodicamente l'API.
Creare un webhook
- Vai su Impostazioni → API e Webhook → Webhook.
- Fai clic su + Crea webhook e inserisci un URL HTTPS pubblico.
- Fai clic su Salva. Gli eventi iniziano ad arrivare immediatamente.
Eventi
| Evento | Esempi |
|---|---|
| Record creato | person.created, company.created |
| Record aggiornato | opportunity.updated |
| Record eliminato | company.deleted |
Payload
Ogni evento è una POST con un corpo JSON:
{
"event": "person.created",
"data": {
"id": "abc12345",
"name": { "firstName": "Ana", "lastName": "Souza" },
"createdAt": "2026-09-30T15:30:45Z"
},
"timestamp": "2026-09-30T15:30:50Z"
}Rispondi con qualsiasi stato 2xx per confermare la consegna. Le altre risposte vengono registrate come errori.
Verificare la firma
Ogni richiesta è firmata, così puoi verificare che provenga da Solid. Gli header mantengono i nomi del motore open source su cui Solid è costruito:
| Header | Contenuto |
|---|---|
X-Twenty-Webhook-Signature | Firma HMAC SHA-256 |
X-Twenty-Webhook-Timestamp | Momento in cui la richiesta è stata firmata |
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'];
}Rifiuta le richieste la cui firma non corrisponde e ignora i timestamp più vecchi di qualche minuto per prevenire attacchi di replay.