Rezept: Support-Triage mit Knowledge Base
Eingehende Support-Mails: KB durchsuchen, antworten oder Ticket eskalieren.
Support-Mailbox ist voll mit Standardfragen, die in der FAQ oder Dokumentation längst beantwortet sind. Statt Mitarbeiter manuell sortieren zu lassen: Plattform liest, sucht, antwortet — und eskaliert nur, wenn die KB nicht reicht.
Ziel
- Eingehende Support-Mail an
support@kunde.de(forward auf Workspace-Adresse) - Plattform durchsucht FAQ-KB nach passender Antwort
- Bei Treffer mit hoher Konfidenz: automatische Antwort an Kunden mit KB-Verweis
- Bei niedriger Konfidenz: Ticket im Helpdesk anlegen, an passende Person zuweisen
- In jedem Fall: Slack-Hinweis im Support-Channel mit Vorschlag
Voraussetzungen
- Knowledge Base mit eurer FAQ/Doku befüllt (siehe KB-Konzept)
- Helpdesk-API mit Ticket-Tool (Zendesk, Zammad, Freshdesk, eigenes)
- Slack-Webhook für Support-Channel
1. KB einrichten
/manage/knowledge-bases → Neue KB „Support-FAQ", Sources hinzufügen:
https://kunde.de/faqhttps://kunde.de/hilfehttps://docs.kunde.de
Auf Status completed warten, Entries durchsehen.
2. Such-Tool
tools/kb/searchSupportFaq.php:
<?php
return [
'tools' => [
'searchSupportFaq' => [
'extends' => 'getKnowledge',
'description' => 'Durchsucht die Support-FAQ. Nutze für Fragen zu Produkten, Versand, Rückgabe, Account, Zahlungen.',
'options' => [
'knowledge_base' => 'support-faq',
'limit' => 3,
'min_score' => 6.0,
],
],
],
];
min_score: 6.0 ist die Schwelle für „guter Treffer". Darunter gilt's als unsicher.
3. Antwort-Mail-Tool
tools/support/replyToCustomer.php:
<?php
return [
'tools' => [
'replyToCustomer' => [
'description' => 'Antwortet dem Kunden auf seine Support-Mail.',
'parameters' => [
'type' => 'object',
'properties' => [
'to' => ['type' => 'string'],
'subject' => ['type' => 'string'],
'body' => ['type' => 'string', 'description' => 'HTML, freundlicher Ton, mit Verweis auf KB-Source'],
'kbSource' => ['type' => 'string', 'description' => 'URL des Entries, das die Antwort gestützt hat'],
],
'required' => ['to', 'subject', 'body'],
],
'api' => 'mailgun',
'method' => 'POST',
'path' => 'messages',
'body' => [
'from' => 'Support Kunde <support@kunde.de>',
'to' => '{to}',
'subject' => 'Re: {subject}',
'html' => '{body}',
],
],
],
];
4. Ticket-Tool
tools/support/createTicket.php:
<?php
return [
'tools' => [
'createTicket' => [
'description' => 'Legt ein Ticket im Helpdesk an, wenn die KB keine Antwort liefert.',
'parameters' => [
'type' => 'object',
'properties' => [
'customerEmail' => ['type' => 'string'],
'subject' => ['type' => 'string'],
'message' => ['type' => 'string'],
'category' => [
'type' => 'string',
'enum' => ['versand', 'retoure', 'account', 'zahlung', 'beschwerde', 'sonstiges'],
],
'priority' => [
'type' => 'string',
'enum' => ['low', 'normal', 'high', 'urgent'],
],
],
'required' => ['customerEmail', 'subject', 'message', 'category'],
],
'api' => 'helpdesk',
'method' => 'POST',
'path' => 'tickets',
'body' => [
'requester' => '{customerEmail}',
'subject' => '{subject}',
'description' => '{message}',
'tags' => ['{category}'],
'priority' => '{priority}',
],
'mapping' => [
'ticketId' => 'id',
'url' => 'url',
],
],
],
];
5. Slack-Notification
tools/notify/notifySupportTeam.php:
<?php
return [
'tools' => [
'notifySupportTeam' => [
'description' => 'Schreibt einen Hinweis in den Support-Slack-Channel.',
'parameters' => [
'type' => 'object',
'properties' => [
'action' => ['type' => 'string', 'enum' => ['auto-replied', 'ticket-created']],
'customerEmail' => ['type' => 'string'],
'subject' => ['type' => 'string'],
'summary' => ['type' => 'string'],
'ticketUrl' => ['type' => 'string'],
],
'required' => ['action', 'customerEmail', 'subject', 'summary'],
],
'api' => 'slack',
'method' => 'POST',
'path' => 'TXXXX/BXXXX/cxxxxxxxx',
'body' => [
'text' => '*Support: {action}*\n_{subject}_ von {customerEmail}\n→ {summary}\n{ticketUrl}',
],
],
],
];
6. Email-Prompt
email.php:
<?php
return [
'email.prompt' => <<<PROMPT
Du bist der Support-Triage-Assistent.
Bei jeder Mail:
1. searchSupportFaq mit dem Kern der Frage
2. Wenn du einen Treffer mit hoher Konfidenz hast (Score klar > 6,
Inhalt passt direkt zur Frage):
a. replyToCustomer mit einer freundlichen, hilfreichen Antwort
basierend auf dem KB-Eintrag. Verweise am Ende auf den
ausführlicheren KB-Artikel.
b. notifySupportTeam mit action="auto-replied"
3. Wenn KEIN guter Treffer:
a. createTicket mit passender Kategorie und Priorität
(urgent nur bei Reklamationen, Datenschutzanfragen,
Geld-zurück-Forderungen)
b. notifySupportTeam mit action="ticket-created" und Ticket-URL
Tonfall der Antworten:
- Du sprichst den Kunden mit "Sie" an
- Maximal 3-4 Absätze
- Wenn die Antwort komplex ist: Schritte aufzählen
- Schließe mit "Beste Grüße, Ihr Support-Team von Kunde GmbH"
Antworte NIE auf erkennbare Beschwerden, Erstattungsforderungen,
rechtliche oder Datenschutz-Themen — die immer als Ticket eskalieren.
PROMPT,
];
7. Tool-Allowlist
Ergänze in derselben email.php:
<?php
return [
'email.tools' => [
'searchSupportFaq',
'replyToCustomer',
'createTicket',
'notifySupportTeam',
],
];
8. Testen
Eine Test-Mail mit einer Standardfrage senden („Wie lange dauert die Lieferung?"). Erwartung: searchSupportFaq findet was, replyToCustomer schickt Antwort, Slack-Hinweis kommt.
Eine Test-Mail mit Reklamation („Mein Paket ist beschädigt angekommen"). Erwartung: createTicket mit priority: urgent, kein Auto-Reply.
tm monitor # während der Tests parallel laufen lassen
Erweiterungen
- Sentiment-basierte Eskalation: Mail-Ton wütend → Priorität rauf, sofort Slack
- Sprach-Erkennung: Englische Mails → englische KB durchsuchen, englische Antwort
- Anhänge mit-bewerten: Foto eines beschädigten Produkts → automatisch in Retouren-Workflow
- Stundenstatistik: zusätzliches Tool, das täglich zählt: wie viele auto-replied, wie viele eskaliert, durchschnittliche KB-Score → Dashboard
- KB-Lücken finden: Wenn
searchSupportFaqzu oftmin_scorenicht erreicht: Logging der Queries, regelmäßige Auswertung als „diese Themen fehlen in der FAQ"