---
title: "Competitor finding to backlog"
description: "Turn a competitor finding into an opportunity on the Deck backlog, or add it as evidence to an opportunity that exists."
url: "/docs/agents/workflows/competitor-finding-to-backlog"
---

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

# Competitor finding to backlog — agent workflow

* **Use it when:** the user says "add this competitor weakness to our backlog", "promote this teaser" or "attach these competitor reviews to our export opportunity".
* **Outcome:** the Deck backlog has one opportunity with the competitor evidence attached. Deck can also match the user's own customer feedback to it. Or an opportunity that exists gets more competitor evidence.
* **Needs:** Deck MCP, Competitors on for the workspace and a published competitor report. Any member with MCP access can use the write tools in this workflow.

## 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. Find the finding

When the user came from the competitor gaps workflow, use the IDs from that workflow and go to step 3. Otherwise, find the finding with `explore_competitors`:

* A subtheme: call it with `view: "subthemes"` and `group` (`strengths`, `weaknesses`, `other` or `all`). Then call it with the `subtheme_id` to read its quotes and competitor mix.
* An opportunity teaser: call it with `view: "teasers"`. Then call it with the teaser ID as `opportunity_id` to read its insights.
* Chosen competitor insights: call it with `view: "insights"` and `limit: 100`. Add `subtheme_id` or `competitor_id` as filters. Page with `cursor`.

`feature_unavailable` means that Competitors is off. An organization admin turns it on in Settings → Competitors. Stop.

Show the finding to the user and confirm that it is the right one.

## 3. Check for an opportunity that exists

Make these calls at the same time:

* `search_deck` with a keyword from the finding and `types` set to `opportunity`.
* `explore_opportunity_backlog` with `min_evidence: 0`.

When a related opportunity exists, ask: "Add this evidence to the opportunity that exists, or create a new one?" Promoting the same subtheme or teaser again returns the opportunity that exists. It does not make a copy.

## 4. Prepare the write

**New opportunity.** Prepare the inputs for `create_opportunity_from_competitor_finding`:

* `source_type`: `subtheme`, `opportunity_teaser` or `insights`.
* `source_id`: the subtheme or teaser ID. Use it with `subtheme` and `opportunity_teaser`.
* `insight_ids`: 1-100 competitor insight IDs. Use it with `insights`.
* `title`: 1-255 characters. Name the customer problem, not the competitor.
* `include_first_party_feedback`: `true` lets Deck agents match the user's own customer feedback to the new opportunity. Recommend `true` when the competitor gaps workflow found first-party evidence.

**Opportunity that exists.** Prepare the inputs for `add_competitor_insights_to_opportunity`: the `opportunity_id` and 1-100 competitor insight IDs. This tool takes only competitor insight IDs. For the user's own insights, themes or subthemes, use `add_opportunity_evidence`.

## 5. Show the plan and get a yes

Show the tool, the finding, the title and the matching choice. Wait for a clear yes. Do not call a write tool before the yes.

## 6. Write

Call the tool from step 4.

* Check the result for a top-level `error` key. Show the message to the user.
* An identical call in the same organization within 24 hours returns the first result. It does not run again.
* After `add_competitor_insights_to_opportunity`, Deck does not match first-party feedback again. Duplicate insight IDs are ignored. MCP cannot remove competitor insights from an opportunity.

## 7. Check the result

Call `explore_opportunity_backlog` with the `opportunity_id`. The default backlog list hides items with fewer than 3 pieces of evidence, so always read the item by its ID.

* Check that the evidence lists the competitor insights.
* Read `first_party_matching`. While Deck agents still match feedback, tell the user that more evidence can arrive. The Deck page shows "Agents at work" until the match finishes.
* Give the user the `deck_url`.

## 8. Next steps (optional)

Offer these steps. Get a yes before each write.

* Scope the opportunity to a segment: `set_opportunity_segments`. It replaces the earlier segments.
* Link it to an initiative that exists: `link_opportunity_initiative`.
* Start an initiative from it: `create_initiative_from_opportunity`.
* Plan delivery: fetch and follow [https://docs.getdeck.io/docs/agents/workflows/opportunity-to-delivery.md](https://docs.getdeck.io/docs/agents/workflows/opportunity-to-delivery.md).

## Rules

* Show the plan and get a yes before you call write tools.
* Use competitor insight IDs only with `add_competitor_insights_to_opportunity` and the `insights` source type. Use first-party insight IDs only with `add_opportunity_evidence`.
* Do not start new research in this workflow. `start_competitor_research` and `add_competitor` spend credits and send email. They need an explicit yes every time.
* Quote Deck's numbers. Do not compute your own.
* If the user has more than one Deck organization, call `select_organization` first and pass `org_id` on every call.

## Done when

* `explore_opportunity_backlog` with the `opportunity_id` shows the opportunity with the competitor evidence.
* The user has the `deck_url` and the status of first-party matching.
* No write ran without a yes.

See also: [Competitors](/docs/features/competitors), [Opportunity Backlog](/docs/features/opportunity-backlog) and [Write responses and retries](/docs/integrations/mcp#write-responses-and-retries).

---

[View full sitemap](/docs/sitemap)
