Skip to content

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

SpalteTypBeschreibung
feedbackbooleantrue = positiv (Daumen hoch), false = negativ (Daumen runter), NULL = kein Feedback
feedback_attimestamp without time zoneZeitpunkt der Feedback-Abgabe

bots-Tabelle

SpalteTypDefaultBeschreibung
enable_feedbackbooleanfalseFeedback-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:

ParameterTypBeschreibung
bot_iduuid (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:

ParameterTypDefaultBeschreibung
daysinteger30Zeitraum 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