REST-API
Webhooks und Benachrichtigungen
Lass dir neue Anfragen, Übergaben und Termine in Echtzeit an einen eigenen Endpunkt, an Zapier, Make, Slack oder Microsoft Teams melden.
Wofür
Statt die API ständig abzufragen, meldet Lymbe dir wichtige Ereignisse selbst: eine neue Anfrage, eine angeforderte Übergabe an einen Menschen oder einen Termin. Das richtest du je Assistent ein, im Abschnitt Benachrichtigungen.
Wo du es findest
- Menüpfad: Bereichsübersicht → Zahnrad an der Assistenten-Kachel → Benachrichtigungen („Wohin neue Anfragen gemeldet werden“).
- Recht: Assistenten bearbeiten.
- Den Abschnitt gibt es erst, nachdem der Assistent einmal gespeichert wurde.
Ziele
| Ziel | Was du eingibst | Regel |
|---|---|---|
| Eine E-Mail-Adresse | – | |
| Slack | Die Webhook-URL eines Slack-Kanals | Nur Adressen unter hooks.slack.com |
| Microsoft Teams | Die Webhook-URL eines Teams-Kanals | Nur Adressen unter webhook.office.com bzw. office.com |
| Zapier, Make oder eigener Endpunkt | Eine beliebige HTTPS-URL | Nur https://, keine Zugangsdaten in der URL, keine privaten oder lokalen Adressen |
Ereignisse
| Im Portal | event im JSON | Wann |
|---|---|---|
| Neue Anfrage erfasst | lead.captured | Ein Lead entsteht: im Widget, im Gespräch durch den Assistenten, durch einen Ablauf oder per POST /leads |
| Übergabe an einen Menschen angefordert | handover.requested | Ein Besucher möchte mit deinem Team sprechen (siehe Live-Chat) |
| Termin angefragt oder gebucht | appointment.booked | Ein Termin wird angefragt oder fest gebucht (siehe Termine) |
Einrichten
- Öffne den Assistenten und scrolle zu Benachrichtigungen.
- Klicke auf Ziel hinzufügen und wähle die Art des Ziels.
- Trage Adresse oder URL ein und wähle die Ereignisse, die gemeldet werden sollen.
- Speichere und klicke auf Testen. Es erscheint „Probe abgeschickt“.
- Prüfe, ob die Probe angekommen ist. Unter dem Ziel siehst du „Zuletzt zugestellt“.
Was an deinen Endpunkt geht
Lymbe schickt ein POST mit JSON. Neben event, Zeitpunkt und Assistent enthält es genau einen der Blöcke lead, handover oder appointment.
{
"event": "lead.captured",
"occurredAt": "2026-10-17T09:15:02.000Z",
"bot": { "id": "BOT_ID", "name": "Website-Assistent" },
"lead": {
"id": "cmg9x8y7z0001",
"name": "Max Mustermann",
"email": "max@example.com",
"phone": "+49 30 1234567",
"company": "Beispiel GmbH",
"message": "Bitte um Rückruf",
"source": "widget",
"conversationId": "cmg1a2b3c0001",
"customFields": null
}
}
{
"event": "handover.requested",
"occurredAt": "2026-10-17T10:02:11.000Z",
"bot": { "id": "BOT_ID", "name": "Website-Assistent" },
"handover": {
"id": "…",
"conversationId": "cmg1a2b3c0002",
"reason": "Frage zur Rechnung",
"priority": "normal",
"visitorName": "Erika Musterfrau",
"visitorEmail": "erika@example.com"
}
}
{
"event": "appointment.booked",
"occurredAt": "2026-10-17T11:30:00.000Z",
"bot": { "id": "BOT_ID", "name": "Website-Assistent" },
"appointment": {
"id": "…",
"status": "confirmed",
"start": "2026-10-21T08:00:00.000Z",
"end": "2026-10-21T08:30:00.000Z",
"timezone": "Europe/Berlin",
"purpose": "Beratung",
"visitorName": "Erika Musterfrau",
"visitorEmail": "erika@example.com",
"conversationId": "cmg1a2b3c0003",
"provider": "…"
}
}
appointment.status ist pending (angefragt) oder confirmed (gebucht).
Beispiel-Empfänger
app.post('/lymbe-hook', express.json(), (req, res) => {
const { event, bot } = req.body;
if (event === 'lead.captured') {
// in dein CRM übernehmen …
}
res.sendStatus(200); // schnell antworten, Arbeit danach erledigen
});
Zustellung und Grenzen
| Regel | Wert |
|---|---|
| Versuche | Ein Versuch je Ereignis, keine Wiederholung |
| Zeitlimit | 8 Sekunden; danach gilt die Zustellung als fehlgeschlagen |
| Weiterleitungen | Werden nicht verfolgt. Gib die endgültige URL ein. |
| Signatur | Keine. Schütze deinen Endpunkt mit einer langen, geheimen URL. |
| Abschalten | Nach 10 Fehlschlägen hintereinander wird das Ziel abgeschaltet |
| Fehleranzeige | Der letzte Fehler steht am Ziel: HTTP-Status und bis zu 120 Zeichen der Antwort |
Ein abgeschaltetes Ziel holst du mit Wieder einschalten zurück. Mit Pausieren hältst du es selbst an.
lead.captured-Nachricht mit dem Namen „Probelauf“ und der Adresse probe@example.com, auch wenn das Ziel dieses Ereignis gar nicht abonniert hat. So kannst du sie in deinem System leicht herausfiltern.Fehlerbehebung
| Problem | Lösung |
|---|---|
| URL wird nicht angenommen | Nur https://, keine Zugangsdaten wie user:pass@, keine internen Adressen. Slack und Teams nur mit ihren offiziellen Webhook-Adressen. |
| Ziel ist abgeschaltet | Fehlertext am Ziel lesen, Endpunkt reparieren, dann Wieder einschalten. |
| Meldungen kommen doppelt nicht an | Es gibt keine Wiederholungen. Antwortet dein Endpunkt zu langsam oder mit Fehler, ist die Meldung verloren. Den Lead findest du trotzdem im Lead-Posteingang. |
| 301/302 vom Endpunkt | Trage die Ziel-URL nach der Weiterleitung ein, z. B. mit abschließendem Schrägstrich. |
Mehr Logik als eine Meldung? Mit Abläufen reagierst du auf dieselben Ereignisse mit beliebigen Schritten.