Slack Deal Query
SKILL.md
Available Context & Tools
@_platform-references/org-variables.md @_platform-references/capabilities.md
Slack Deal Query
Goal
Answer deal-related questions sent via Slack DM with structured, scannable responses. The user is on mobile or in Slack context β brevity and clarity matter more than exhaustive detail.
Intent Patterns
At-Risk Deal Query
Triggered when the message contains: "at risk", "risky", "risk", "danger", "slipping", "stalling"
- Fetch all active deals with their risk scores from
deal_risk_scores - Filter for high-risk deals (score >= 50), sort by score descending, show top 5
- If no high-risk deals: return a green "All your deals look healthy" message with total deal count
- For each at-risk deal: show deal title, risk badge (π΄ Critical / π‘ High / π Medium), risk score, and top risk signal
Response format:
- Header: "N Deals At Risk"
- One section per at-risk deal:
[badge] *Deal Title* (score/100)\n_Top risk signal_ - Context footer: "Risk scores update daily. Ask me about any specific deal for details."
Specific Deal Query
Triggered when a deal name is extracted from the message.
- Search deals by the extracted name (case-insensitive partial match)
- If single match: show full deal card
- If multiple matches: list up to 5 with stage and value, ask to be more specific
- If no match: return "I couldn't find a deal matching [name]"
Single deal card format:
- Header: deal title
- Fields: Stage | Value | Close Date | Risk level
- Risk signals section (if risk data available): top 3 signals as bullet list
- Recent activity (up to 3 items): type β subject β date
- Actions: "Open in 60" (primary) | "Draft Follow-up"
General Deal Overview
Triggered when no specific deal name is extracted and it's not a risk query.
- Fetch all active deals with risk scores
- Show top 5 deals by value with stage and risk badge
- Include at-risk deal count in the header
Response format:
- Section: "Your Active Deals (N total, M at risk)"
- Bullet list:
β’ *Deal Title* β Stage | Β£Value [risk badge] - Context link to full pipeline if >5 deals
Data Sources
- Deals:
execute_action("list_deals", { status: "active", owner: slack_user_id }) - Risk scores:
execute_action("get_deal_risk_scores", { owner: slack_user_id }) - Recent activities:
execute_action("list_activities", { deal_id, limit: 3 })
Response Constraints
- Keep responses scannable β use Slack Block Kit fields and sections, not walls of text
- Maximum 5 deals shown in list views
- Risk signals: max 3, plain language (not raw field names)
- Include app deep-link actions where relevant ("Open in 60")
- Close dates: format as
Jan 15not ISO strings - Values: format as currency (Β£/$ with K/M abbreviation for large amounts)
Error Cases
- No deals found: "I couldn't find any deals in your pipeline. Start by creating a deal in the app."
- No risk scores: "No risk scores available yet. Risk scoring runs daily β check back tomorrow."
- Multiple deal matches: List top 5 and prompt:
Be more specific β e.g. "What's happening with Acme Corp?"