---
title: Feedback
description: Collect user feedback with an interactive emotion-based widget that creates GitHub Issues
type: integration
summary: An interactive feedback widget that collects user sentiment and creates structured GitHub Issues automatically.
url: /docs/feedback
source: apps/template/content/docs/feedback.mdx
prerequisites:
  - /docs/getting-started
related:
  - /docs/provider
  - /docs/configuration
---

# Feedback

The Feedback feature lets readers share page-level feedback through an interactive widget. Feedback is posted to a centralized GitHub repository as issues so your team can track, label, and respond to user input.

  Help me configure feedback for this Geistdocs project. Check whether feedback is enabled, what `siteId` label is used, and how feedback is sent to the Geistdocs platform and GitHub issues.

## How it works

The feedback widget appears in the table of contents sidebar on every documentation page. When users click "Give feedback", they can:

1. Write their feedback message
2. Select an emotion that represents their experience (🤩, 🙂, 😕, 😭)
3. Optionally provide their name and email
4. Submit their feedback

### Feedback Workflow

When feedback is submitted:

1. The feedback is validated against a JSON schema
2. A new GitHub Issue is created in the configured feedback repository
3. Labels are automatically applied based on the emotion, topic, and other metadata
4. 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 `label` field
- **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
