Termin-Buchung im Chat — 2-Minuten-Setup
Wenn dein Bot — besonders die Sales-Persona — bisher in Schleifen nach Tag und Uhrzeit gefragt hat ("Dienstag oder Donnerstag? Welche Uhrzeit passt am Dienstag?"), löst diese Funktion das Problem strukturell: der Bot erkennt den Buchungs-Wunsch und schickt eine Kalender-Karte mit deinem Calendly/cal.com-Link. Der Besucher klickt, wählt selbst einen Slot, der Termin landet automatisch in deinem Kalender.
Setup
Schritt 1: Buchungs-URL anlegen (extern, einmalig)
Lege bei deinem Provider eine öffentliche Buchungs-URL an. Funktionierende Free-Tier-Optionen:
- Calendly — einfachster Setup, ein Event-Type reicht
- cal.com — Open-Source-Alternative, großzügigeres Free-Tier
- TidyCal — 1 Event-Type kostenlos
- SavvyCal / Acuity Scheduling — kommerziell, aber bewährt
Schritt 2: URL in SilentChat hinterlegen
Im Dashboard: Einstellungen → KI-Bot → Übergabe & Termine.
Im Block "Termin-Buchung":
- Buchungs-URL — der HTTPS-Link (
https://calendly.com/firma/30min) - Karten-Titel (optional) — der Button-Text auf der Karte. Leer = „Termin buchen"
- Toggle "Buchungs-Karte aktivieren" — schaltet die Funktion scharf
Erlaubte Hosts: calendly.com, cal.com, savvycal.com, tidycal.com, acuityscheduling.com. Andere Hosts werden mit ERR_BOOKING_URL_HOST abgelehnt — als Schutz gegen Phishing über die Bot-Schiene.
Schritt 3: Sales-Persona empfehlen (optional aber sinnvoll)
Die mitgelieferte Sales-Persona ist bereits darauf abgestimmt, den Marker zu nutzen sobald der Visitor einen Termin nennt. Andere Personas funktionieren auch — der Marker steht im allgemeinen System-Prompt und ist persona-unabhängig.
Wie es technisch läuft
- Sobald der Visitor sinngemäß einen Termin will (auch paraphrasiert oder in einer anderen Sprache), erkennt der Bot den Intent.
- Der Bot schreibt einen kurzen Bestätigungs-Satz („Klar, hier ist mein Kalender — wähle einen Slot, der dir passt:") gefolgt vom internen Marker
[BOOKING]. - Das Backend strippt den Marker raus, persistiert den Bestätigungs-Satz und hängt automatisch eine
booking_card-Nachricht mit deinem Calendar-Link an. - Der Visitor sieht die Karte, klickt, bucht im neuen Tab → der Slot landet in deinem Kalender.
Der Visitor sieht den Marker nie. Er sieht nur die Bestätigung + die Karte.
Fallback-Verhalten
- URL leer / Toggle aus: Marker wird nicht im Prompt erwähnt, der Bot fragt höflich nach (oder schlägt einen Handoff vor, wenn Handoff aktiv ist). Keine Loop-Gefahr — die Sales-Persona hat eine Anti-Loop-Regel die explizit gegen Mehrfach-Fragen schützt.
- URL-Host wurde aus der Allow-List entfernt (Super-Admin-Eingriff): Bot schickt einen Text-Fallback „Du erreichst uns gerne direkt — schreib uns deine bevorzugte Zeit und wir melden uns" statt einer kaputten Karte.
- Handoff + Booking parallel aktiv: Beide Marker werden parallel überwacht. Welcher zuerst im Stream auftaucht, gewinnt. Bei Gleichstand gewinnt Handoff (Eskalation ist das sicherere Default).
Sicherheit
- Host-Allow-List: nur die fünf genannten Provider. Erweiterung erfordert Code-Change + Review.
- HTTPS-Pflicht: HTTP-URLs werden mit
ERR_BOOKING_URL_SCHEMEabgelehnt. - Tenant-Isolation: die URL ist tenant-scoped. Andere Tenants sehen sie nicht.
- URL-Länge: gekappt bei 500 Zeichen.
- Kein XSS: die Karte rendert Title + URL als plain text, der Button-Target ist die validierte URL.
DSGVO
Die Karte selbst sammelt keine Daten — sie ist ein Link. Sobald der Visitor klickt, landet er auf der Provider-Seite und untersteht dessen Datenschutz-Bedingungen. Wir empfehlen, in deiner eigenen Datenschutzerklärung den eingesetzten Provider zu erwähnen (Calendly → USA, cal.com → EU-self-hosted möglich, etc.).
Provider-Vergleich (Stand 2026-05)
| Provider | Free-Tier | EU-Hosting | Bemerkung |
|---|---|---|---|
| Calendly | 1 Event-Type | nur Pro | Einfachster Setup |
| cal.com | 5+ Event-Types | Self-Host möglich | Open-Source |
| TidyCal | 1 Type | nein | Lifetime-Deal verfügbar |
| SavvyCal | nur Trial | nein | Premium-Features |
| Acuity | 7-Tage-Trial | nein | Squarespace-Eigentum |
Für DSGVO-strenge Setups: cal.com self-hosted ist die einzige wirklich EU-konforme Option ohne kommerzielle Lizenz.
Was du NICHT in v1 hast
- Multi-URL pro Persona (z.B. Demo-URL vs Support-Call-URL): kommt als v2 wenn Tenant-Demand da ist.
- Booking-Tracking (sehen ob der Visitor wirklich gebucht hat): braucht Provider-spezifische Webhooks. In v1 siehst du das im Provider-Dashboard.
- Embedded Booking-Widget: die Karte öffnet den Link in einem neuen Tab statt das Calendly-Iframe direkt einzubetten. Das ist bewusst — Iframe-Embeds brechen oft an CSP-Headern in Customer-Sites.