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.
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 AnrufFinishedCall
Wird nach Beendigung eines Anrufs ausgeloest. Perfekt um Anrufdaten in deinem CRM zu protokollieren.
Nach AnrufendeNewConversation
Wird ausgeloest, wenn ein Chat nach mindestens 1 Stunde Inaktivitaet wieder beginnt.
Chat-Start nach PauseConversationPaused
Wird nach 10 Minuten ohne Aktivitaet im Chat ausgeloest. Ideal fuer Follow-up Aktionen.
10 Min. InaktivitaetManual
Manuell ueber die Projektdetails in der meiti App ausgeloest.
Manueller TriggerPayload 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:
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" } }
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": { ... } }
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"
}
}
Feld-Referenz
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 |
|---|---|---|---|
crmContactId | string | 100 | Deine CRM Kontakt-ID |
firstName | string | 100 | Vorname des Kontakts |
lastName | string | 100 | Nachname des Kontakts |
salutation | string | 100 | Anrede (z.B. "Herr", "Frau") |
company | string | 200 | Firmenname |
email | string | 500 | E-Mail Adresse |
addressLine1 | string | 200 | Strasse und Hausnummer |
city | string | 80 | Stadt |
postCode | string | 20 | Postleitzahl |
language | string | 10 | Sprachcode (z.B. "de", "en") |
crmInternalInfo | string | 5000 | Interne Notizen (nicht fuer AI Chat) |
crmAiInfo | string | 5000 | Infos fuer den AI Chat-Assistenten - kurz halten! |
customString1-5 | string | 500 | Benutzerdefinierte Textfelder |
customDate1-2 | string | 100 | Benutzerdefinierte Datumsfelder |
customNumeric1-2 | string | 100 | Benutzerdefinierte Zahlenfelder |
customCheckBox1-2 | bool? | - | Benutzerdefinierte Checkboxen |
customOptIn1-3 | DateTime? | - | Opt-In Zeitstempel (wann zugestimmt wurde) |
Projekt-Felder
| Feld | Typ | Max. Zeichen | Beschreibung |
|---|---|---|---|
crmProjectId | string | 100 | Deine CRM Projekt-ID |
projectName | string | 80 | Projektname/Titel |
address | string | 100 | Strasse und Hausnummer |
city | string | 100 | Stadt |
postcode | string | 20 | Postleitzahl |
currentSummary | string | 5000 | AI-generierte Zusammenfassung (nur lesen) |
inquirySummary | string | 5000 | AI-generierte Anfrage-Zusammenfassung (nur lesen) |
crmInternalInfo | string | 5000 | Interne Notizen (nicht fuer AI Chat) |
crmAiInfo | string | 5000 | Infos fuer den AI Chat-Assistenten - kurz halten! |
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
- Oeffne Einstellungen > Betrieb > CRM Synchronisation
- Waehle Webhook als Integration
- Gib deine Webhook URL ein (z.B.
https://dein-server.de/meiti-webhook) - Optional: Gib einen Bearer Token fuer die Authentifizierung ein. Wenn du keinen verwenden möchtest, trage trotzdem irgendeinen ein.
- Teste die Integration ueber die Projektdetails mit dem Webhook Trigger Button
Fragen zur Integration?
Unser Team hilft dir gerne bei der Einrichtung.
Kontakt aufnehmen