Webhooks

Erhalten Sie Echtzeit-HTTP-POST-Benachrichtigungen.

Ü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

Zapier
Connect to 5,000+ apps
🔄
Make (Integromat)
Advanced workflow automation
🔧
n8n
Self-hosted automation
🌐
Benutzerdefinierter Webhook
Jede URL, die HTTP POST akzeptiert

Einrichtung

1

Gehen Sie zu Ihrem InboundFlow-Dashboard → Einstellungen → Integrationen

2

Klicken Sie auf „Verbinden" bei Zapier, Make oder Custom Webhook

3

Fügen Sie Ihre Webhook-URL ein (muss HTTPS sein)

4

Wählen Sie aus, welche Ereignisse Sie empfangen möchten

5

Klicken Sie auf „Webhook testen" zur Überprüfung

6

Speichern

Ereignistypen

EreignisAuslöserBeschreibung
call.completedJeder abgeschlossene AnrufWird ausgelöst nach Anrufende mit Zusammenfassung, Transkript und Anruferinformationen
call.transferredAnruf an Mensch weitergeleitetWird ausgelöst wenn die KI einen Anruf an ein Ziel weiterleitet
appointment.bookedKalendertermin gebuchtWird ausgelöst wenn die KI während eines Anrufs einen Termin bucht
lead.createdNeuer Lead erfasstWird ausgelöst wenn ein neuer Lead aus einem Anruf erstellt wird

Lieferformat

Alle Webhook-Lieferungen sind HTTP-POST-Anforderungen mit JSON-Body:

Header

HTTP-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:

Signatur-Header
X-InboundFlow-Signature: sha256=abc123...

Ereignis-Payloads

call.completed

JSON
{
  "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

JSON
{
  "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

JSON
{
  "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

JSON
{
  "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:

verify-webhook.js
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_id zur Deduplizierung von Ereignissen.

Best Practices

Schnell antworten
200 sofort zurückgeben, dann asynchron verarbeiten
🔒
HTTPS verwenden
Webhook-URLs müssen HTTPS verwenden
Signaturen verifizieren
Bei sensiblen Daten Signaturgeheimnisse aktivieren
🔁
Duplikate behandeln
delivery_id für Idempotenz verwenden
📊
Fehler überwachen
Integrationsstatus im Dashboard prüfen