Workspace audit
Audit what Deck knows about your product, which sources and integrations feed it, how many credits are left, and where the gaps are.
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. Stop this workflow until the tools work.
- More than one Deck organization: call
select_organization, ask which one to audit, and pass itsorg_idon 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 readnps_headline.explore_workspacewithview: "settings": readviewer_roleand which features are on (NPS, segments, Competitors). A member cannot change these settings.explore_workspacewithview: "credits": read the plan,warning_levelandblocked_items.explore_integrationswith no parameters: readcountsand thestate,flowingandlock_messageof each integration.
3. Check the sources
- Call
list_sourceswith no filters. Readtotalandprocessing_summary:active_count,credit_blocked_countandfailed_count. The type breakdown in the message counts only the returned page, not the organization. For the count of each source type, calllist_sourcesonce for eachcontent_type(USER_INTERVIEW,SALES_CALL,CUSTOMER_SERVICE_TICKET,SURVEY,WIDGET_FEEDBACK,CHAT_MESSAGE,EMAIL_RESPONSE,ANALYTICSandOTHER) withlimit: 1, at the same time, and readtotal. - When
failed_countis more than 0, calllist_sourceswithstatuses: ["FAILED"]. Then pass up to 50 of those IDs asfeedback_idsto get the reason for each failure. - Call
list_sourceswith import_source set toCSV, then withNOTION. Readstatus,total_rowsandfailed_rowsof each upload. - For each integration that
explore_integrationsmarksneeds_attention, callexplore_integrationswith itsintegration_type. Record the guidance. - When Slack is
active, callexplore_integrationswithintegration_type: "SLACK"andview: "slack_channels". Recordcounts.needs_invite.
4. Check the coverage
Make these calls in parallel:
explore_themeswithsort: "insight_count": the largest themes.explore_themeswithinclude_empty: true,sort: "insight_count"anddirection: "asc": the themes with no insights come first.explore_subthemeswith thetheme_idof each of the top 3 themes andsegment_scope: "all_customers"(Starter plan or higher): readtheme_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 belowmin_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_competitorswith no parameters: the tracked competitors, orsuggested_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, Migrate surveys or 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, or fix the failure reason |
| Low credits | warning_level is exhausted, items_waiting or critical | 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 |
| Empty themes | Themes from the include_empty call with 0 insights | Review the theme taxonomy |
| 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, NPS and 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.