Webhooks übermitteln Daten in Echtzeit an Ihre Systeme, wenn Ereignisse in Twenty auftreten — kein Polling erforderlich. Verwenden Sie sie, um externe Systeme synchron zu halten, Automatisierungen auszulösen oder Benachrichtigungen zu senden.
Webhook erstellen
- Gehen Sie zu Einstellungen → APIs & Webhooks → Webhooks
- Klicken Sie auf + Webhook erstellen
- Geben Sie Ihre Webhook-URL ein (muss öffentlich zugänglich sein)
- Klicken Sie auf Speichern
Der Webhook wird sofort aktiviert und beginnt, Benachrichtigungen zu senden.
Webhooks verwalten
Bearbeiten: Klicken Sie auf den Webhook → URL aktualisieren → Speichern
Löschen: Klicken Sie auf den Webhook → Löschen → Bestätigen
Ereignisse
Twenty sendet Webhooks für diese Ereignistypen:
| Ereignis | Beispiel |
|---|
| Datensatz erstellt | person.created, company.created, note.created |
| Datensatz aktualisiert | person.updated, company.updated, opportunity.updated |
| Datensatz gelöscht | person.deleted, company.deleted |
Alle Ereignistypen werden an Ihre Webhook-URL gesendet. Eine Ereignisfilterung kann in zukünftigen Versionen hinzugefügt werden.
Jeder Webhook sendet eine HTTP-POST-Anfrage mit einem JSON-Body:
{
"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"
}
| Feld | Beschreibung |
|---|
ereignis | Was passiert ist (z. B. person.created) |
daten | Der vollständige Datensatz, der erstellt/aktualisiert/gelöscht wurde |
zeitstempel | Wann das Ereignis auftrat (UTC) |
Antworten Sie mit einem 2xx-HTTP-Status (200-299), um den Empfang zu bestätigen. Nicht-2xx-Antworten werden als Zustellfehler protokolliert.
Webhook-Validierung
Twenty signiert jede Webhook-Anfrage zu Sicherheitszwecken. Validieren Sie die Signaturen, um sicherzustellen, dass die Anfragen authentisch sind.
| Kopfzeile | Beschreibung |
|---|
X-Twenty-Webhook-Signature | HMAC-SHA256-Signatur |
X-Twenty-Webhook-Timestamp | Zeitstempel der Anfrage |
Validierungsschritte
- Den Zeitstempel aus
X-Twenty-Webhook-Timestamp abrufen
- Zeichenfolge erstellen:
{timestamp}:{JSON payload}
- Den HMAC-SHA256-Hash mit Ihrem Webhook-Geheimnis berechnen
- Mit
X-Twenty-Webhook-Signature vergleichen
Beispiel (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 Workflows
| Methode | Richtung | Anwendungsfall |
|---|
| Webhooks | OUT | Externe Systeme automatisch über jede Datensatzänderung benachrichtigen |
| Workflow + HTTP-Anfrage | OUT | Daten mit benutzerdefinierter Logik (Filter, Transformationen) nach außen senden |
| Workflow-Webhook-Trigger | IN | Daten aus externen Systemen in Twenty empfangen |
Für den Empfang externer Daten siehe Webhook-Trigger einrichten.