Darstellung
Feedback-System
Das Feedback-System ermöglicht Nutzern, einzelne Bot-Antworten mit Daumen hoch/runter zu bewerten. Die Bewertungen werden auf der messages-Tabelle gespeichert und können pro Bot und Tenant ausgewertet werden.
DB-Felder
messages-Tabelle
| Spalte | Typ | Beschreibung |
|---|---|---|
| feedback | boolean | true = positiv (Daumen hoch), false = negativ (Daumen runter), NULL = kein Feedback |
| feedback_at | timestamp without time zone | Zeitpunkt der Feedback-Abgabe |
bots-Tabelle
| Spalte | Typ | Default | Beschreibung |
|---|---|---|---|
| enable_feedback | boolean | false | Feedback-Funktion für diesen Bot aktivieren |
Endpoints
GET /api/messages/feedback/stats
Feedback-Statistiken für den aktuellen Tenant. Optional filterbar nach Bot.
Auth: authMiddleware + tenantCheckMiddleware
Query-Parameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
| bot_id | uuid (optional) | Filtert Statistiken auf einen bestimmten Bot |
Response:
json
{
"success": true,
"data": {
"total_feedback": 47,
"positive": 38,
"negative": 9,
"positive_rate": 80.9,
"last_7_days": {
"positive": 12,
"negative": 3
}
}
}POST /api/messages/:id/feedback
Feedback für eine einzelne Nachricht setzen.
Auth: authMiddleware + tenantCheckMiddleware
Request Body:
json
{
"feedback": true
}feedback muss ein Boolean sein (true oder false). Die Nachricht muss zum Tenant gehoeren (Pruefung über Join mit conversations).
Response:
json
{
"success": true,
"data": {
"id": "uuid",
"feedback": true,
"feedback_at": "2026-03-24T10:30:00.000Z"
}
}GET /api/admin/tenants/:id/feedback-stats
Admin-Endpoint für Feedback-Statistiken eines bestimmten Tenants.
Auth: authMiddleware + checkRole('admin')
Query-Parameter:
| Parameter | Typ | Default | Beschreibung |
|---|---|---|---|
| days | integer | 30 | Zeitraum in Tagen |
Response:
json
{
"success": true,
"period_days": 30,
"positive": 38,
"negative": 9,
"total": 47,
"negative_rate": 19.1,
"alert": false
}Das alert-Feld wird true, wenn die negative_rate über 20% liegt. Das signalisiert dem Admin, dass die Bot-Qualitaet geprüft werden sollte.
WhatsApp Reactions
Wenn ein Nutzer auf eine Bot-Nachricht in WhatsApp mit einem Emoji reagiert, wird das als Feedback interpretiert:
- Reaction mit Daumen hoch →
feedback: true
Ablauf
1. Bot sendet Antwort (message in DB)
2. Nutzer bewertet im Dashboard oder via WhatsApp Reaction
3. POST /api/messages/:id/feedback → feedback + feedback_at gesetzt
4. Dashboard zeigt Statistiken via GET /api/messages/feedback/stats
5. Admin prueft tenant-uebergreifend via GET /api/admin/tenants/:id/feedback-stats
6. Bei negative_rate > 20% → alert: true → Bot-Qualitaet prüfen