Übersicht
Webhooks ermöglichen Ihnen den Empfang von Echtzeit-HTTP-POST-Benachrichtigungen bei Ereignissen in InboundFlow — ein Anruf endet, ein Termin wird gebucht, ein Lead wird erstellt oder ein Anruf wird weitergeleitet. Nutzen Sie Webhooks zur CRM-Synchronisation, Slack-Benachrichtigungen, Tabellenaktualisierungen oder beliebigen Workflows.
Unterstützte Integrationen
Einrichtung
Gehen Sie zu Ihrem InboundFlow-Dashboard → Einstellungen → Integrationen
Klicken Sie auf „Verbinden" bei Zapier, Make oder Custom Webhook
Fügen Sie Ihre Webhook-URL ein (muss HTTPS sein)
Wählen Sie aus, welche Ereignisse Sie empfangen möchten
Klicken Sie auf „Webhook testen" zur Überprüfung
Speichern
Ereignistypen
| Ereignis | Auslöser | Beschreibung |
|---|---|---|
| call.completed | Jeder abgeschlossene Anruf | Wird ausgelöst nach Anrufende mit Zusammenfassung, Transkript und Anruferinformationen |
| call.transferred | Anruf an Mensch weitergeleitet | Wird ausgelöst wenn die KI einen Anruf an ein Ziel weiterleitet |
| appointment.booked | Kalendertermin gebucht | Wird ausgelöst wenn die KI während eines Anrufs einen Termin bucht |
| lead.created | Neuer Lead erfasst | Wird ausgelöst wenn ein neuer Lead aus einem Anruf erstellt wird |
Lieferformat
Alle Webhook-Lieferungen sind HTTP-POST-Anforderungen mit JSON-Body:
Header
Content-Type: application/json
X-InboundFlow-Event: call.completed
X-InboundFlow-Delivery-Id: unique-uuid
X-InboundFlow-Timestamp: 1709064000
User-Agent: InboundFlow-Webhook/1.0
Falls Sie ein Signaturgeheimnis konfiguriert haben:
X-InboundFlow-Signature: sha256=abc123...
Ereignis-Payloads
call.completed
{
"event": "call.completed",
"timestamp": "2026-02-24T21:00:00.000Z",
"organization_id": "uuid",
"delivery_id": "unique-uuid",
"data": {
"call_id": "uuid",
"caller_phone": "+1234567890",
"caller_name": "Dave",
"caller_email": "dave@example.com",
"duration_seconds": 55,
"summary": "Called about auto repair appointment. Customer wants to bring in a 2019 Honda Civic for brake inspection.",
"intent": "book appointment",
"urgency": "medium",
"recording_url": "https://...",
"started_at": "2026-02-24T20:59:00Z",
"ended_at": "2026-02-24T21:00:00Z"
}
}
call.transferred
{
"event": "call.transferred",
"timestamp": "2026-02-24T21:00:00.000Z",
"organization_id": "uuid",
"delivery_id": "unique-uuid",
"data": {
"call_id": "uuid",
"caller_phone": "+1234567890",
"caller_name": "Dave",
"duration_seconds": 47,
"summary": "Caller requested to speak with manager about pricing.",
"transferred_to_label": "Manager",
"transferred_to_number": "+18154264329",
"urgency": "medium",
"reason": "Wants to discuss pricing for full body repair"
}
}
appointment.booked
{
"event": "appointment.booked",
"timestamp": "2026-02-24T21:00:00.000Z",
"organization_id": "uuid",
"delivery_id": "unique-uuid",
"data": {
"call_id": "uuid",
"caller_phone": "+1234567890",
"caller_name": "Sarah",
"appointment_date": "2026-02-25",
"appointment_time_start": "2026-02-25T11:00:00Z",
"appointment_time_end": "2026-02-25T12:00:00Z",
"service_type": "Auto Repair Appointment",
"calendar_event_id": "google_event_id",
"calendar_event_link": "https://calendar.google.com/..."
}
}
lead.created
{
"event": "lead.created",
"timestamp": "2026-02-24T21:00:00.000Z",
"organization_id": "uuid",
"delivery_id": "unique-uuid",
"data": {
"call_id": "uuid",
"caller_phone": "+1234567890",
"caller_name": "Dave",
"caller_email": "dave@example.com",
"intent": "pricing inquiry",
"urgency": "high",
"interest": "auto body work",
"call_summary": "Called about getting a quote for front bumper repair on a 2019 Honda Civic."
}
}
Webhook-Signaturen verifizieren
Wenn Sie beim Konfigurieren Ihres Webhooks ein Signaturgeheimnis festlegen, enthält jede Lieferung eine HMAC-SHA256-Signatur zur Überprüfung:
const crypto = require('crypto');
function verifyWebhook(body, timestamp, signature, secret) {
const signatureInput = `${timestamp}.${JSON.stringify(body)}`;
const expectedSignature = 'sha256=' +
crypto.createHmac('sha256', secret)
.update(signatureInput)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}
// In your webhook handler:
const isValid = verifyWebhook(
req.body,
req.headers['x-inboundflow-timestamp'],
req.headers['x-inboundflow-signature'],
'your_signing_secret'
);
Wiederholungen & Zuverlässigkeit
- Timeout: Webhooks haben ein 10-Sekunden-Liefertimeout. Antworten Sie schnell mit einem 2xx-Status.
- Fehlerverfolgung: Fehlgeschlagene Lieferungen werden verfolgt. Nach 10 aufeinanderfolgenden Fehlern wird der Webhook automatisch deaktiviert.
- Reaktivieren: Falls Ihr Webhook auto-deaktiviert wurde, gehen Sie zu Einstellungen → Integrationen zur Wiederverbindung.
- Idempotenz: Verwenden Sie das Feld
delivery_idzur Deduplizierung von Ereignissen.