Feedback
Collect user feedback with an interactive emotion-based widget that creates GitHub Issues
The Feedback feature allows readers to share their thoughts about your documentation pages through an interactive widget. Feedback is automatically posted to a centralized GitHub repository as issues, making it easy to track, label, and respond to user input.
How It Works
The feedback widget appears in the table of contents sidebar on every documentation page. When users click "Give feedback", they can:
- Write their feedback message
- Select an emotion that represents their experience (🤩, 🙂, 😕, 😭)
- Optionally provide their name and email
- Submit their feedback
Feedback Workflow
When feedback is submitted:
- The feedback is validated against a JSON schema
- A new GitHub Issue is created in the configured feedback repository
- Labels are automatically applied based on the emotion, topic, and other metadata
- User details and metadata are formatted into a structured markdown table
Each piece of feedback creates a separate issue, allowing for individual tracking and resolution.
Feedback Schema
The API accepts the following fields:
| Field | Type | Required | Max Length | Description |
|---|---|---|---|---|
note | string | Yes | 16,384 | The feedback message |
url | string | No | 1,024 | Page URL where feedback was submitted |
emotion | string | No | 1 | Emoji representing user sentiment |
topic | string | No | 1,024 | Feedback topic/category |
name | string | No | 1,024 | User's name |
email | string | No | 1,024 | User's email |
ua | string | No | 256 | User agent string |
label | string | No | 64 | Custom label for the issue |
thumbs | string | No | 4 | Thumbs up/down indicator |
reason | string | No | 10 | Reason for thumbs down |
plan | string | No | 10 | User's plan type |
Additional fields are captured as metadata and displayed in the issue body.
Features
Automatic Labeling
Issues are automatically labeled based on:
- Emotion:
emotion-amazed,emotion-happy,emotion-sad,emotion-cry - Topic:
topic-{topic-name} - Plan:
{plan}-plan - Thumbs:
thumbs-up,thumbs-down - Reason:
reason-{reason}(for thumbs down) - Custom labels: Any label passed via the
labelfield - Default labels:
unresolved,vercel-site
Structured Issue Body
Each issue includes a formatted markdown body with:
- The feedback note
- URL where feedback was submitted
- User details table (email, context, IP, user agent)
- Metadata table for any additional fields
Metadata Support
Pass any additional fields in the request body, and they are captured as metadata and displayed in a separate table in the issue. This allows you to include:
- User IDs
- Feature flags
- Experiment groups
- Custom tracking data