Category Intent Decay Watch
Intent decay comes before the competitive add. Catch the leading signal.
Sample output for this workflow will appear here once it is captured.
Run the workflow in Claude, ChatGPT, or Phoenix Playground using the buttons below to see real output.
Overview
Intent on your category dropping is the leading indicator that comes before the competitive add and the adoption decline. This workflow watches `company_intent` for one customer in your category and the adjacent categories — flagging both decay (your category) and rise (competitor categories). Honest about the data limit: `company_intent` returns top-N topics by score, so a topic absent from the result is *inconclusive*, not 'no intent' — falls back to `intent_category` for the explicit topic lookup.
Use cases
Catch the signal that comes before the signal
By the time a competitor product shows up in `company_technographic`, the customer has already been researching them for months. Intent decay on your category + intent rise on the competitor's is what you see *first*. This workflow puts both on one screen — so your CSM acts in the research phase, not the deployment phase.
Honest about absent topics
The default mistake is to read 'topic X not in the intent response' as 'they have no intent on X'. That's wrong — `company_intent` returns top-N by score, so X might be below the cutoff. This workflow uses `intent_category` as a fallback for the explicit topic lookup; if both come up empty, the verdict is *inconclusive*, not *no signal*. Your team trusts outputs that admit when they're uncertain.
View workflow prompt
# Category Intent Decay Watch
## Parameters
- `{{domain}}` *(required)* — Customer company domain. Example: `acme.com`
- `{{category}}` *(required)* — Your product category — anchors which topics to resolve and watch. Example: `B2B intent data`
- `{{competitor_categories}}` *(optional)* — Comma-separated adjacent / competitor categories to watch for intent rise. Example: `buyer intent platforms, prospect data platforms`
## Purpose
Watch intent at {{domain}} for {{category}} (your category — looking for decay) and {{competitor_categories}} (looking for rise). Intent decay is the earliest churn indicator. Honest about the data limit: `company_intent` returns top-N topics by score so a topic absent from the result is *inconclusive*, not "no signal".
## Process
1. **Resolve topics** — `list_intent_topics` for {{category}} and (if supplied) each entry in {{competitor_categories}}. Capture canonical topic_ids.
2. **Fetch full intent picture** — `company_intent` for {{domain}} with `limit: 200` (max allowed). The endpoint uses `extra: "forbid"` so per-category server-side filtering is not supported.
3. **Post-fetch filter** — for each resolved topic_id, look it up in the returned `topics[]`. Capture `trend` and `score` (current intent score 0-100).
4. **Inconclusive fallback** — for any topic_id NOT in `topics[]`, treat as inconclusive. Fall back to `intent_category` with the specific `topic_name` (returns company-list for that topic); filter the result to {{domain}} to see if {{domain}} has any signal on that topic. If absent in that result too, mark "no signal detected (may be below visibility threshold)".
5. **Context** — `company_firmographic` for {{domain}} static context. For major events in the last 90 days (M&A, restructuring) that could explain a real category disengagement vs noise, route through `web_search`. Firmographic is static-only, not an event stream.
## Output Format
- `# 📉 {{domain}} — Category Intent Watch`
- `## {{category}} (your category)` — table per topic: topic_name | score | trend | status (Decay / Stable / Rise / Inconclusive)
- `## {{competitor_categories}} (competitor categories)` — same table
- `## Verdict` — one of: Watch (no decay + no competitor rise), Yellow (decay OR competitor rise), Red (decay AND competitor rise)
- `## Context` — 1-2 sentences on any major event from `company_firmographic`
## Quality Checklist
- Every topic cites its trend value, not just a label
- "Inconclusive" used honestly when a topic is absent from `topics[]` and the `intent_category` fallback finds no signal — never claim "no decay"
- Verdict matches the named thresholds (decay AND rise = Red)
- Cap tool calls at ~10 (1 per category for `list_intent_topics`, 1 `company_intent`, 1-2 `intent_category` fallbacks, 1 `company_firmographic`)