---
title: "NPS breakdown"
description: "Explain the NPS score and the themes that drive detractors, with Deck's score, trend and quotes."
url: "/docs/agents/workflows/nps-breakdown"
---

This page is an agent-readable workflow for Deck. Humans can follow along. Coding agents should treat the steps as the source of truth.

# NPS breakdown — agent workflow

* **Use it when:** the user asks "why did our NPS drop?", "what do detractors complain about?" or "explain our NPS".
* **Outcome:** the user has an explanation of the score: the current score and its basis, the trend, the split of respondents, the themes that drive detractors with quotes, what passives need and Deck's recommendations. Nothing changes in Deck.
* **Needs:** Deck MCP and the Starter plan or higher. On the Free plan, NPS tools return `feature_unavailable`. NPS analysis must be on. Deck turns it on when it first finds NPS feedback, or an admin turns it on in Settings → Organization → NPS Score Analysis.

## 1. Probe Deck MCP

Call `get_user_context`. This must be a real tool call.

* 401 Unauthorized: tell the user to connect Deck MCP in this client (Settings → Connections). Stop.
* No Deck tools: fetch and follow [https://docs.getdeck.io/docs/agents/getting-started/prompts/ai-pm.md](https://docs.getdeck.io/docs/agents/getting-started/prompts/ai-pm.md). Stop this workflow until the tools work.

## 2. Read the score

Call `explore_nps` with no parameters. Add `segment_ids` when the user names segments. Get the segment IDs from `get_overview`.

* `feature_unavailable`: tell the user that NPS through MCP needs the Starter plan or higher. Offer the negative themes instead: `explore_themes` with `view: "high_negative"`. Stop this workflow.
* No responses: Deck has no NPS feedback yet. Tell the user which sources Deck reads. See [NPS sources](/docs/features/nps-score#nps-sources). Stop.

Read the score on the NPS page and its basis (rolling 30 days, or the latest weekly synthesis when there are no recent responses). Also read the all-time score, the breakdown of respondents and the latest synthesis period.

## 3. Read the trend

Call `explore_nps` with `focus: "trends"`. Read the series, the current score, the change, the direction and the weekly respondent shares.

Deck returns up to 3 drivers only when the score went up. When the score went down, explain the drop with the detractor themes in step 4 and the weekly shares. Do not invent a cause.

## 4. Read the respondent groups

Make these calls at the same time:

* `explore_nps` with `respondent_type: "DETRACTOR"` (scores 0-6).
* `explore_nps` with `respondent_type: "PASSIVE"` (scores 7-8).
* `explore_nps` with `respondent_type: "PROMOTER"` (scores 9-10).

Each result gives the count and share of the group, up to 10 top themes with IDs, AI bullets, trending themes and the newest quotes with their response IDs. The detractor themes are the main drivers. The passive themes show what keeps passives from promoting. The promoter themes show what to keep.

## 5. Drill into the top detractor themes

Take the top 3 detractor themes. For each theme, make these calls at the same time:

* `explore_nps` with `view: "responses"`, the `theme_id`, `score_band: "0-3"` and `sort: "recent"`. Read the verbatims.
* `explore_nps` with `view: "responses"`, the `theme_id` and `score_band: "4-6"`.
* `explore_themes` with the `theme_id`. This shows the same theme in all feedback, not only NPS. A theme that is also large outside NPS is a stronger signal.

Listed responses have no respondent name or email. Do not try to find them.

## 6. Read Deck's recommendations

Call `explore_nps` with `focus: "recommendations"`. This answer covers the whole organization, also when you passed `segment_ids`. Its `scope_note` says so.

## 7. Write the breakdown

1. **Score:** Deck's score, its basis and its period. Also give the all-time score.
2. **Trend:** Deck's change and direction, with the drivers when Deck gives them.
3. **Split:** Deck's count and share for promoters, passives and detractors.
4. **Detractor drivers:** the top themes, with Deck's counts, two quotes each and a link.
5. **Passives:** the top themes that keep passives from promoting.
6. **What to keep:** the top promoter themes.
7. **Recommendations:** Deck's recommendations, in short form.
8. **Caveats:** the weekly synthesis timing, any `scope_note` and themes that are small.

For the NPS page link, call `get_platform_links` with one `resources` item that has `resource_type: "nps_dashboard"`. In clients that render MCP Apps, such as Claude and ChatGPT, also offer `show_feedback_insights` to show the NPS view.

## 8. Next steps (optional)

When the user wants to act on a driver, check the backlog first. Call `search_deck` with a keyword from the theme name. To rank the work, fetch and follow [https://docs.getdeck.io/docs/agents/workflows/prioritize-backlog.md](https://docs.getdeck.io/docs/agents/workflows/prioritize-backlog.md).

## Rules

* This workflow only reads.
* Quote Deck's numbers. Do not compute your own. Do not compute NPS from the counts. Use Deck's score.
* Always say the period of a score: rolling 30 days, synthesis or all-time.
* With `segment_ids`, read every `scope_note`. Some parts stay org-wide. Say which parts.
* Deck builds the NPS synthesis once a week, usually on Monday. A new response can be in the counts before it is in the synthesis.
* If the user has more than one Deck organization, call `select_organization` first and pass `org_id` on every call.

## Done when

* The breakdown has the eight sections, or says why a section is left out.
* Each number has its period and comes from a Deck result in this session.
* Each detractor driver has quotes and a Deck link.

See also: [NPS Score](/docs/features/nps-score) and [Model Context Protocol](/docs/integrations/mcp).

---

[View full sitemap](/docs/sitemap)
