Webhooks
Recibe un aviso en el momento en que se crea, actualiza o elimina un registro.
Los webhooks envían una solicitud HTTP a tu sistema cada vez que cambian los datos en Solid, así nunca necesitas consultar la API periódicamente.
Crear un webhook
- Ve a Configuración → API y Webhooks → Webhooks.
- Haz clic en + Crear webhook e introduce una URL HTTPS pública.
- Haz clic en Guardar. Los eventos empiezan a llegar de inmediato.
Eventos
| Evento | Ejemplos |
|---|---|
| Registro creado | person.created, company.created |
| Registro actualizado | opportunity.updated |
| Registro eliminado | company.deleted |
Payload
Cada evento es un POST con un cuerpo JSON:
{
"event": "person.created",
"data": {
"id": "abc12345",
"name": { "firstName": "Ana", "lastName": "Souza" },
"createdAt": "2026-09-30T15:30:45Z"
},
"timestamp": "2026-09-30T15:30:50Z"
}Responde con cualquier estado 2xx para confirmar la entrega. Las demás respuestas se registran como fallos.
Verificar la firma
Cada solicitud va firmada para que puedas comprobar que proviene de Solid. Los encabezados conservan los nombres del motor de código abierto sobre el que está construido Solid:
| Encabezado | Contenido |
|---|---|
X-Twenty-Webhook-Signature | Firma HMAC SHA-256 |
X-Twenty-Webhook-Timestamp | Cuándo se firmó la solicitud |
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'];
}Rechaza las solicitudes cuya firma no coincida e ignora las marcas de tiempo de más de unos minutos para evitar ataques de repetición.