Webhook Integration

Empfange Events von meiti und aktualisiere Kontakt- und Projektdaten in Echtzeit.

So funktioniert's

meiti sendet HTTP POST Requests an deinen Webhook-Endpoint, wenn bestimmte Events auftreten. Jeder Request enthält eine einmalige Callback-URL, mit der du Daten bei meiti aktualisieren kannst.

Tipp: Die Callback-URL ist 5 Minuten gueltig und kann nur einmal verwendet werden.

Events

IncomingCallLookup

Wird ausgeloest, wenn ein Anruf eingeht. Nutze diesen Event, um Kontaktdaten aus deinem CRM zu laden und an meiti zu uebermitteln.

Bei eingehendem Anruf
FinishedCall

Wird nach Beendigung eines Anrufs ausgeloest. Perfekt um Anrufdaten in deinem CRM zu protokollieren.

Nach Anrufende
NewConversation

Wird ausgeloest, wenn ein Chat nach mindestens 1 Stunde Inaktivitaet wieder beginnt.

Chat-Start nach Pause
ConversationPaused

Wird nach 10 Minuten ohne Aktivitaet im Chat ausgeloest. Ideal fuer Follow-up Aktionen.

10 Min. Inaktivitaet
Manual

Manuell ueber die Projektdetails in der meiti App ausgeloest.

Manueller Trigger

Payload Struktur

Jeder Webhook-Request enthaelt folgende JSON-Struktur:

{
  "eventType": "IncomingCallLookup",
  "timestampUtc": "2024-01-15T10:30:00Z",
  "callbackUrl": "https://meitisdynamicwebhookurl/api/webhook-callback/abc123...",
  "contactData": {
    "meitiContactId": 12345,
    "crmContactId": "CRM-001",
    "phoneNumber": "+49123456789",
    "firstName": "Max",
    "lastName": "Mustermann",
    "company": "Musterfirma GmbH",
    "email": "max@example.com",
    "city": "Muenchen",
    "addressLine1": "Musterstr. 1",
    "postCode": "80331",
    "salutation": "Herr",
    "crmInternalInfo": "Interne Notizen...",
    "crmAiInfo": "Info fuer AI Chat...",
    "customString1": "...",
    "customDate1": "2024-06-15",
    "customNumeric1": "42",
    "customCheckBox1": true,
    "customOptIn1": "2024-01-10T14:30:00Z"
  },
  "projectData": {
    "meitiProjectId": 67890,
    "crmProjectId": "PRJ-001",
    "projectName": "Renovierung Badezimmer",
    "address": "Projektstr. 5",
    "city": "Muenchen",
    "postcode": "80333",
    "currentSummary": "AI-generierte Zusammenfassung...",
    "inquirySummary": "Urspruengliche Anfrage...",
    "crmInternalInfo": "Interne Projekt-Notizen...",
    "crmAiInfo": "Info fuer AI im Chat...",
  }
}

Daten aktualisieren

Es gibt zwei Moeglichkeiten, Kontakt- oder Projektdaten bei meiti zu aktualisieren:

Option 1: Sofortige Antwort (empfohlen)

Antworte direkt auf den Webhook-Request mit 200 OK und den Update-Daten im Response-Body:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "requestContactUpdate": true,
  "contactData": {
    "crmContactId": "CRM-001",
    "crmAiInfo": "VIP Kunde"
  },
  "requestProjectUpdate": true,
  "projectData": {
    "crmProjectId": "PRJ-001"
  }
}
Vorteil: Einfacher zu implementieren, synchrone Verarbeitung, keine Callback-URL noetig.
Option 2: Asynchroner Callback

Antworte mit 202 Accepted und sende die Updates spaeter an die callbackUrl:

// 1. Sofortige Antwort
HTTP/1.1 202 Accepted

// 2. Spaeter: POST an callbackUrl
POST {callbackUrl}
Content-Type: application/json

