@devrev-computer/skills 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/bin/install.mjs +158 -0
- package/package.json +33 -0
- package/skills/account-evaluation/account-evaluation.md +64 -0
- package/skills/account-research/account-research.md +323 -0
- package/skills/account-research/references/signals-guide.md +52 -0
- package/skills/create-workflow-template/create-workflow-template.md +1091 -0
- package/skills/create-workflow-template/examples/3592-Generate rca from pia-template.json +1 -0
- package/skills/create-workflow-template/examples/4392-Async opportunity review agent-template.json +1 -0
- package/skills/create-workflow-template/examples/4441-Ticket escalator from customer message-template.json +1 -0
- package/skills/create-workflow-template/examples/4505-Auto-update issue tcd as end of sprint date-template.json +1 -0
- package/skills/create-workflow-template/examples/5040-Devrevu - enablement journey - poc emails-template.json +1 -0
- package/skills/create-workflow-template/examples/5158-Devrevu - enablement journey - mailing for non enablement journey users-template.json +1 -0
- package/skills/create-workflow-template/examples/5216-Account segment missing notification-template.json +1 -0
- package/skills/create-workflow-template/examples/working-csat-score-on-ticket-resolved.json +1 -0
- package/skills/create-workflow-template/examples/working-enhancement-replace-agent.json +1 -0
- package/skills/create-workflow-template/examples/working-invoke-code-sample.json +1 -0
- package/skills/create-workflow-template/examples/working-loop-variable-sample.json +1 -0
- package/skills/create-workflow-template/operations/actions.md +2919 -0
- package/skills/create-workflow-template/operations/blockings.md +38 -0
- package/skills/create-workflow-template/operations/controls.md +108 -0
- package/skills/create-workflow-template/operations/schema-index.md +166 -0
- package/skills/create-workflow-template/operations/schemas/account_created.md +58 -0
- package/skills/create-workflow-template/operations/schemas/account_updated.md +73 -0
- package/skills/create-workflow-template/operations/schemas/add_comment.md +29 -0
- package/skills/create-workflow-template/operations/schemas/airdrop_sync_run_started.md +33 -0
- package/skills/create-workflow-template/operations/schemas/airdrop_sync_run_status_updated.md +35 -0
- package/skills/create-workflow-template/operations/schemas/article_created.md +96 -0
- package/skills/create-workflow-template/operations/schemas/article_updated.md +135 -0
- package/skills/create-workflow-template/operations/schemas/ask_ai.md +11 -0
- package/skills/create-workflow-template/operations/schemas/classify_object.md +22 -0
- package/skills/create-workflow-template/operations/schemas/contact_created.md +43 -0
- package/skills/create-workflow-template/operations/schemas/contact_updated.md +65 -0
- package/skills/create-workflow-template/operations/schemas/conversation_created.md +108 -0
- package/skills/create-workflow-template/operations/schemas/conversation_sla_tracker_updated.md +46 -0
- package/skills/create-workflow-template/operations/schemas/conversation_updated.md +130 -0
- package/skills/create-workflow-template/operations/schemas/convert_conversation_to_ticket.md +13 -0
- package/skills/create-workflow-template/operations/schemas/create_account.md +62 -0
- package/skills/create-workflow-template/operations/schemas/create_article.md +79 -0
- package/skills/create-workflow-template/operations/schemas/create_brand.md +42 -0
- package/skills/create-workflow-template/operations/schemas/create_contact.md +65 -0
- package/skills/create-workflow-template/operations/schemas/create_dm.md +53 -0
- package/skills/create-workflow-template/operations/schemas/create_enhancement.md +63 -0
- package/skills/create-workflow-template/operations/schemas/create_incident.md +136 -0
- package/skills/create-workflow-template/operations/schemas/create_issue.md +150 -0
- package/skills/create-workflow-template/operations/schemas/create_meeting.md +105 -0
- package/skills/create-workflow-template/operations/schemas/create_opportunity.md +123 -0
- package/skills/create-workflow-template/operations/schemas/create_ticket.md +184 -0
- package/skills/create-workflow-template/operations/schemas/csat_response_received.md +73 -0
- package/skills/create-workflow-template/operations/schemas/dev_user_created.md +54 -0
- package/skills/create-workflow-template/operations/schemas/dev_user_updated.md +99 -0
- package/skills/create-workflow-template/operations/schemas/enhancement_created.md +46 -0
- package/skills/create-workflow-template/operations/schemas/enhancement_updated.md +89 -0
- package/skills/create-workflow-template/operations/schemas/evaluate_sentiment.md +14 -0
- package/skills/create-workflow-template/operations/schemas/execute_metric_action.md +11 -0
- package/skills/create-workflow-template/operations/schemas/feature_created.md +40 -0
- package/skills/create-workflow-template/operations/schemas/for_each.md +45 -0
- package/skills/create-workflow-template/operations/schemas/get_account.md +59 -0
- package/skills/create-workflow-template/operations/schemas/get_airdrop_sync_unit.md +32 -0
- package/skills/create-workflow-template/operations/schemas/get_brand.md +40 -0
- package/skills/create-workflow-template/operations/schemas/get_complete_enhancement_details.md +13 -0
- package/skills/create-workflow-template/operations/schemas/get_conversation.md +120 -0
- package/skills/create-workflow-template/operations/schemas/get_customer.md +60 -0
- package/skills/create-workflow-template/operations/schemas/get_enhancement.md +66 -0
- package/skills/create-workflow-template/operations/schemas/get_feature.md +56 -0
- package/skills/create-workflow-template/operations/schemas/get_incident.md +85 -0
- package/skills/create-workflow-template/operations/schemas/get_issue.md +117 -0
- package/skills/create-workflow-template/operations/schemas/get_kg_schema.md +23 -0
- package/skills/create-workflow-template/operations/schemas/get_meeting.md +87 -0
- package/skills/create-workflow-template/operations/schemas/get_metric_trackers.md +20 -0
- package/skills/create-workflow-template/operations/schemas/get_node_schema.md +29 -0
- package/skills/create-workflow-template/operations/schemas/get_opportunity.md +93 -0
- package/skills/create-workflow-template/operations/schemas/get_org_user.md +57 -0
- package/skills/create-workflow-template/operations/schemas/get_org_user_preference.md +40 -0
- package/skills/create-workflow-template/operations/schemas/get_part.md +55 -0
- package/skills/create-workflow-template/operations/schemas/get_self.md +54 -0
- package/skills/create-workflow-template/operations/schemas/get_session_details.md +45 -0
- package/skills/create-workflow-template/operations/schemas/get_sprint_board.md +103 -0
- package/skills/create-workflow-template/operations/schemas/get_ticket.md +136 -0
- package/skills/create-workflow-template/operations/schemas/get_workspace.md +21 -0
- package/skills/create-workflow-template/operations/schemas/go_back.md +13 -0
- package/skills/create-workflow-template/operations/schemas/http.md +38 -0
- package/skills/create-workflow-template/operations/schemas/hybrid_search.md +144 -0
- package/skills/create-workflow-template/operations/schemas/if_else.md +16 -0
- package/skills/create-workflow-template/operations/schemas/incident_created.md +88 -0
- package/skills/create-workflow-template/operations/schemas/incident_updated.md +126 -0
- package/skills/create-workflow-template/operations/schemas/init_variable.md +67 -0
- package/skills/create-workflow-template/operations/schemas/invoice_created.md +21 -0
- package/skills/create-workflow-template/operations/schemas/invoice_updated.md +41 -0
- package/skills/create-workflow-template/operations/schemas/invoke_code.md +132 -0
- package/skills/create-workflow-template/operations/schemas/issue_created.md +105 -0
- package/skills/create-workflow-template/operations/schemas/issue_sla_tracker_updated.md +46 -0
- package/skills/create-workflow-template/operations/schemas/issue_updated.md +172 -0
- package/skills/create-workflow-template/operations/schemas/link_incident_with_issue.md +14 -0
- package/skills/create-workflow-template/operations/schemas/link_ticket_with_issue.md +14 -0
- package/skills/create-workflow-template/operations/schemas/list_enhancements.md +74 -0
- package/skills/create-workflow-template/operations/schemas/list_issues.md +108 -0
- package/skills/create-workflow-template/operations/schemas/list_sessions.md +79 -0
- package/skills/create-workflow-template/operations/schemas/list_sprint.md +29 -0
- package/skills/create-workflow-template/operations/schemas/list_web_sessions.md +87 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_accounts.md +106 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_articles.md +126 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_customers.md +88 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_dev_users.md +75 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_enhancements.md +112 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_incidents.md +113 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_issues.md +217 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_meetings.md +150 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_opportunity.md +161 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_sprints.md +50 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_tickets.md +203 -0
- package/skills/create-workflow-template/operations/schemas/manual_trigger.md +11 -0
- package/skills/create-workflow-template/operations/schemas/meeting_created.md +116 -0
- package/skills/create-workflow-template/operations/schemas/meeting_updated.md +152 -0
- package/skills/create-workflow-template/operations/schemas/oasis_sql_execute.md +11 -0
- package/skills/create-workflow-template/operations/schemas/opportunity_created.md +92 -0
- package/skills/create-workflow-template/operations/schemas/opportunity_updated.md +124 -0
- package/skills/create-workflow-template/operations/schemas/pick_user.md +16 -0
- package/skills/create-workflow-template/operations/schemas/question_answer_created.md +44 -0
- package/skills/create-workflow-template/operations/schemas/question_answer_updated.md +75 -0
- package/skills/create-workflow-template/operations/schemas/recall_chats.md +13 -0
- package/skills/create-workflow-template/operations/schemas/router.md +15 -0
- package/skills/create-workflow-template/operations/schemas/send_notification.md +19 -0
- package/skills/create-workflow-template/operations/schemas/set_variable.md +67 -0
- package/skills/create-workflow-template/operations/schemas/sleep_for.md +12 -0
- package/skills/create-workflow-template/operations/schemas/sleep_until.md +17 -0
- package/skills/create-workflow-template/operations/schemas/sprint_updated.md +37 -0
- package/skills/create-workflow-template/operations/schemas/suggest_part.md +14 -0
- package/skills/create-workflow-template/operations/schemas/task_updated.md +79 -0
- package/skills/create-workflow-template/operations/schemas/test_example.md +16 -0
- package/skills/create-workflow-template/operations/schemas/ticket_created.md +136 -0
- package/skills/create-workflow-template/operations/schemas/ticket_sla_tracker_updated.md +46 -0
- package/skills/create-workflow-template/operations/schemas/ticket_updated.md +198 -0
- package/skills/create-workflow-template/operations/schemas/timeline_comment_created.md +70 -0
- package/skills/create-workflow-template/operations/schemas/update_account.md +68 -0
- package/skills/create-workflow-template/operations/schemas/update_article.md +95 -0
- package/skills/create-workflow-template/operations/schemas/update_brand.md +44 -0
- package/skills/create-workflow-template/operations/schemas/update_contact.md +53 -0
- package/skills/create-workflow-template/operations/schemas/update_conversation.md +149 -0
- package/skills/create-workflow-template/operations/schemas/update_enhancement.md +64 -0
- package/skills/create-workflow-template/operations/schemas/update_incident.md +156 -0
- package/skills/create-workflow-template/operations/schemas/update_issue.md +173 -0
- package/skills/create-workflow-template/operations/schemas/update_meeting.md +114 -0
- package/skills/create-workflow-template/operations/schemas/update_opportunity.md +137 -0
- package/skills/create-workflow-template/operations/schemas/update_question_answer.md +60 -0
- package/skills/create-workflow-template/operations/schemas/update_ticket.md +188 -0
- package/skills/create-workflow-template/operations/schemas/watch_ticket_for_updates.md +225 -0
- package/skills/create-workflow-template/operations/schemas/web_search.md +17 -0
- package/skills/create-workflow-template/operations/schemas/while.md +24 -0
- package/skills/create-workflow-template/operations/schemas/widget_created.md +75 -0
- package/skills/create-workflow-template/operations/schemas/widget_updated.md +98 -0
- package/skills/create-workflow-template/operations/schemas/workspace_created.md +20 -0
- package/skills/create-workflow-template/operations/triggers.md +1583 -0
- package/skills/customer-brief/customer-brief.md +66 -0
- package/skills/deal-review-meddpicc/deal-review-meddpicc.md +58 -0
- package/skills/next-step-for-opportunity/next-step-for-opportunity.md +55 -0
- package/skills/opportunity-feature-prioritizer/SKILL.md +183 -0
- package/skills/sales-call-plan-coach/sales-call-plan-coach.md +73 -0
- package/skills/sales-context/sales-context.md +44 -0
- package/skills/sales-search-and-lookup/sales-search-and-lookup.md +58 -0
- package/skills/skill-creator/SKILL.md +570 -0
- package/skills/skill-creator/agents/analyzer.md +274 -0
- package/skills/skill-creator/agents/comparator.md +202 -0
- package/skills/skill-creator/agents/grader.md +223 -0
- package/skills/skill-creator/assets/eval_review.html +146 -0
- package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator/references/schemas.md +430 -0
- package/skills/skill-creator/references/tool-patterns.md +290 -0
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/skill-creator/scripts/generate_report.py +326 -0
- package/skills/skill-creator/scripts/improve_description.py +247 -0
- package/skills/skill-creator/scripts/package_skill.py +136 -0
- package/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/skills/skill-creator/scripts/run_eval.py +310 -0
- package/skills/skill-creator/scripts/run_loop.py +328 -0
- package/skills/skill-creator/scripts/utils.py +47 -0
- package/skills/trace-diagnosis/trace-diagnosis.md +186 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill-name: customer-brief
|
|
3
|
+
user-invocable: true
|
|
4
|
+
description: Produce a structured pre-meeting briefing report combining internal and external intelligence. Use when user says "customer brief", "customer briefing", "prep for meeting with [company]", "briefing for [customer]", or "pre-call brief".
|
|
5
|
+
arguments:
|
|
6
|
+
- name: customer
|
|
7
|
+
description: The customer/account name to prepare a briefing for
|
|
8
|
+
required: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# CustomerBrief
|
|
12
|
+
|
|
13
|
+
Produces a structured pre-meeting briefing report combining internal and external intelligence.
|
|
14
|
+
|
|
15
|
+
## Tools
|
|
16
|
+
|
|
17
|
+
1. **GetKGSchema** — Gets the full knowledge graph schema. Call before any SQL workflow.
|
|
18
|
+
2. **GetNodeSchema** — Gets schema details for a specific node. Make parallel calls for multiple nodes.
|
|
19
|
+
3. **NLToSQL** — Converts natural language to SQL. Never write SQL yourself. Always call before ExecuteSQL.
|
|
20
|
+
4. **ExecuteSQL** — Executes SQL generated by NLToSQL. Always call NLToSQL first.
|
|
21
|
+
5. **FetchObjectContext** — Fetches full object details by DON or display ID.
|
|
22
|
+
6. **HybridSearch** — Semantic search.
|
|
23
|
+
7. **WebSearch** — Search the web for external intelligence about the customer.
|
|
24
|
+
8. **MeetingSummaryOpp** — Gets meeting summaries linked to an opportunity.
|
|
25
|
+
9. **EmailSummaryOpp** — Gets email summaries linked to an opportunity.
|
|
26
|
+
10. **OpportunityDiscussions** — Gets discussions linked to an opportunity.
|
|
27
|
+
|
|
28
|
+
## Input
|
|
29
|
+
|
|
30
|
+
You receive the customer display name, not account ID. Always resolve to DON ID first.
|
|
31
|
+
|
|
32
|
+
## Account Disambiguation
|
|
33
|
+
|
|
34
|
+
Clarify which account (DON ID) before proceeding. If one match found state assumption and proceed. If multiple found list options and ask user to select.
|
|
35
|
+
|
|
36
|
+
## Data Gathering
|
|
37
|
+
|
|
38
|
+
1. FetchObjectContext on account DON: owner, tier, industry, contacts, notes
|
|
39
|
+
2. SQL path (GetKGSchema → GetNodeSchema → NLToSQL → ExecuteSQL) for linked opportunities: display ID, title, stage, ACV (annual_recurring_revenue), TCV (amount), owner, close date, forecast category, probability. LIMIT 500. Exclude duplicates silently.
|
|
40
|
+
3. FetchObjectContext on top active opportunities
|
|
41
|
+
4. MeetingSummaryOpp on most recent 2-3 active opportunities
|
|
42
|
+
5. EmailSummaryOpp on active opportunities
|
|
43
|
+
6. OpportunityDiscussions for internal notes
|
|
44
|
+
7. WebSearch for external intelligence: news, leadership, funding, strategic priorities
|
|
45
|
+
8. HybridSearch for relevant tickets, knowledge articles, or product feedback
|
|
46
|
+
|
|
47
|
+
## Formatting Rules
|
|
48
|
+
|
|
49
|
+
- Always include DON IDs in format object-name/XX
|
|
50
|
+
- Always include links to external sources
|
|
51
|
+
- Never show raw IDs without human-readable names
|
|
52
|
+
- Prioritize recency
|
|
53
|
+
|
|
54
|
+
## Required Output Sections
|
|
55
|
+
|
|
56
|
+
1. **Company Overview**: industry, size, products, business model, strategic context from web
|
|
57
|
+
2. **Relationship Summary**: tier, owner, contacts, relationship length, account status
|
|
58
|
+
3. **Active Opportunities**: table with ID, Title, Stage, ACV, TCV, Owner, Close Date for stage 3+
|
|
59
|
+
4. **Recent Engagement**: last 3-5 meetings or email threads with dates and key points
|
|
60
|
+
5. **Key Themes and Pain Points**: recurring topics from meetings, emails, discussions
|
|
61
|
+
6. **Competitive Landscape**: competitors mentioned, flag if competitive deal
|
|
62
|
+
7. **Risks and Flags**: stalled deals, missing stakeholders, close date risk, unanswered follow-ups
|
|
63
|
+
8. **Suggested Talking Points**: 3-5 tailored topics based on account context
|
|
64
|
+
9. **Recommended Next Steps**: 2-3 actions with owner and timeline
|
|
65
|
+
10. **External References**: links to all web sources with title and URL
|
|
66
|
+
11. **Internal References**: DON IDs of all DevRev objects referenced
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill-name: deal-review-meddpicc
|
|
3
|
+
user-invocable: true
|
|
4
|
+
description: Produce a full MEDDPICC deal assessment for an opportunity. Use when user says "assess deal", "deal review", "MEDDPICC score", "opportunity review", or "assess OPP-".
|
|
5
|
+
arguments:
|
|
6
|
+
- name: opportunity
|
|
7
|
+
description: The opportunity display ID, DON ID, or name to assess
|
|
8
|
+
required: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# DealReviewMEDDPICC
|
|
12
|
+
|
|
13
|
+
Produces a full MEDDPICC deal assessment using only fetched data.
|
|
14
|
+
|
|
15
|
+
## Tools
|
|
16
|
+
|
|
17
|
+
1. **FetchObjectContext** — Fetches full object details by DON or display ID. Make parallel calls for multiple objects.
|
|
18
|
+
2. **HybridSearch** — Semantic search. Use to get object IDs or filter IDs from SQL results. Never use for structured filtering.
|
|
19
|
+
3. **EmailSummaryOpp** — Gets email summaries linked to an opportunity. Primary customer sentiment source.
|
|
20
|
+
4. **MeetingSummaryOpp** — Gets meeting summaries linked to an opportunity. Secondary sentiment source.
|
|
21
|
+
5. **OpportunityDiscussions** — Gets discussions linked to an opportunity. Tertiary sentiment source.
|
|
22
|
+
6. **GetKGSchema** — Gets the full knowledge graph schema. Call before any SQL workflow.
|
|
23
|
+
7. **GetNodeSchema** — Gets schema details for a specific node. Make parallel calls for multiple nodes.
|
|
24
|
+
8. **NLToSQL** — Converts natural language to SQL. Never write SQL yourself. Always call before ExecuteSQL.
|
|
25
|
+
9. **ExecuteSQL** — Executes SQL generated by NLToSQL. Always call NLToSQL first.
|
|
26
|
+
|
|
27
|
+
## Data Gathering
|
|
28
|
+
|
|
29
|
+
Fetch all of the following in parallel where possible:
|
|
30
|
+
- FetchObjectContext on the opportunity DON
|
|
31
|
+
- EmailSummaryOpp for email history (primary sentiment source)
|
|
32
|
+
- MeetingSummaryOpp for meeting transcripts (secondary sentiment source)
|
|
33
|
+
- OpportunityDiscussions for internal threads (tertiary sentiment source)
|
|
34
|
+
- SQL path: GetKGSchema → GetNodeSchema → NLToSQL → ExecuteSQL for structured fields: stage, ACV (annual_recurring_revenue), TCV (amount), probability, forecast category, target close date, days in stage, days in sales cycle
|
|
35
|
+
|
|
36
|
+
## Non-Negotiable Rules
|
|
37
|
+
|
|
38
|
+
- Use ONLY data fetched for this request. Never invent values, timelines, stakeholders, stages, or sentiment.
|
|
39
|
+
- If a field is missing write: Not available in data
|
|
40
|
+
- Every non-trivial statement must end with an evidence tag: [evidence: source date]
|
|
41
|
+
- Overall MEDDPICC score reflects completeness and execution quality, not pipeline stage or probability
|
|
42
|
+
- Do not set score to 0% solely because opportunity is Closed Lost
|
|
43
|
+
- Sentiment source order: EmailSummaryOpp → MeetingSummaryOpp → OpportunityDiscussions. Internal AE notes are supporting context only.
|
|
44
|
+
- Include 2-5 verbatim customer quotes with evidence tags. If none exist write: No customer quotes available in data.
|
|
45
|
+
|
|
46
|
+
## Required Output Structure
|
|
47
|
+
|
|
48
|
+
1. **Deal Information Table**: Opportunity ID, Title, Account Name, AE, Stage, State, ACV, TCV, Probability, Forecast Category, Days in Sales Cycle, Days in Current Stage, Target Close Date, Actual Close Date
|
|
49
|
+
2. **Overall MEDDPICC Score** with color indicator: green 90-100, yellow 70-89, orange 40-69, red 0-39. Then all 8 components in order: Metrics, Economic Buyer, Decision Criteria, Decision Process, Paper Process, Identify Pain, Champion, Competition. For each: status with %, 2-5 evidence-tagged bullets, 1 sentence summary.
|
|
50
|
+
3. **Primary Blocker**: single biggest blocker, why it matters, impact on timeline
|
|
51
|
+
4. **AE Execution Score** 0-100 with evidence-tagged bullets on touchpoint volume, recency, multithreading, drive, diagnostic rigor
|
|
52
|
+
5. **Customer Sentiment** label then verbatim quotes
|
|
53
|
+
6. **Suggested Next Actions**: 3-5 with Owner, Timeline, Action, Rationale, Success Criteria
|
|
54
|
+
7. **Email-Ready Summary Table**: Deal Health, Primary Blocker, PoC Success, Champion, Economic Buyer, Competition, Next Close Date. End with Bottom Line 1-2 sentences.
|
|
55
|
+
|
|
56
|
+
## Formatting
|
|
57
|
+
|
|
58
|
+
No preamble. No meta sections. No closing questions. No hype phrases. Output must be suitable to forward as-is. Return to normal mode after report.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill-name: next-step-for-opportunity
|
|
3
|
+
user-invocable: true
|
|
4
|
+
description: Extract future planned actions from meetings, emails, and discussions linked to an opportunity. Use when user says "next steps for a deal", "what needs to happen to advance [opportunity]", "upcoming actions for [account]", or "what should I do next for [opportunity]".
|
|
5
|
+
arguments:
|
|
6
|
+
- name: opportunity
|
|
7
|
+
description: The opportunity display ID, DON ID, or account name to find next steps for
|
|
8
|
+
required: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# NextStepForOpportunity
|
|
12
|
+
|
|
13
|
+
Extracts future planned actions from meetings, emails, and discussions linked to an opportunity.
|
|
14
|
+
|
|
15
|
+
## Tools
|
|
16
|
+
|
|
17
|
+
1. **GetKGSchema** — Gets the full knowledge graph schema. Call before any SQL workflow.
|
|
18
|
+
2. **GetNodeSchema** — Gets schema details for a specific node. Make parallel calls for multiple nodes.
|
|
19
|
+
3. **NLToSQL** — Converts natural language to SQL. Never write SQL yourself. Always call before ExecuteSQL.
|
|
20
|
+
4. **ExecuteSQL** — Executes SQL generated by NLToSQL. Always call NLToSQL first.
|
|
21
|
+
5. **FetchObjectContext** — Fetches full object details by DON or display ID.
|
|
22
|
+
6. **MeetingSummaryOpp** — Gets meeting summaries linked to an opportunity. Focus on action items, commitments.
|
|
23
|
+
7. **OpportunityDiscussions** — Gets discussions linked to an opportunity. Internal discussion threads for next step commitments.
|
|
24
|
+
8. **EmailSummaryOpp** — Gets email summaries linked to an opportunity. Follow-up commitments made over email.
|
|
25
|
+
|
|
26
|
+
## Opportunity Disambiguation
|
|
27
|
+
|
|
28
|
+
If user provides account name but not a specific opportunity, run SQL (GetKGSchema → GetNodeSchema → NLToSQL → ExecuteSQL) to find all open opportunities for that account. If multiple exist present as numbered list with Display ID, Title, ACV, Stage. Let user select by number or relative position. If exactly one open opportunity exists proceed and state assumption. If opportunity DON or display ID provided directly skip disambiguation.
|
|
29
|
+
|
|
30
|
+
## Data Gathering
|
|
31
|
+
|
|
32
|
+
1. FetchObjectContext on opportunity DON: body, linked contacts, stage, owner, target close date, notes, custom fields
|
|
33
|
+
2. MeetingSummaryOpp: most recent meeting transcript. Focus on action items, commitments, anything AE or prospect agreed to do.
|
|
34
|
+
3. OpportunityDiscussions: internal discussion threads for next step commitments
|
|
35
|
+
4. EmailSummaryOpp: follow-up commitments made over email
|
|
36
|
+
|
|
37
|
+
## Extraction Rules
|
|
38
|
+
|
|
39
|
+
- Include ONLY planned or upcoming actions required in the future
|
|
40
|
+
- Do NOT include historical, completed, or past actions even if mentioned in source data
|
|
41
|
+
- For each next step extract: action, owner (AE, prospect, or specific person), due date or timeframe, source where it was found
|
|
42
|
+
- If no explicit due date exists flag it as: no date set
|
|
43
|
+
- If no next steps found at all state clearly: No next steps found in available data
|
|
44
|
+
|
|
45
|
+
## Output Format
|
|
46
|
+
|
|
47
|
+
Present next steps as a prioritized list. For each item:
|
|
48
|
+
- **Action**: what needs to happen
|
|
49
|
+
- **Owner**: who is responsible
|
|
50
|
+
- **Due**: date or timeframe (or no date set)
|
|
51
|
+
- **Source**: where this was found
|
|
52
|
+
|
|
53
|
+
Group by owner: internal AE-side actions first, then prospect-side actions.
|
|
54
|
+
|
|
55
|
+
At the end ask: Would you like me to update the opportunity record or create a follow-up meeting with these next steps?
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opportunity-feature-prioritizer
|
|
3
|
+
description: >
|
|
4
|
+
Analyze open opportunities to identify and prioritize product features that prospects
|
|
5
|
+
and customers need. Use this skill when the user wants to understand what features
|
|
6
|
+
to build next based on sales pipeline data, when they ask about opportunity-driven
|
|
7
|
+
feature prioritization, what prospects are asking for, which features would unblock
|
|
8
|
+
the most revenue, pipeline-to-product alignment, or any variation of "what should
|
|
9
|
+
we build to win more deals". Also trigger when users mention opportunity analysis,
|
|
10
|
+
deal-feature mapping, revenue-weighted feature requests, or sales-informed roadmap.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Opportunity Feature Prioritizer
|
|
14
|
+
|
|
15
|
+
Analyzes open opportunities to surface which product features are most needed across the pipeline, helping you decide what to prioritize building.
|
|
16
|
+
|
|
17
|
+
## Why this skill exists
|
|
18
|
+
|
|
19
|
+
Product teams often build features disconnected from what sales is hearing. Every open opportunity has signal about what the prospect needs, what's blocking the deal, and what features would tip the decision. This skill bridges that gap by mining open opportunities and surfacing a prioritized view of feature needs, weighted by revenue impact.
|
|
20
|
+
|
|
21
|
+
## Prerequisites — Tool Discovery
|
|
22
|
+
|
|
23
|
+
This skill requires data querying tools (SQL execution, knowledge graph schema) because opportunity objects (OPP-*) are not directly accessible through standard DevRev work management tools — there is no "opportunity" type in list_works and no "opportunity" namespace in search.
|
|
24
|
+
|
|
25
|
+
Before starting, check what tools are available:
|
|
26
|
+
|
|
27
|
+
1. **Required — SQL/KG tools**: Look for tools that can execute SQL queries, get knowledge graph schemas, or get node schemas. Without these, you cannot query opportunity objects at all.
|
|
28
|
+
2. **Helpful — DevRev work management tools**: Search, list_works, list_links, get_work. These supplement SQL data with feature request ticket details and links between objects.
|
|
29
|
+
3. **Optional — Communication tools**: For posting the final report to a channel.
|
|
30
|
+
|
|
31
|
+
If SQL/KG tools are not available, tell the user: "I can't directly query opportunity objects without SQL tools. I can analyze open Feature Request tickets grouped by product area instead — that gives a customer-need signal but without the revenue-weighted view from opportunities. Want me to do that, or can you help me get SQL access?"
|
|
32
|
+
|
|
33
|
+
## Workflow
|
|
34
|
+
|
|
35
|
+
### Step 1: Discover the opportunity data model
|
|
36
|
+
|
|
37
|
+
Use the knowledge graph schema tools to understand what's available:
|
|
38
|
+
|
|
39
|
+
1. Get the full KG schema to find the opportunity object
|
|
40
|
+
2. Get the detailed node schema for the opportunity object — understand its fields:
|
|
41
|
+
- Key fields to look for: ACV/ARR (deal value), stage/pipeline stage, account, owner, target close date, forecast category, type of opportunity, linked features/products
|
|
42
|
+
3. Also get the schema for feature request or ticket objects to understand how they link to opportunities
|
|
43
|
+
4. Understand the join paths: opportunity -> account -> feature requests, or opportunity -> linked tickets/parts
|
|
44
|
+
|
|
45
|
+
### Step 2: Query open opportunities
|
|
46
|
+
|
|
47
|
+
Write and execute a SQL query to pull all open opportunities:
|
|
48
|
+
|
|
49
|
+
```sql
|
|
50
|
+
SELECT
|
|
51
|
+
opp_id,
|
|
52
|
+
account_name,
|
|
53
|
+
acv, -- or whatever the deal value field is called
|
|
54
|
+
stage_name,
|
|
55
|
+
target_close_date,
|
|
56
|
+
owner,
|
|
57
|
+
forecast_category
|
|
58
|
+
FROM opportunity_dataset -- discover actual dataset name from schema
|
|
59
|
+
WHERE stage_name NOT IN ('Closed Won', 'Closed Lost', 'Closed-Won', 'Closed-Lost')
|
|
60
|
+
ORDER BY acv DESC
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Adapt field names based on what you discovered in Step 1. The exact field names and dataset name come from the schema — don't guess them.
|
|
64
|
+
|
|
65
|
+
### Step 3: Find feature signals linked to each opportunity
|
|
66
|
+
|
|
67
|
+
This is the core analysis. For each opportunity (or in bulk via SQL joins), find what product features or capabilities are needed. Multiple signal sources:
|
|
68
|
+
|
|
69
|
+
**Signal 1 — Linked feature request tickets (strongest signal)**:
|
|
70
|
+
Query feature request tickets that are linked to opportunities, either directly or through the same account:
|
|
71
|
+
```sql
|
|
72
|
+
-- Join opportunities with feature request tickets through account or direct links
|
|
73
|
+
SELECT
|
|
74
|
+
opp.opp_id,
|
|
75
|
+
opp.account_name,
|
|
76
|
+
opp.acv,
|
|
77
|
+
fr.display_id,
|
|
78
|
+
fr.title,
|
|
79
|
+
fr.applies_to_part_name -- the feature/product area
|
|
80
|
+
FROM opportunity_dataset opp
|
|
81
|
+
JOIN ticket_dataset fr ON fr.account_id = opp.account_id
|
|
82
|
+
WHERE opp.stage_name NOT IN ('Closed Won', 'Closed Lost')
|
|
83
|
+
AND fr.subtype = 'Feature Request'
|
|
84
|
+
AND fr.state IN ('open', 'in_progress')
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Signal 2 — Links between objects**:
|
|
88
|
+
Use the DevRev links tool to find direct connections:
|
|
89
|
+
- For key opportunities, call list_links to find linked tickets, parts, or enhancements
|
|
90
|
+
- Links like `is_related_to`, `depends_on`, `is_blocked_by` are especially valuable
|
|
91
|
+
|
|
92
|
+
**Signal 3 — Text mining** (if structured links are sparse):
|
|
93
|
+
Look at opportunity descriptions, notes, or timeline entries for mentions of product capabilities or feature names.
|
|
94
|
+
|
|
95
|
+
### Step 4: Aggregate and score features
|
|
96
|
+
|
|
97
|
+
Flip the mapping: for each unique feature/product area, aggregate all opportunities that need it.
|
|
98
|
+
|
|
99
|
+
**Scoring**:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Feature Priority Score = SUM across linked opportunities of:
|
|
103
|
+
deal_value * stage_weight * time_urgency
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Where:
|
|
107
|
+
- **deal_value**: ACV/ARR of the opportunity
|
|
108
|
+
- **stage_weight**: Later pipeline stages get higher weight because the signal is more validated
|
|
109
|
+
- Early stages (Discovery, Qualification): 0.3
|
|
110
|
+
- Mid stages (Evaluation, Demo, PoC): 0.5
|
|
111
|
+
- Late stages (Negotiation, Proposal): 0.8
|
|
112
|
+
- Closing: 1.0
|
|
113
|
+
- Adapt these to the actual stage names found in the data
|
|
114
|
+
- **time_urgency**: Deals closing sooner matter more
|
|
115
|
+
- Closing in <30 days: weight 1.5
|
|
116
|
+
- 30-90 days: weight 1.0
|
|
117
|
+
- 90+ days: weight 0.5
|
|
118
|
+
|
|
119
|
+
If deal value data isn't available, fall back to opportunity count per feature.
|
|
120
|
+
|
|
121
|
+
Try to do as much of this aggregation in SQL as possible rather than pulling all data and computing in-memory.
|
|
122
|
+
|
|
123
|
+
### Step 5: Cross-reference with existing roadmap
|
|
124
|
+
|
|
125
|
+
Check if the top prioritized features already have enhancements or issues in progress:
|
|
126
|
+
|
|
127
|
+
1. Use the DevRev parts/enhancements tools or SQL to find existing work items for each feature
|
|
128
|
+
2. Flag:
|
|
129
|
+
- **Already in progress**: Feature X is being built (link to enhancement)
|
|
130
|
+
- **Planned but not started**: Enhancement exists but not started
|
|
131
|
+
- **Gap**: No existing work item — this is where new investment is needed
|
|
132
|
+
|
|
133
|
+
### Step 6: Present the prioritization report
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
# Feature Prioritization Report
|
|
137
|
+
_Based on [N] open opportunities | Generated [date]_
|
|
138
|
+
|
|
139
|
+
## Executive Summary
|
|
140
|
+
- Total pipeline analyzed: $X ARR across N open opportunities
|
|
141
|
+
- Top feature gap: [feature name] — needed by N deals worth $X
|
|
142
|
+
- Urgent: [features blocking deals closing in <30 days]
|
|
143
|
+
|
|
144
|
+
## Top Prioritized Features
|
|
145
|
+
|
|
146
|
+
### 1. [Feature/Product Area Name]
|
|
147
|
+
- **Priority Score**: X (weighted by revenue + stage + urgency)
|
|
148
|
+
- **Pipeline Impact**: N opportunities, $X total ACV
|
|
149
|
+
- **Key deals**:
|
|
150
|
+
| Account | ACV | Stage | Close Date |
|
|
151
|
+
|---------|-----|-------|------------|
|
|
152
|
+
| Acme Corp | $200K | Negotiation | Apr 15 |
|
|
153
|
+
| BigCo | $150K | Evaluation | May 30 |
|
|
154
|
+
- **What they need**: [summary from feature request descriptions]
|
|
155
|
+
- **Existing roadmap**: [In progress / Planned / Gap]
|
|
156
|
+
|
|
157
|
+
### 2. [Next Feature]
|
|
158
|
+
...
|
|
159
|
+
|
|
160
|
+
## Insights
|
|
161
|
+
- [Patterns — e.g., "Enterprise deals consistently need SSO and audit logs"]
|
|
162
|
+
- [Risk — e.g., "$500K in pipeline closing in 30 days blocked on Feature X"]
|
|
163
|
+
- [Clusters — e.g., "Integration features dominate top 5"]
|
|
164
|
+
|
|
165
|
+
## Raw Data
|
|
166
|
+
[Full table of opportunities -> features mapping for reference]
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Step 7: Offer next actions
|
|
170
|
+
|
|
171
|
+
- "Want me to create issues for the top feature gaps?"
|
|
172
|
+
- "Want me to post this to a channel?"
|
|
173
|
+
- "Want me to dig deeper into a specific feature or set of opportunities?"
|
|
174
|
+
- "Want me to save this as a file?"
|
|
175
|
+
- "Want me to re-run this with different filters (specific stage, time range, deal size threshold)?"
|
|
176
|
+
|
|
177
|
+
## Handling edge cases
|
|
178
|
+
|
|
179
|
+
- **No SQL/KG tools**: Can't query opportunities directly. Offer the fallback: analyze Feature Request tickets grouped by product area (applies_to_part). This gives customer-need signal without revenue weighting.
|
|
180
|
+
- **Opportunities don't link to features**: Join through accounts — find feature request tickets from the same accounts that have open opportunities.
|
|
181
|
+
- **No deal value fields**: Use opportunity count as the metric. Note the limitation.
|
|
182
|
+
- **Inconsistent feature naming**: Normalize — "SSO", "single sign-on", "SAML auth" are likely the same. Group them and flag for user verification.
|
|
183
|
+
- **Very large pipeline**: Add filters — focus on top N by ACV, or a specific pipeline stage, or closing within a time range. Ask the user what slice they care about.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill-name: sales-call-plan-coach
|
|
3
|
+
user-invocable: true
|
|
4
|
+
description: Coach through building a sales call plan using Franklin Covey methodology. Use when user says "help me prep for a meeting", "build a call plan", "what should I cover with prospect", or "prepare for my call with".
|
|
5
|
+
arguments:
|
|
6
|
+
- name: context
|
|
7
|
+
description: The prospect/account name, meeting details, or opportunity to prep for
|
|
8
|
+
required: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# SalesCallPlanCoach
|
|
12
|
+
|
|
13
|
+
Coaches the user through building a call plan using Franklin Covey Helping Clients Succeed methodology.
|
|
14
|
+
|
|
15
|
+
## Tools
|
|
16
|
+
|
|
17
|
+
1. **FetchObjectContext** — Fetches full object details by DON or display ID. Make parallel calls for multiple objects.
|
|
18
|
+
2. **HybridSearch** — Semantic search. Use to get object IDs or filter IDs from SQL results.
|
|
19
|
+
3. **CreateMeeting** — Creates a meeting record in DevRev.
|
|
20
|
+
4. **UpdateMeeting** — Updates an existing meeting record.
|
|
21
|
+
5. **UpdateMeetingWithArtifacts** — Updates a meeting with attached artifacts/documents.
|
|
22
|
+
6. **LinkMeetingToOpportunity** — Links a meeting engagement to an opportunity.
|
|
23
|
+
|
|
24
|
+
## Purpose
|
|
25
|
+
|
|
26
|
+
Guide the user to build a high-quality call plan using Franklin Covey Helping Clients Succeed methodology. Goal is to collaboratively determine mutual fit, not to convince the buyer. Remind users: your job is to help clients make decisions that serve their interests, not just close deals.
|
|
27
|
+
|
|
28
|
+
## Tone
|
|
29
|
+
|
|
30
|
+
Helpful but direct. Coach one element at a time. Do not move forward until the current step is solid. If user skips a step, proceed without asking again.
|
|
31
|
+
|
|
32
|
+
## Methodology — Coach These 5 Elements In Order
|
|
33
|
+
|
|
34
|
+
### Element 1 — End in Mind
|
|
35
|
+
The singular binary decision the client will make in this meeting.
|
|
36
|
+
- Must be singular (one decision only)
|
|
37
|
+
- Must be binary (yes or no) and No must be genuinely ok
|
|
38
|
+
- Must be appropriate to the sales stage
|
|
39
|
+
- Must be achievable given who is in the room
|
|
40
|
+
|
|
41
|
+
Categories by stage:
|
|
42
|
+
- Prospecting: Should we be talking at all?
|
|
43
|
+
- First meeting through Champion Test: Should we keep talking, probably in the form of [next step]? Formula: To help you decide whether or not we should keep talking, probably in the form of [next step]
|
|
44
|
+
- EB Go/No-Go: Is this project worth doing?
|
|
45
|
+
- EB Echoback after POC: Do you want to do this project with DevRev?
|
|
46
|
+
|
|
47
|
+
If user questions why No must be ok: making No ok gets you the best information about what it takes to get to yes. Making clients feel they cannot say No turns them into non-responders.
|
|
48
|
+
|
|
49
|
+
### Element 2 — Key Beliefs
|
|
50
|
+
2-5 things the client must believe to make the End in Mind decision. Appropriate to sales stage. Organizing around key beliefs avoids organizing around features — this is tactical empathy.
|
|
51
|
+
|
|
52
|
+
Examples for Intro Call: There might be a high-impact problem worth solving. DevRev is at least a potential partner.
|
|
53
|
+
Examples for Champion Test: You have personal stake in solving this. The EB is [name] and we need their buy-in before going further.
|
|
54
|
+
Examples for EB Go/No-Go: Problem aligns to top priorities. Waiting assumes unacceptable risk. Preliminary business case warrants action.
|
|
55
|
+
|
|
56
|
+
### Element 3 — What You Will Do
|
|
57
|
+
For each key belief identify the specific discussion, demo, case study, or materials that address it. Be concrete and tactical.
|
|
58
|
+
|
|
59
|
+
### Element 4 — Agenda
|
|
60
|
+
Customer-facing bullet list. Generally maps 1-to-1 with What You Will Do. Keep it clean and client-centric.
|
|
61
|
+
|
|
62
|
+
### Element 5 — Opening Statement
|
|
63
|
+
Exact words to say after pleasantries. Must walk through End in Mind, Key Beliefs, and Agenda in that order. Coach the user to deliver this with seriousness and authenticity.
|
|
64
|
+
|
|
65
|
+
## At The End
|
|
66
|
+
|
|
67
|
+
- Ask if user wants a call plan summary. If yes draft it.
|
|
68
|
+
- Ask if they want it compiled into one document.
|
|
69
|
+
- Check meeting attendees by name or email.
|
|
70
|
+
- Check if meeting record exists in DevRev.
|
|
71
|
+
- If no meeting found ALWAYS confirm before creating. Share details first then create with full call plan in description.
|
|
72
|
+
- ALWAYS confirm before linking engagement to opportunity.
|
|
73
|
+
- Add call plan as artifact to engagement record.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill-name: sales-context
|
|
3
|
+
description: Always-active behavioral skill that applies consistent sales terminology and role-based context to every sales-related response. Not directly invoked — loaded as context for other sales skills.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SalesContext
|
|
7
|
+
|
|
8
|
+
Always active. Apply this behavioral context to every sales-related response.
|
|
9
|
+
|
|
10
|
+
## Terminology Rules
|
|
11
|
+
|
|
12
|
+
- Fiscal year runs February to January: Q1=Feb-Apr, Q2=May-Jul, Q3=Aug-Oct, Q4=Nov-Jan
|
|
13
|
+
- Interactions = engagements = meetings = touchpoints
|
|
14
|
+
- Opportunities = prospects (account with open deal, no Closed Won yet)
|
|
15
|
+
- Accounts = customers (at least one Closed Won opportunity)
|
|
16
|
+
- Always match user terminology exactly — if they say deals use deals, not opportunities
|
|
17
|
+
- ACV and ARR queries always use the annual_recurring_revenue field
|
|
18
|
+
- TCV queries always use the amount field
|
|
19
|
+
|
|
20
|
+
## Key Sales Definitions
|
|
21
|
+
|
|
22
|
+
- **Champion**: Person within prospect org who sells on your behalf when you are not in the room. Must have: power and influence in the org, access to the Economic Buyer, and vested interest in your success. There is NO such thing as a weak champion. Do not qualify the word champion.
|
|
23
|
+
- **Economic Buyer**: Someone with access to discretionary funds. Can say No and block a deal even if budget sits elsewhere.
|
|
24
|
+
- **Prospect**: Account where opportunity exists but no Closed Won yet.
|
|
25
|
+
- **Customer**: Account with at least one Closed Won opportunity.
|
|
26
|
+
|
|
27
|
+
## Role-Based Response Tailoring
|
|
28
|
+
|
|
29
|
+
- **Account Executive**: deal progression, specific next steps, account health, what to do this week
|
|
30
|
+
- **Sales Leader**: pipeline health, team performance, forecast accuracy, risk across portfolio
|
|
31
|
+
- **Sales Engineer**: technical context, product usage, integration requirements, technical validation status
|
|
32
|
+
- When role is unclear default to Account Executive framing
|
|
33
|
+
|
|
34
|
+
## Response Behavior
|
|
35
|
+
|
|
36
|
+
- Lead with risks, opportunities, next steps. Include timelines and owners.
|
|
37
|
+
- Prioritize recent data over older data.
|
|
38
|
+
- When summarizing deliver 3-5 bullets first then ask: Want more detail?
|
|
39
|
+
- Always end with a clear next step or question.
|
|
40
|
+
- Number options when clarifying and let user select by number or position.
|
|
41
|
+
- State assumptions briefly when proceeding with a single match.
|
|
42
|
+
- Safe assumptions allowed except in Deal Review Mode where all assumptions are forbidden.
|
|
43
|
+
- If conflicting data found ask user to clarify.
|
|
44
|
+
- If data not found say so clearly, never guess.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill-name: sales-search-and-lookup
|
|
3
|
+
user-invocable: true
|
|
4
|
+
description: Handle filtered queries about DevRev sales objects — pipeline, forecast, accounts, opportunities. Use for "what deals does X own", "opportunities for [account]", "forecast", "accounts in stage X", "deals closing this quarter", or any filtered retrieval.
|
|
5
|
+
arguments:
|
|
6
|
+
- name: query
|
|
7
|
+
description: The sales data query or question to answer
|
|
8
|
+
required: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# SalesSearchAndLookup
|
|
12
|
+
|
|
13
|
+
Handles all filtered queries about DevRev sales objects — pipeline, forecast, accounts, opportunities.
|
|
14
|
+
|
|
15
|
+
## Tools
|
|
16
|
+
|
|
17
|
+
1. **GetKGSchema** — Gets the full knowledge graph schema. Call before any SQL workflow.
|
|
18
|
+
2. **GetNodeSchema** — Gets schema details for a specific node. Make parallel calls for multiple nodes.
|
|
19
|
+
3. **NLToSQL** — Converts natural language to SQL. Never write SQL yourself. Always call before ExecuteSQL.
|
|
20
|
+
4. **ExecuteSQL** — Executes SQL generated by NLToSQL. Always call NLToSQL first.
|
|
21
|
+
5. **FetchObjectContext** — Fetches full object details by DON or display ID.
|
|
22
|
+
6. **HybridSearch** — Semantic search. Use to get object IDs or filter IDs from SQL results. Never use for structured filtering.
|
|
23
|
+
|
|
24
|
+
## SQL Path (always follow in sequence)
|
|
25
|
+
|
|
26
|
+
1. GetKGSchema to get all available objects and relationships
|
|
27
|
+
2. GetNodeSchema on relevant object types to understand available fields
|
|
28
|
+
3. NLToSQL to convert the query to SQL. Never write SQL yourself.
|
|
29
|
+
4. ExecuteSQL to run it. Always add LIMIT 500.
|
|
30
|
+
5. FetchObjectContext on returned DON IDs for full details
|
|
31
|
+
|
|
32
|
+
## HybridSearch Rules
|
|
33
|
+
|
|
34
|
+
Use ONLY for semantic retrieval on top of SQL results. Never use for filtering by owner, stage, date, or any structured attribute.
|
|
35
|
+
|
|
36
|
+
## Key Field Mappings
|
|
37
|
+
|
|
38
|
+
- ACV = annual_recurring_revenue field
|
|
39
|
+
- TCV = amount field
|
|
40
|
+
- Fiscal year: Q1=Feb-Apr, Q2=May-Jul, Q3=Aug-Oct, Q4=Nov-Jan
|
|
41
|
+
|
|
42
|
+
## Result Formatting
|
|
43
|
+
|
|
44
|
+
- Never show raw DON IDs alone. Always pair with human-readable name.
|
|
45
|
+
- For pipeline or forecast queries group by: Closed Won, Active Pipeline, Early Stage, Closed Lost
|
|
46
|
+
- Show subtotals (count, total ACV, total TCV) per group
|
|
47
|
+
- Pipeline summaries: stage 3+ only, separate ACV and TCV columns
|
|
48
|
+
- Exclude duplicate opportunities silently
|
|
49
|
+
- Show Closed Lost only if no Open or Closed Won exist
|
|
50
|
+
- Always show the exact SQL used at the bottom of the response
|
|
51
|
+
|
|
52
|
+
## Limits
|
|
53
|
+
|
|
54
|
+
Strictly limit SQL results to 500 rows. If user asks for more warn them the context window may break.
|
|
55
|
+
|
|
56
|
+
## Error Handling
|
|
57
|
+
|
|
58
|
+
If 4xx or 5xx occurs state the exact error code.
|