---
title: "Workspace audit"
description: "Audit what Deck knows about your product, which sources and integrations feed it, how many credits are left, and where the gaps are."
url: "/docs/agents/workflows/workspace-audit"
---

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

# Workspace audit — agent workflow

* **Use it when:** the user asks "what does Deck know about us?", "audit my Deck workspace" or "is Deck set up correctly?", or before a planning cycle.
* **Outcome:** the user has a short audit with Deck's numbers for sources, integrations, credits and coverage, and a ranked list of gaps. Each gap has one next step. Nothing changes in Deck.
* **Needs:** Deck MCP. Any role with MCP access can run it. NPS and subthemes need the Starter plan or higher. Only organization admins can change settings, integrations and billing.

## 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.
* More than one Deck organization: call `select_organization`, ask which one to audit, and pass its `org_id` on every later call.

## 2. Read the snapshot

Make these calls in parallel. They do not depend on each other.

* `get_overview`: read the data counts, the top themes, the insights of the last 7 days and the segments. On the Starter plan or higher, also read `nps_headline`.
* `explore_workspace` with `view: "settings"`: read `viewer_role` and which features are on (NPS, segments, Competitors). A member cannot change these settings.
* `explore_workspace` with `view: "credits"`: read the plan, `warning_level` and `blocked_items`.
* `explore_integrations` with no parameters: read `counts` and the `state`, `flowing` and `lock_message` of each integration.

## 3. Check the sources

1. Call `list_sources` with no filters. Read `total` and `processing_summary`: `active_count`, `credit_blocked_count` and `failed_count`. The type breakdown in the message counts only the returned page, not the organization. For the count of each source type, call `list_sources` once for each `content_type` (`USER_INTERVIEW`, `SALES_CALL`, `CUSTOMER_SERVICE_TICKET`, `SURVEY`, `WIDGET_FEEDBACK`, `CHAT_MESSAGE`, `EMAIL_RESPONSE`, `ANALYTICS` and `OTHER`) with `limit: 1`, at the same time, and read `total`.
2. When `failed_count` is more than 0, call `list_sources` with `statuses: ["FAILED"]`. Then pass up to 50 of those IDs as `feedback_ids` to get the reason for each failure.
3. Call `list_sources` with import\_source set to `CSV`, then with `NOTION`. Read `status`, `total_rows` and `failed_rows` of each upload.
4. For each integration that `explore_integrations` marks `needs_attention`, call `explore_integrations` with its `integration_type`. Record the guidance.
5. When Slack is `active`, call `explore_integrations` with `integration_type: "SLACK"` and `view: "slack_channels"`. Record `counts.needs_invite`.

## 4. Check the coverage

Make these calls in parallel:

* `explore_themes` with `sort: "insight_count"`: the largest themes.
* `explore_themes` with `include_empty: true`, `sort: "insight_count"` and `direction: "asc"`: the themes with no insights come first.
* `explore_subthemes` with the `theme_id` of each of the top 3 themes and `segment_scope: "all_customers"` (Starter plan or higher): read `theme_summary.uncategorized_insight_count`, the number of insights that are not in a subtheme yet. On the Free plan, record "needs Starter" and continue.
* `explore_segments`: the segments and their insight counts. When segments are off, record that.
* `explore_opportunity_backlog`: the items and the number of items that are hidden below `min_evidence`.
* `explore_nps` (Starter plan or higher): the NPS summary, when NPS is on.
* `list_widgets`: the active in-app feedback widgets and their feedback counts.
* `explore_competitors` with no parameters: the tracked competitors, or `suggested_competitors`. Never add competitor names of your own.

## 5. Find the gaps

Mark each item that applies. Keep Deck's wording and numbers.

| Gap                       | Signal in the results                                                 | Next step                                                                                                                                                                                           |
| ------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Few or no sources         | Low data counts in `get_overview`, or a low `total` in `list_sources` | [Connect feedback stack](/docs/agents/workflows/connect-feedback-stack), [Migrate surveys](/docs/agents/workflows/migrate-surveys) or [Import interviews](/docs/agents/workflows/import-interviews) |
| One source type only      | Only one `content_type` call in step 3 has a `total` above 0          | Add a second channel, for example support tickets or interviews                                                                                                                                     |
| Broken integration        | `needs_attention`, or `active` and not `flowing`                      | An admin reconnects it in Settings → Integrations                                                                                                                                                   |
| Failed or waiting work    | `failed_count`, `credit_blocked_count` or `failed_rows` above 0       | [Credits readiness check](/docs/agents/workflows/credits-readiness-check), or fix the failure reason                                                                                                |
| Low credits               | `warning_level` is `exhausted`, `items_waiting` or `critical`         | [Credits readiness check](/docs/agents/workflows/credits-readiness-check)                                                                                                                           |
| Slack channels not synced | `needs_invite` above 0                                                | Run `/invite Deck` in those channels. An admin adds them in Settings → Integrations → Slack                                                                                                         |
| No in-app feedback        | `list_widgets` shows no active widget                                 | [Install a feedback widget](/docs/agents/workflows/install-feedback-widget)                                                                                                                         |
| Empty themes              | Themes from the `include_empty` call with 0 insights                  | [Review the theme taxonomy](/docs/agents/workflows/taxonomy-review)                                                                                                                                 |
| Thin backlog              | Most items are hidden below `min_evidence`                            | Bring in more feedback first                                                                                                                                                                        |
| Features off              | Segments, NPS or Competitors off                                      | An admin turns them on. See [Segments](/docs/features/segments), [NPS](/docs/features/nps-score) and [Competitors](/docs/features/competitors)                                                      |

## 6. Write the audit

Write five short sections: Sources, Integrations, Credits, Coverage and Gaps. Put the most important gap first. Add the `deck_url` of each item, so the user can open it in Deck. When the user is a member, write each admin task as a request that the user can send to an organization admin.

## Rules

* This workflow only reads. Do not call write tools.
* Quote Deck's numbers. Do not compute your own.
* Do not compute percentages, totals or trends from the counts. Quote the values that Deck returns.
* When a tool returns `feature_unavailable`, record the plan limit and continue. Do not stop the audit.
* No MCP tool imports feedback or connects an integration. Do not say that the agent can do it.
* Never ask for a `dk_` API key, a password or a token.

## Done when

* The user has the five sections, and each number comes from a tool result in this session.
* Each gap has one next step with a link or a Deck setting.
* No write tool was called.

---

[View full sitemap](/docs/sitemap)