{
  "requestContactUpdate": true,
  "contactData": { ... }
}
Vorteil: Fuer komplexe Verarbeitung, die laenger dauert. Callback-URL ist 5 Min. gueltig.
Update-Daten Struktur
{
  "requestContactUpdate": true,
  "contactData": {
    "crmContactId": "CRM-001",
    "firstName": "Maximilian",
    "lastName": "Mustermann",
    "company": "Musterfirma GmbH",
    "crmAiInfo": "VIP Kunde, bevorzugte Behandlung"
  },
  "requestProjectUpdate": true,
  "projectData": {
    "crmProjectId": "PRJ-001",
    "crmInternalInfo": "Projektnotizen aus CRM",
    "crmAiInfo": "Eilauftrag, Termin bis Freitag"
  }
}
Hinweis: Nur Felder mit Werten werden aktualisiert. Leere oder fehlende Felder bleiben unveraendert.

Feld-Referenz

Performance-Tipp: Das Feld crmAiInfo wird in Echtzeit vom AI-Agenten verarbeitet. Halte diese Felder kurz und praeznant, um schnelle Antwortzeiten zu gewaehrleisten. Vermeide unnoetig lange Texte!
Kontakt-Felder
Feld Typ Max. Zeichen Beschreibung
crmContactIdstring100Deine CRM Kontakt-ID
firstNamestring100Vorname des Kontakts
lastNamestring100Nachname des Kontakts
salutationstring100Anrede (z.B. "Herr", "Frau")
companystring200Firmenname
emailstring500E-Mail Adresse
addressLine1string200Strasse und Hausnummer
citystring80Stadt
postCodestring20Postleitzahl
languagestring10Sprachcode (z.B. "de", "en")
crmInternalInfostring5000Interne Notizen (nicht fuer AI Chat)
crmAiInfostring5000 Infos fuer den AI Chat-Assistenten - kurz halten!
customString1-5string500Benutzerdefinierte Textfelder
customDate1-2string100Benutzerdefinierte Datumsfelder
customNumeric1-2string100Benutzerdefinierte Zahlenfelder
customCheckBox1-2bool?-Benutzerdefinierte Checkboxen
customOptIn1-3DateTime?-Opt-In Zeitstempel (wann zugestimmt wurde)
Projekt-Felder
Feld Typ Max. Zeichen Beschreibung
crmProjectIdstring100Deine CRM Projekt-ID
projectNamestring80Projektname/Titel
addressstring100Strasse und Hausnummer
citystring100Stadt
postcodestring20Postleitzahl
currentSummarystring5000AI-generierte Zusammenfassung (nur lesen)
inquirySummarystring5000AI-generierte Anfrage-Zusammenfassung (nur lesen)
crmInternalInfostring5000Interne Notizen (nicht fuer AI Chat)
crmAiInfostring5000 Infos fuer den AI Chat-Assistenten - kurz halten!
Wichtig: Felder die das Maximum ueberschreiten werden mit einem 400 Bad Request abgelehnt. Die Fehlermeldung enthaelt Details zu den betroffenen Feldern.

Authentifizierung

Du kannst in der meiti App einen Bearer Token konfigurieren. Dieser wird bei jedem Webhook-Request im Authorization Header mitgesendet:

Authorization: Bearer dein-geheimer-token

Validiere diesen Token auf deinem Server, um sicherzustellen, dass Requests wirklich von meiti kommen.

Einrichtung in der meiti App

  1. Oeffne Einstellungen > Betrieb > CRM Synchronisation
  2. Waehle Webhook als Integration
  3. Gib deine Webhook URL ein (z.B. https://dein-server.de/meiti-webhook)
  4. Optional: Gib einen Bearer Token fuer die Authentifizierung ein. Wenn du keinen verwenden möchtest, trage trotzdem irgendeinen ein.
  5. Teste die Integration ueber die Projektdetails mit dem Webhook Trigger Button

Fragen zur Integration?

Unser Team hilft dir gerne bei der Einrichtung.

Kontakt aufnehmen