Saltar al contenido principal
Los webhooks envían datos a tus sistemas en tiempo real cuando ocurren eventos en Twenty — no se requiere sondeo. Úsalos para mantener sincronizados los sistemas externos, activar automatizaciones o enviar alertas.

Crear un Webhook

  1. Ve a Configuración → APIs y Webhooks → Webhooks
  2. Haga clic en + Crear webhook
  3. Introduce la URL de tu webhook (debe ser públicamente accesible)
  4. Haga clic en Guardar
El webhook se activa de inmediato y comienza a enviar notificaciones.

Gestionar Webhooks

Editar: Haz clic en el webhook → Actualizar la URL → Guardar Eliminar: Haz clic en el webhook → Eliminar → Confirmar

Eventos

Twenty envía webhooks para estos tipos de eventos:
EventoEjemplo
Se crea un registroperson.created, company.created, note.created
Se actualiza un registroperson.updated, company.updated, opportunity.updated
Se elimina un registroperson.deleted, company.deleted
Todos los tipos de eventos se envían a la URL de tu webhook. Es posible que se agregue el filtrado de eventos en versiones futuras.

Formato de la carga útil

Cada webhook envía una solicitud HTTP POST con un cuerpo 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"
}
CampoDescripción
eventoQué ocurrió (p. ej., person.created)
datosEl registro completo que se creó/actualizó/eliminó
marca de tiempoCuándo ocurrió el evento (UTC)
Responde con un estado HTTP 2xx (200-299) para confirmar la recepción. Las respuestas que no sean 2xx se registran como errores de entrega.

Validación de Webhook

Twenty firma cada solicitud de webhook por seguridad. Valida las firmas para garantizar que las solicitudes sean auténticas.

Encabezados

EncabezadoDescripción
X-Twenty-Webhook-SignatureFirma HMAC SHA256
X-Twenty-Webhook-TimestampMarca de tiempo de la solicitud

Pasos de validación

  1. Obtén la marca de tiempo de X-Twenty-Webhook-Timestamp
  2. Crea la cadena: {timestamp}:{JSON payload}
  3. Calcula HMAC SHA256 usando tu secreto de webhook
  4. Compara con X-Twenty-Webhook-Signature

Ejemplo (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 flujos de trabajo

MétodoDirecciónCaso de uso
WebhooksSALIDANotificar automáticamente a los sistemas externos cualquier cambio en un registro
Flujo de trabajo + solicitud HTTPSALIDAEnviar datos con lógica personalizada (filtros, transformaciones)
Disparador de webhook de flujo de trabajoENTRADARecibir datos en Twenty desde sistemas externos
Para recibir datos externos, consulta Configurar un disparador de webhook.