Skip to main content

Feedback

Feedback is submitted by respondents via room links or the embedded widget. These endpoints let you query, analyze, and moderate collected responses.

All endpoints require authentication unless noted.


Submit feedback (public)

POST /api/feedback/submit

This is the public endpoint used by room share links. No auth required.

{
"instructorId": "abc123",
"eventType": "team-retrospective",
"feedback": "Great session, very productive.",
"sentiment": "positive",
"tags": ["helpful", "clear"]
}

Get paginated feedback

GET /api/feedback/paginated

Query parameters:

ParameterTypeDescription
pagenumberPage number (default: 1)
limitnumberItems per page (default: 20)
sentimentpositive | neutral | negativeFilter by sentiment
eventTypestringFilter by room name
instructorIdstringFilter by instructor
searchstringFull-text search
startDateISO 8601Filter from date
endDateISO 8601Filter to date

Response 200

{
"data": [
{
"_id": "64a1b2c3d4e5f6a7b8c9d0e1",
"feedback": "Very helpful session.",
"sentiment": "positive",
"eventType": "team-retrospective",
"tags": ["helpful"],
"createdAt": "2024-03-15T14:22:00.000Z"
}
],
"total": 340,
"page": 1,
"limit": 20,
"totalPages": 17
}

GET /api/feedback/trends

Returns time-series data for rendering sentiment trend charts. Accepts the same date range parameters as the paginated endpoint.


Get word cloud data

GET /api/feedback/wordcloud

Returns raw feedback text for rendering a word cloud. Filtered by the same parameters as paginated feedback.


Get AI reasoning

GET /api/feedback/reasoning/:feedbackId

Returns the AI model's reasoning for the sentiment classification of a specific feedback item.


Delete feedback

DELETE /api/feedback
{
"ids": [
"64a1b2c3d4e5f6a7b8c9d0e1",
"64a1b2c3d4e5f6a7b8c9d0e2"
]
}

Bulk deletion. Requires admin role.


Serious concerns

Serious concerns are feedback items flagged (manually or automatically) as requiring attention.

List serious concerns

GET /api/feedback/serious-concerns

Supports page, limit, resolved (boolean) query parameters.

Unresolved count

GET /api/feedback/serious-concerns/unresolved-count

Returns { "count": 3 }. Useful for badge indicators in the UI.

Resolve a concern

POST /api/feedback/:id/resolve

Marks the concern as reviewed and resolved.

Unresolve a concern

POST /api/feedback/:id/unresolve

Reopens a previously resolved concern.


Flagged feedback

GET /api/feedback/flagged-feedback

Returns feedback items that were flagged by the moderation system. Requires admin role.