> For the complete documentation index, see [llms.txt](https://docs.fullsession.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fullsession.io/feedback-surveys.md).

# 13. Feedback & Surveys

FullSession lets you collect feedback directly on your site with an embeddable **feedback widget**, then read the responses — and watch the sessions behind them. Unlike a long-form survey tool, each FullSession widget asks **one focused question** in one of three formats, which keeps response rates high and the data easy to act on.

<figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FxUtqbBkGCxjsghWJDtTw%2FChatGPT%20Image%20Jun%2016%2C%202026%2C%2001_51_59%20PM.png?alt=media&amp;token=e7f03eb4-b9e3-4c90-bb2c-bcdcf3181b7b" alt="FullSession feedback widget on a live page showing a focused question that visitors can answer with a single click."><figcaption></figcaption></figure>

> Feedback features are gated by permissions (viewing, creating, reading responses, and viewing analytics are separate). If you don't see an action below, your role may not include it.

***

### 13.1 The Three Feedback Types

Every widget you build is one of these three types. Choose based on the question you want answered.

<figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FxL79bbRx7sikot1oTsjS%2FChatGPT%20Image%20Jun%2016%2C%202026%2C%2001_46_58%20PM.png?alt=media&amp;token=e058dcce-00e5-4619-ac47-a85aab95ab0e" alt="FullSession three feedback widget types showing CSAT with an emoji scale, NPS with a 0–10 scale, and Open Ended with free-text responses."><figcaption></figcaption></figure>

#### CSAT — Customer Satisfaction

A **1–5 satisfaction scale**, shown as **emoji faces** or **numbers** (your choice). The five points map to:

| Rating | Meaning                  |
| ------ | ------------------------ |
| 1      | Very dissatisfied (Hate) |
| 2      | Dissatisfied (Dislike)   |
| 3      | Neutral                  |
| 4      | Satisfied (Like)         |
| 5      | Very satisfied (Love)    |

Best for measuring satisfaction with a specific page, feature, or interaction.

#### NPS — Net Promoter Score

A **0–10 scale** asking how likely a visitor is to recommend you. Responses are classified automatically:

| Score | Group          |
| ----- | -------------- |
| 0–6   | **Detractors** |
| 7–8   | **Passives**   |
| 9–10  | **Promoters**  |

Best for measuring overall loyalty and tracking it over time.

#### Open Ended

A **free-text** question. Responses are analyzed for **sentiment** (positive / neutral / negative) automatically, and the text is **full-text searchable**.

Best for capturing qualitative, "in their own words" feedback.

> **These three are the only types.** There's no multi-question survey, multiple-choice, yes/no, star rating, or thumbs widget — and the CSAT (1–5) and NPS (0–10) scales are fixed. Each widget asks one question of one type.

***

### 13.2 Building a Widget

Widgets are created in a **six-step builder**. You move through the steps in order, and the live preview updates as you go.

<div data-with-frame="true"><figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FK2dPfAqqUriKAP9x4aBD%2Fimage.png?alt=media&amp;token=db485250-67b3-49e4-aba5-70ccbf1d429b" alt="FullSession widget builder showing six setup steps from naming to publishing, with a live preview of the feedback widget."><figcaption></figcaption></figure></div>

| Step                      | What you configure                                                                                            |
| ------------------------- | ------------------------------------------------------------------------------------------------------------- |
| **1. Name & Description** | An internal **name** (unique per site) and an optional description                                            |
| **2. Type & Appearance**  | The widget **type** (CSAT / NPS / Open Ended), plus language, position, colors, theme, and (CSAT) emoji style |
| **3. Messages**           | The main **question** and optional follow-up, email-request, and thank-you messages                           |
| **4. Targeting**          | Which **devices** and **pages** the widget appears on                                                         |
| **5. Triggers**           | **When** the widget appears (and how often)                                                                   |
| **6. Finalize**           | **Display mode** (side beacon vs. pop-up) and optional email forwarding of responses                          |

The next sections cover appearance/messages (13.3) and triggers/targeting (13.4) in detail.

***

### 13.3 Appearance & Messages

#### Appearance

You can tailor the widget to match your site:

| Option                   | Choices                                              |
| ------------------------ | ---------------------------------------------------- |
| **Position**             | Middle Right, Middle Left, Bottom Right, Bottom Left |
| **Display mode**         | **Side beacon** (a tab on the edge) or **Pop up**    |
| **Accent color**         | Hex color (default `#0055A8`)                        |
| **Font color**           | Hex color (default `#1F263E`)                        |
| **Theme**                | Light or Dark                                        |
| **Language**             | English, French, or Arabic                           |
| **Emoji style** *(CSAT)* | Emoji faces or numeric 1–5                           |

<figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FXTdFJYQACOdPRuIoi4rz%2Fimage.png?alt=media&amp;token=bbc0b97f-7f67-4d6d-90a9-81c1ee5eeb4c" alt="FullSession appearance options showing position, display mode, accent and font colors, light/dark theme, and CSAT emoji style settings."><figcaption></figcaption></figure>

#### Messages

Beyond the main **question**, a widget can show several optional messages, each with its own on/off switch:

* A **follow-up comment** prompt (so a rater can add detail).
* An **email request** message (to optionally capture the respondent's email).
* A **thank-you** message after submitting.

<div data-with-frame="true"><figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FA3PbUgi7IDsl182qSlcz%2Fimage.png?alt=media&amp;token=d6307d18-5be8-4348-8c25-3b66049ff146" alt="FullSession message steps showing the main question, optional follow-up comment, email request, and thank-you message."><figcaption></figcaption></figure></div>

#### Screenshot capture

A widget can optionally **capture a screenshot** along with the response, giving you visual context for what the visitor was looking at when they answered.

***

### 13.4 Triggers & Targeting

**Targeting** decides *where* a widget can appear; **triggers** decide *when* it actually shows.

#### Targeting

| Targeting          | Options                                                                                       |
| ------------------ | --------------------------------------------------------------------------------------------- |
| **Devices**        | Desktop, Tablets, Phones                                                                      |
| **Pages**          | All pages, or specific URLs matched by **exact / starts with / ends with / contains / regex** |
| **Audience share** | A **percentage of visitors** to show the widget to (default 50%)                              |

<div data-with-frame="true"><figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FrrahLTipUukdjVwFd9kv%2Fimage.png?alt=media&amp;token=fbcac492-10f3-426b-bf82-74a9ebf6f6f8" alt="FullSession targeting settings showing how to restrict a widget by device, pages using URL match rules, and a percentage of visitors."><figcaption></figcaption></figure></div>

#### Triggers

A widget appears when its trigger fires. Available triggers:

| Trigger                   | Fires when…                                     |
| ------------------------- | ----------------------------------------------- |
| **Page Load**             | The page loads                                  |
| **Rage Clicks**           | The visitor rage-clicks                         |
| **Dead Clicks**           | The visitor dead-clicks                         |
| **Error Click**           | A click coincides with an error                 |
| **Scrolled To**           | The visitor scrolls to a given percent (1–100%) |
| **Exits Page**            | The visitor shows exit intent                   |
| **Time After Page Load**  | A set number of seconds after load (1–1000)     |
| **Time After Inactivity** | A set number of seconds of inactivity (1–1000)  |
| **Manual**                | Your code calls it (see below)                  |

Triggering on **frustration signals** (rage, dead, error clicks) is especially powerful — you can ask *"What went wrong?"* at the exact moment a visitor struggles.

<div data-with-frame="true"><figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FzuYbphARTFZsBlvtkUpf%2Fimage.png?alt=media&amp;token=ab6fde36-2501-4666-8327-6aadebf279fb" alt="FullSession trigger settings showing how to configure a delay, device, OS, and browser filters, with per-session persistence options."><figcaption></figcaption></figure></div>

#### Manual triggering from your code

The **Manual** trigger lets you show a widget from your own code, using the tracker API (\[Chapter 3, section 3.5]):

```javascript
window.FUS.triggerWidget('YOUR_WIDGET_ID');
```

Use this to fire feedback at a precise moment in your app — after a key action completes, at the end of a flow, or when your own logic decides the time is right.

#### How often it shows

Each trigger has frequency controls:

* **Persistence** — show **once per session** or **once per user**.
* **Appearance count** — the maximum number of times the widget may appear (1–99).
* **Trigger filters** — further restrict by **device**, **OS**, or **browser**.

> **Targeting is by device, OS, browser, page, and visitor percentage** — there's no targeting by custom attribute or saved segment within the widget itself.

***

### 13.5 Results & Scoring

Each widget type has its own results view, with a headline score and trends over time.

#### CSAT results

<div data-with-frame="true"><figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2F0p5PyTAPCXb8z1iKTREa%2Fimage.png?alt=media&amp;token=afe2a0bf-639f-48be-bd70-2349729b6a41" alt="FullSession CSAT results showing the average score, rating breakdown, and score trend over time."><figcaption></figcaption></figure></div>

* **Average score** (1–5), with an overall **sentiment** label (an average above 3 reads positive, below 2 negative, in between neutral).
* A **breakdown** of how many responses landed on each rating.
* **Total responses** and a **trend chart** over time.

#### NPS results

<div data-with-frame="true"><figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FGPyhkXnkkfMBb3nbSClT%2Fimage.png?alt=media&amp;token=972826f3-b2de-4095-a77a-950d501fa609" alt="FullSession NPS results showing the score on a gauge, promoter/passive/detractor breakdown, and trend over time."><figcaption></figcaption></figure></div>

* The **NPS score**, computed as **(% Promoters − % Detractors)**, shown on a gauge with a rating:

| NPS  | Rating     |
| ---- | ---------- |
| ≥ 70 | Excellent  |
| ≥ 30 | Great      |
| ≥ 0  | Good       |
| < 0  | Needs Work |

* **Total shown**, **all responses**, and **response rate**.
* A **trend** of Promoters / Passives / Detractors over time.

#### Open-Ended results

For open-ended widgets, results center on **sentiment** — the counts and average scores of **positive**, **neutral**, and **negative** responses — so you can gauge the mood of qualitative feedback at a glance.

***

### 13.6 Reading & Filtering Responses

Every individual response is browsable in the responses list, with rich filtering.

<div data-with-frame="true"><figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FAFGPFYcaQCJ6yXnKAdCd%2Fimage.png?alt=media&amp;token=0b6f521b-1e5a-4463-9dc2-0cb294e8866e" alt="FullSession responses list showing each response with comment, device, page, date, and filter options."><figcaption></figcaption></figure></div>

#### What each response shows

| Column                    | Detail                                         |
| ------------------------- | ---------------------------------------------- |
| **Response**              | The rating/emoji/score, or the open-ended text |
| **Comment**               | Any follow-up comment the visitor added        |
| **Device / browser / OS** | The respondent's environment                   |
| **Page**                  | The URL where the feedback was given           |
| **Date**                  | When it was submitted                          |

#### Filtering responses

| Filter             | Options                                                                                          |
| ------------------ | ------------------------------------------------------------------------------------------------ |
| **Time period**    | Last 7 / 15 / 30 / 90 / 180 / 365 days, or all responses                                         |
| **Response value** | By rating (CSAT 1–5), score (NPS 0–10), or sentiment (Open Ended: positive / neutral / negative) |
| **Page URL**       | Responses from a particular page                                                                 |
| **Text search**    | Full-text search of the response text *(Open Ended only)*                                        |

#### Response detail & the session link

Open a response to see its full detail — the respondent's **email** (if captured), **sentiment**, **country**, **device/browser/OS**, the session's **active time** and **event count**, and the **full text**.

Most importantly, each response includes a **link to the session replay** — so you can jump from *"this person rated us 2/5"* straight into watching exactly what they experienced.<br>

<div data-with-frame="true"><figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2Fl4nVLAOluilUv8dpOxIE%2Fimage.png?alt=media&amp;token=0e62cc3d-7fe7-487e-bbc3-6a51f4ed0a40" alt=""><figcaption></figcaption></figure></div>

> **Tip** — the response→session link is the heart of FullSession feedback. A score tells you *that* someone was unhappy; the linked replay shows you *why*.

***

### 13.7 Feedback in Dashboards & Sessions

Feedback data flows into the rest of FullSession.

<figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FmlgNcA9K3kbqDPbNyvE1%2Fimage.png?alt=media&amp;token=88df2a40-e45c-4957-8c58-af4d83363341" alt="FullSession Feedback card on a dashboard showing sentiment over time, scoped to a single widget."><figcaption></figcaption></figure>

#### On dashboards

The **Feedback** dashboard card (\[Chapter 9, section 9.5]) visualizes feedback in three modes:

* **Overview** — summary stats.
* **Trends** — sentiment/score over time.
* **Recent feedback** — a list of the latest responses.

A Feedback card can be **scoped to a single widget**. You can also chart the **Total Feedbacks** and **Answered Feedbacks** measures (\[Chapter 10, section 10.5]) on any card.

#### In sessions

The **Has Answered Feedback** filter (\[Chapter 5, section 5.2]) lets you find sessions where the visitor responded to a widget — a quick way to watch the sessions of people who gave you feedback.

***

### 13.8 Managing Widgets & Limitations

You can run **multiple widgets per site**, each managed independently.

<figure><img src="https://3931781085-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvxfJkYMGfMfN4qlzl0C%2Fuploads%2FwSFSe1hGAwYiRQLcyjoX%2Fimage.png?alt=media&amp;token=20252617-b942-47b8-90cc-d8faedf00526" alt="FullSession widget list showing filters by type (All, CSAT, NPS, Open Ended), with create, copy, edit, and status controls."><figcaption></figcaption></figure>

#### Managing widgets

| Action                    | Notes                                                                     |
| ------------------------- | ------------------------------------------------------------------------- |
| **Create**                | Build a new widget (name must be unique per site)                         |
| **Edit**                  | Update a widget — **but the type can't be changed once it has responses** |
| **Copy**                  | Duplicate a widget (its name gets a "– Copy" suffix)                      |
| **Activate / deactivate** | Turn a widget on or off without deleting it                               |
| **Delete**                | Remove the widget                                                         |
| **Delete a response**     | Remove an individual response (with the right permission)                 |

The widget list can be filtered by type — **All, CSAT, NPS, Open Ended**.

#### Email forwarding

A widget can **forward each response to an email address** — useful for routing feedback to a team inbox in real time.

> This **forwards responses**; it isn't a separate admin "you have new feedback" alert system. For event-driven alerting, see \[Chapter 15 — Alerts & Notifications].

#### What feedback doesn't do

To set expectations clearly, these **don't exist**:

* **No response export** (CSV/Excel) — analyze responses in the app, or pull feedback metrics via the dashboard's CSV card export.
* **No question branching / skip logic** — each widget is a single question.
* **No A/B testing** of widget variants.
* **No custom question types** or custom scales (CSAT 1–5 and NPS 0–10 are fixed).
* **No targeting by custom attribute or segment** within the widget (device/OS/browser/page/percentage only).
* **Languages are English, French, or Arabic** (one language per widget).
* **No two-way conversation** — a feedback widget asks and records an answer; it doesn't let you reply. For a live back-and-forth with visitors, see [Talk to User](/talk-to-user.md).

> **The big picture** — a FullSession feedback widget asks **one** question as **CSAT, NPS, or Open Ended**, built in a six-step flow with full control over **appearance, messages, targeting, and triggers** (including frustration-based and **manual `FUS.triggerWidget`** triggers). Results give you a **CSAT average, NPS gauge, or sentiment** view with trends; the **responses list** filters by period, value, page, and text and **links every response to its session replay**; and feedback flows into **dashboards** and **session filters**. There's no response export, branching, or A/B testing.

***

> **Next up:** \[Chapter 14 — Lift AI] covers FullSession's AI layer — the goals, scheduled runs, and tracked issues that build on the funnels and segments from earlier chapters.
