skills/sixtysecondsapp/use60/Slack Deal Query

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"

  1. Fetch all active deals with their risk scores from deal_risk_scores
  2. Filter for high-risk deals (score >= 50), sort by score descending, show top 5
  3. If no high-risk deals: return a green "All your deals look healthy" message with total deal count
  4. 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.

  1. Search deals by the extracted name (case-insensitive partial match)
  2. If single match: show full deal card
  3. If multiple matches: list up to 5 with stage and value, ask to be more specific
  4. 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.

  1. Fetch all active deals with risk scores
  2. Show top 5 deals by value with stage and risk badge
  3. 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 15 not 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?"
Weekly Installs
0
First Seen
Jan 1, 1970