Skip to main content Skills Marketplace コミュニティが作成したAIスキルを発見・探索
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/majiayu000/claude-skill-registry --skill sales-engineeringコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Zipをダウンロード ダウンロード中... name Sales Engineering description Supporting sales with technical expertise, demos, and proof-of-concept implementations
Sales Engineering
Current Level: Expert (Enterprise Scale)
Domain: Go-to-Market Tech
Skill ID: 148
Executive Summary
Sales Engineering enables supporting sales with technical expertise, demos, and proof-of-concept implementations. This capability is essential for bridging the gap between sales and engineering, demonstrating product value, and closing deals.
Strategic Necessity
Sales Support : Provide technical support to sales
Product Demonstrations : Demonstrate product value
Proof of Concept : Build PoC implementations
Technical Objections : Overcome technical objections
Deal Closure : Help close deals
Technical Deep Dive
Sales Engineering Framework
┌─────────────────────────────────────────────────────────────────────────────┐
│ Sales Engineering Framework │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Sales │ │ Technical │ │ Demo │ │
│ │ Support │───▶│ Expertise │───▶│ Creation │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ Pre-Sales Activities │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Discovery│ │ Solution │ │ Demo │ │ PoC │ │ │
│ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │
│ └───────┼────────────┼────────────┼────────────┼────────────────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ Sales Support │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Objection │ │ Technical │ │ Pricing │ │ Contract │ │ │
│ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │
│ └───────┼────────────┼────────────┼────────────┼────────────────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ Post-Sales Handoff │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Onboard │ │ Training │ │ Support │ │ Success │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
Pre-Sales Activities
from typing import Dict , Any , List , Optional
from dataclasses import dataclass
from enum import Enum
import asyncio
import logging
from datetime import datetime
logger = logging.getLogger(__name__)
class OpportunityStage (Enum ):
"""Opportunity stages"""
DISCOVERY = "discovery"
QUALIFICATION = "qualification"
SOLUTION_DESIGN = "solution_design"
DEMO = "demo"
PROPOSAL = "proposal"
NEGOTIATION = "negotiation"
CLOSED_WON = "closed_won"
CLOSED_LOST = "closed_lost"
class PoCStatus (Enum ):
"""PoC status"""
PLANNED = "planned"
IN_PROGRESS = "in_progress"
COMPLETED = "completed"
ACCEPTED = "accepted"
REJECTED = "rejected"
@dataclass
class Opportunity :
"""Opportunity definition"""
opportunity_id: str
account_name: str
contact_name: str
stage: OpportunityStage
value: float
probability: float
requirements: List [str ]
challenges: [ ]
created_at:
updated_at:
:
demo_id:
opportunity_id:
title:
description:
features: [ ]
use_cases: [ ]
scheduled_at:
duration_minutes:
created_at:
:
poc_id:
opportunity_id:
title:
description:
scope: [ ]
success_criteria: [ ]
status: PoCStatus
start_date:
end_date:
created_at:
:
( ):
.config = config
.opportunity_store = OpportunityStore(config[ ])
.demo_creator = DemoCreator(config[ ])
.poc_builder = PoCBuilder(config[ ])
( ) -> [ , ]:
logger.info( )
requirements_analysis = ._analyze_requirements(opportunity)
challenges = ._identify_challenges(opportunity)
solutions = ._recommend_solutions(opportunity, requirements_analysis, challenges)
results = {
: opportunity.opportunity_id,
: requirements_analysis,
: challenges,
: solutions,
: datetime.utcnow().isoformat()
}
logger.info( )
results
( ) -> [ , ]:
analysis = {
: [],
: [],
: [],
: [],
: []
}
requirement opportunity.requirements:
req_type = ._categorize_requirement(requirement)
analysis[ ].append(requirement)
analysis
( ) -> :
requirement.lower():
requirement.lower():
requirement.lower():
requirement.lower():
:
( ) -> [ [ , ]]:
challenges = []
challenge opportunity.challenges:
challenge_analysis = {
: challenge,
: ._assess_severity(challenge),
: ._suggest_mitigation(challenge)
}
challenges.append(challenge_analysis)
challenges
( ) -> :
challenge.lower():
challenge.lower():
:
( ) -> :
( ) -> [ [ , ]]:
solutions = []
req_type, requirements requirements_analysis.items():
requirements:
solution = {
: req_type.replace( , ),
: requirements,
: ._propose_solution(req_type, requirements),
: ._estimate_effort(req_type, requirements),
: ._estimate_timeline(req_type, requirements)
}
solutions.append(solution)
challenge challenges:
challenge[ ] == :
solution = {
: ,
: challenge[ ],
: challenge[ ],
: ,
:
}
solutions.append(solution)
solutions
( ) -> :
( ) -> :
( ) -> :
( ) -> Demo:
logger.info( )
demo_id = ._generate_demo_id()
demo = .demo_creator.create_demo(
demo_id=demo_id,
opportunity_id=opportunity.opportunity_id,
title= ,
description= ._generate_demo_description(opportunity),
features= ._select_demo_features(opportunity),
use_cases= ._select_use_cases(opportunity),
scheduled_at= ._schedule_demo(opportunity),
duration_minutes=
)
logger.info( )
demo
( ) -> :
( ) -> [ ]:
[]
( ) -> [ ]:
[]
( ) -> :
datetime.utcnow().isoformat()
( ) -> ProofOfConcept:
logger.info( )
poc_id = ._generate_poc_id()
scope = ._define_poc_scope(opportunity)
success_criteria = ._define_success_criteria(opportunity)
poc = .poc_builder.build_poc(
poc_id=poc_id,
opportunity_id=opportunity.opportunity_id,
title= ,
description= ._generate_poc_description(opportunity),
scope=scope,
success_criteria=success_criteria,
status=PoCStatus.PLANNED,
start_date= ._calculate_poc_start_date(),
end_date= ._calculate_poc_end_date()
)
logger.info( )
poc
( ) -> [ ]:
[]
( ) -> [ ]:
[]
( ) -> :
( ) -> :
datetime timedelta
start_date = datetime.utcnow() + timedelta(weeks= )
start_date.isoformat()
( ) -> :
datetime timedelta
end_date = datetime.utcnow() + timedelta(weeks= )
end_date.isoformat()
( ) -> :
uuid
( ) -> :
uuid
:
( ):
.config = config
( ) -> Demo:
._create_demo_environment(demo_id)
._configure_demo_data(demo_id, features)
demo = Demo(
demo_id=demo_id,
opportunity_id=opportunity_id,
title=title,
description=description,
features=features,
use_cases=use_cases,
scheduled_at=scheduled_at,
duration_minutes=duration_minutes,
created_at=datetime.utcnow().isoformat()
)
demo
( ):
( ):
:
( ):
.config = config
( ) -> ProofOfConcept:
._create_poc_environment(poc_id)
._implement_poc(poc_id, scope)
._test_poc(poc_id, success_criteria)
poc = ProofOfConcept(
poc_id=poc_id,
opportunity_id=opportunity_id,
title=title,
description=description,
scope=scope,
success_criteria=success_criteria,
status=status,
start_date=start_date,
end_date=end_date,
created_at=datetime.utcnow().isoformat()
)
poc
( ):
( ):
( ):
:
( ):
.config = config
( ):
( ) -> Opportunity:
( ):
Sales Support
class SalesSupport :
"""Sales support specialist"""
def __init__ (self, config: Dict [str , Any ] ):
self .config = config
self .objection_handler = ObjectionHandler(config['objections' ])
self .pricing_specialist = PricingSpecialist(config['pricing' ])
self .contract_specialist = ContractSpecialist(config['contracts' ])
async def handle_objections (
self,
opportunity: Opportunity,
objections: List [str ]
) -> Dict [str , Any ]:
"""Handle sales objections"""
logger.info(f"Handling objections for opportunity: {opportunity.opportunity_id} " )
analyzed_objections = await self ._analyze_objections(objections)
responses = await self ._prepare_objection_responses(analyzed_objections)
results = {
'opportunity_id' : opportunity.opportunity_id,
'objections' : analyzed_objections,
'responses' : responses,
'handled_at' : datetime.utcnow().isoformat()
}
logger.info(f"Objections handled: {opportunity.opportunity_id} " )
results
( ) -> [ [ , ]]:
analyzed = []
objection objections:
analysis = {
: objection,
: ._categorize_objection(objection),
: ._assess_objection_severity(objection),
: ._identify_root_cause(objection)
}
analyzed.append(analysis)
analyzed
( ) -> :
objection.lower():
objection.lower():
objection.lower():
objection.lower():
:
( ) -> :
( ) -> :
( ) -> [ [ , ]]:
responses = []
objection analyzed_objections:
response = {
: objection[ ],
: objection[ ],
: ._generate_response(objection),
: ._gather_evidence(objection),
: ._suggest_follow_up(objection)
}
responses.append(response)
responses
( ) -> :
( ) -> [ ]:
[]
( ) -> :
( ) -> [ , ]:
logger.info( )
value_analysis = ._analyze_opportunity_value(opportunity)
pricing_model = .pricing_specialist.recommend_pricing_model(
opportunity,
value_analysis
)
pricing = .pricing_specialist.calculate_pricing(
opportunity,
pricing_model
)
results = {
: opportunity.opportunity_id,
: value_analysis,
: pricing_model,
: pricing,
: datetime.utcnow().isoformat()
}
logger.info( )
results
( ) -> [ , ]:
{
: opportunity.value,
: [],
: {}
}
( ) -> [ , ]:
logger.info( )
contract_terms = .contract_specialist.prepare_contract_terms(opportunity)
negotiation_points = ._identify_negotiation_points(opportunity)
negotiation_strategy = ._prepare_negotiation_strategy(
contract_terms,
negotiation_points
)
results = {
: opportunity.opportunity_id,
: contract_terms,
: negotiation_points,
: negotiation_strategy,
: datetime.utcnow().isoformat()
}
logger.info( )
results
( ) -> [ , ]:
{
: [],
: [],
: [],
: []
}
( ) -> [ [ , ]]:
[]
:
( ):
.config = config
:
( ):
.config = config
( ) -> :
( ) -> [ , ]:
{}
:
( ):
.config = config
( ) -> [ , ]:
{}
Tooling & Tech Stack
Demo Tools
Zoom : Video conferencing
Google Meet : Video conferencing
Loom : Video recording
OBS Studio : Screen recording
Figma : Design
PoC Tools
Docker : Containerization
Kubernetes : Orchestration
AWS : Cloud platform
Azure : Cloud platform
GCP : Cloud platform
CRM Tools
Salesforce : CRM
HubSpot : CRM
Pipedrive : CRM
Zoho CRM : CRM
Monday.com : CRM
Collaboration Tools
Slack : Team communication
Microsoft Teams : Team collaboration
Notion : Documentation
Confluence : Documentation
Miro : Visual collaboration
Configuration Essentials
Sales Engineering Configuration
sales_engineering:
discovery:
enabled: true
methods:
- "discovery_call"
- "technical_assessment"
- "requirements_gathering"
deliverables:
- "requirements_document"
- "solution_proposal"
- "architecture_diagram"
demo:
enabled: true
duration_minutes: 60
preparation_time: "2-4 hours"
environment:
type: "sandbox"
data_source: "demo_data"
refresh_frequency: "daily"
features:
customization: true
branding: true
use_case_specific: true
poc:
enabled: true
duration_weeks: 4
scope:
max_features: 5
max_integrations: 3
max_users: 10
success_criteria:
Code Examples
Good: Complete Sales Engineering Workflow
import asyncio
import logging
from typing import Dict , Any
from sales_engineering.engineer import SalesEngineer
from sales_engineering.support import SalesSupport
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
async def run_sales_engineering ():
"""Run sales engineering workflow"""
logger.info("=" * 60 )
logger.info("Sales Engineering Workflow" )
logger.info("=" * 60 )
config = load_config('config/sales_engineering_config.yaml' )
opportunity = create_sample_opportunity()
logger.info("\n" + "=" * 60 )
logger.info("Step 1: Supporting Discovery" )
logger.info("=" * 60 )
engineer = SalesEngineer(config)
discovery_results = await engineer.support_discovery(opportunity)
logger.info("Discovery supported" )
print_discovery_results(discovery_results)
logger.info("\n" + "=" * 60 )
logger.info("Step 2: Creating Demo" )
logger.info("=" * 60 )
demo = await engineer.create_demo(opportunity)
logger.info(f"Demo created: {demo.demo_id} " )
print_demo_summary(demo)
logger.info( + * )
logger.info( )
logger.info( * )
poc = engineer.build_poc(opportunity)
logger.info( )
print_poc_summary(poc)
logger.info( + * )
logger.info( )
logger.info( * )
support = SalesSupport(config)
objections = [
,
,
]
objection_results = support.handle_objections(opportunity, objections)
logger.info( )
print_objection_results(objection_results)
print_summary(opportunity, discovery_results, demo, poc, objection_results)
() -> Opportunity:
Opportunity(
opportunity_id= ,
account_name= ,
contact_name= ,
stage=OpportunityStage.DISCOVERY,
value= ,
probability= ,
requirements=[
,
,
],
challenges=[
,
],
created_at=datetime.utcnow().isoformat(),
updated_at=datetime.utcnow().isoformat()
)
( ):
( )
( )
req_type, requirements results[ ].items():
( )
( )
( )
( ):
( )
( )
( )
( )
( )
( )
( )
( ):
( )
( )
( )
( )
( )
( )
( )
( )
( ):
( )
( )
objection results[ ]:
( )
( )
( ):
( + * )
( )
( * )
( )
( )
( )
( )
( )
( )
( )
( )
( ) -> [ , ]:
yaml
(filename, ) f:
yaml.safe_load(f)
():
run_sales_engineering()
__name__ == :
asyncio.run(main())
Bad: Anti-pattern Example
def bad_sales_engineering ():
pass
def bad_sales_engineering ():
support_discovery()
def bad_sales_engineering ():
support_discovery()
create_demo()
def bad_sales_engineering ():
support_discovery()
create_demo()
build_poc()
Standards, Compliance & Security
Industry Standards
Sales Engineering : Sales engineering best practices
Pre-Sales : Pre-sales best practices
Solution Selling : Solution selling methodology
Value Selling : Value selling methodology
Security Best Practices
Data Protection : Protect customer data
Access Control : RBIC for demo/PoC environments
Audit Logging : Log all sales engineering activities
Confidentiality : Maintain confidentiality
Compliance Requirements
GDPR : Data protection compliance
Data Privacy : Protect customer privacy
Contract Compliance : Follow contract requirements
Industry Regulations : Follow industry regulations
Quick Start
1. Install Dependencies
pip install pyyaml
2. Configure Sales Engineering
cp config/sales_engineering_config.yaml.example config/sales_engineering_config.yaml
vim config/sales_engineering_config.yaml
3. Run Sales Engineering
python sales_engineering/workflow.py
4. View Results
cat sales_engineering/results/opportunities.json
cat sales_engineering/results/demos/
cat sales_engineering/results/pocs/
Production Checklist
Discovery
Demo
PoC
Objection Handling
Pricing
Contracts
Anti-patterns
❌ Avoid These Practices
No Discovery
pass
No Demo
support_discovery()
No PoC
support_discovery()
create_demo()
No Objection Handling
support_discovery()
create_demo()
build_poc()
✅ Follow These Practices
Support Discovery
engineer = SalesEngineer(config)
results = await engineer.support_discovery(opportunity)
Create Demo
demo = await engineer.create_demo(opportunity)
Build PoC
poc = await engineer.build_poc(opportunity)
Handle Objections
support = SalesSupport(config)
results = await support.handle_objections(opportunity, objections)
Unit Economics & KPIs
Development Costs
Initial Setup : 20-40 hours
Discovery Framework : 20-40 hours
Demo Creation : 40-80 hours
PoC Building : 60-120 hours
Total : 140-280 hours
Operational Costs
Demo Environment : $200-1000/month
PoC Environment : $500-2000/month
CRM Tools : $100-500/month
Collaboration Tools : $50-200/month
ROI Metrics
Win Rate : 20-40% improvement
Deal Size : 30-50% improvement
Sales Cycle : 30-50% reduction
Customer Satisfaction : 40-60% improvement
KPI Targets
Discovery Completion Rate : > 90%
Demo Success Rate : > 80%
PoC Acceptance Rate : > 70%
Obection Resolution Rate : > 85%
Win Rate : > 30%
Integration Points / Related Skills
Upstream Skills
136. Business to Technical Spec : Requirements
137. API-First Product Strategy : API design
138. Platform Product Design : Platform design
146. Developer Relations & Community : Community building
147. Technical Content Marketing : Content marketing
Parallel Skills
149. Enterprise Sales Alignment : Sales alignment
150. Partner Program Design : Partner programs
151. Analyst Relations : Analyst relations
Downstream Skills
152. Launch Strategy Execution : Launch strategy
Cross-Domain Skills
18. Project Management : Project planning
81. SaaS FinOps Pricing : Pricing strategy
82. Technical Product Management : Product management
84. Compliance AI Governance : Compliance
References & Resources
Documentation
Best Practices
Tools & Libraries
List
str
str
str
@dataclass
class
Demo
"""Demo definition"""
str
str
str
str
List
str
List
str
str
int
str
@dataclass
class
ProofOfConcept
"""Proof of concept definition"""
str
str
str
str
List
str
List
str
str
str
str
class
SalesEngineer
"""Sales engineering specialist"""
def
__init__
self, config: Dict [str , Any ]
self
self
'opportunity_store'
self
'demo'
self
'poc'
async
def
support_discovery
self,
opportunity: Opportunity
Dict
str
Any
"""Support discovery phase"""
f"Supporting discovery for opportunity: {opportunity.opportunity_id} "
await
self
await
self
await
self
'opportunity_id'
'requirements_analysis'
'challenges'
'solutions'
'completed_at'
f"Discovery supported: {opportunity.opportunity_id} "
return
async
def
_analyze_requirements
self,
opportunity: Opportunity
Dict
str
Any
"""Analyze opportunity requirements"""
'technical_requirements'
'functional_requirements'
'integration_requirements'
'security_requirements'
'compliance_requirements'
for
in
self
f"{req_type} _requirements"
return
def
_categorize_requirement
self, requirement: str
str
"""Categorize requirement"""
if
'security'
in
return
'security'
elif
'integration'
in
return
'integration'
elif
'compliance'
in
return
'compliance'
elif
'technical'
in
return
'technical'
else
return
'functional'
async
def
_identify_challenges
self,
opportunity: Opportunity
List
Dict
str
Any
"""Identify potential challenges"""
for
in
'challenge'
'severity'
self
'mitigation'
self
return
def
_assess_severity
self, challenge: str
str
"""Assess challenge severity"""
if
'critical'
in
return
'high'
elif
'major'
in
return
'medium'
else
return
'low'
def
_suggest_mitigation
self, challenge: str
str
"""Suggest mitigation for challenge"""
return
"Custom solution required"
async
def
_recommend_solutions
self,
opportunity: Opportunity,
requirements_analysis: Dict [str , Any ],
challenges: List [Dict [str , Any ]]
List
Dict
str
Any
"""Recommend solutions for opportunity"""
for
in
if
'type'
'_requirements'
''
'requirements'
'solution'
self
'effort'
self
'timeline'
self
for
in
if
'severity'
'high'
'type'
'challenge_mitigation'
'challenge'
'challenge'
'solution'
'mitigation'
'effort'
'medium'
'timeline'
'2-4 weeks'
return
def
_propose_solution
self,
req_type: str ,
requirements: List [str ]
str
"""Propose solution for requirements"""
return
"Custom solution"
def
_estimate_effort
self,
req_type: str ,
requirements: List [str ]
str
"""Estimate effort for solution"""
return
"medium"
def
_estimate_timeline
self,
req_type: str ,
requirements: List [str ]
str
"""Estimate timeline for solution"""
return
"2-4 weeks"
async
def
create_demo
self,
opportunity: Opportunity
"""Create demo for opportunity"""
f"Creating demo for opportunity: {opportunity.opportunity_id} "
self
await
self
f"{opportunity.account_name} Demo"
self
self
self
self
60
f"Demo created: {demo_id} "
return
def
_generate_demo_description
self, opportunity: Opportunity
str
"""Generate demo description"""
return
f"Customized demo for {opportunity.account_name} addressing their specific needs"
def
_select_demo_features
self, opportunity: Opportunity
List
str
"""Select features for demo"""
return
def
_select_use_cases
self, opportunity: Opportunity
List
str
"""Select use cases for demo"""
return
def
_schedule_demo
self, opportunity: Opportunity
str
"""Schedule demo"""
return
async
def
build_poc
self,
opportunity: Opportunity
"""Build proof of concept for opportunity"""
f"Building PoC for opportunity: {opportunity.opportunity_id} "
self
self
self
await
self
f"{opportunity.account_name} PoC"
self
self
self
f"PoC built: {poc_id} "
return
def
_define_poc_scope
self, opportunity: Opportunity
List
str
"""Define PoC scope"""
return
def
_define_success_criteria
self, opportunity: Opportunity
List
str
"""Define PoC success criteria"""
return
def
_generate_poc_description
self, opportunity: Opportunity
str
"""Generate PoC description"""
return
f"Proof of concept for {opportunity.account_name} "
def
_calculate_poc_start_date
self
str
"""Calculate PoC start date"""
from
import
1
return
def
_calculate_poc_end_date
self
str
"""Calculate PoC end date"""
from
import
5
return
def
_generate_demo_id
self
str
"""Generate unique demo ID"""
import
return
f"demo_{uuid.uuid4().hex } "
def
_generate_poc_id
self
str
"""Generate unique PoC ID"""
import
return
f"poc_{uuid.uuid4().hex } "
class
DemoCreator
"""Demo creation specialist"""
def
__init__
self, config: Dict [str , Any ]
self
async
def
create_demo
self,
demo_id: str ,
opportunity_id: str ,
title: str ,
description: str ,
features: List [str ],
use_cases: List [str ],
scheduled_at: str ,
duration_minutes: int
"""Create demo"""
await
self
await
self
return
async
def
_create_demo_environment
self, demo_id: str
"""Create demo environment"""
pass
async
def
_configure_demo_data
self, demo_id: str , features: List [str ]
"""Configure demo data"""
pass
class
PoCBuilder
"""PoC building specialist"""
def
__init__
self, config: Dict [str , Any ]
self
async
def
build_poc
self,
poc_id: str ,
opportunity_id: str ,
title: str ,
description: str ,
scope: List [str ],
success_criteria: List [str ],
status: PoCStatus,
start_date: str ,
end_date: str
"""Build proof of concept"""
await
self
await
self
await
self
return
async
def
_create_poc_environment
self, poc_id: str
"""Create PoC environment"""
pass
async
def
_implement_poc
self, poc_id: str , scope: List [str ]
"""Implement PoC"""
pass
async
def
_test_poc
self, poc_id: str , success_criteria: List [str ]
"""Test PoC"""
pass
class
OpportunityStore
"""Opportunity storage specialist"""
def
__init__
self, config: Dict [str , Any ]
self
async
def
create_opportunity
self, opportunity: Opportunity
"""Create opportunity"""
pass
async
def
get_opportunity
self, opportunity_id: str
"""Get opportunity"""
return
None
async
def
update_opportunity
self, opportunity: Opportunity
"""Update opportunity"""
pass
return
async
def
_analyze_objections
self,
objections: List [str ]
List
Dict
str
Any
"""Analyze sales objections"""
for
in
'objection'
'type'
self
'severity'
self
'root_cause'
self
return
def
_categorize_objection
self, objection: str
str
"""Categorize objection"""
if
'price'
in
return
'pricing'
elif
'feature'
in
return
'feature'
elif
'security'
in
return
'security'
elif
'integration'
in
return
'integration'
else
return
'other'
def
_assess_objection_severity
self, objection: str
str
"""Assess objection severity"""
return
'medium'
def
_identify_root_cause
self, objection: str
str
"""Identify root cause of objection"""
return
"Unknown"
async
def
_prepare_objection_responses
self,
analyzed_objections: List [Dict [str , Any ]]
List
Dict
str
Any
"""Prepare objection responses"""
for
in
'objection'
'objection'
'type'
'type'
'response'
self
'evidence'
self
'follow_up'
self
return
def
_generate_response
self, objection: Dict [str , Any ]
str
"""Generate response to objection"""
return
"Custom response"
def
_gather_evidence
self, objection: Dict [str , Any ]
List
str
"""Gather evidence for response"""
return
def
_suggest_follow_up
self, objection: Dict [str , Any ]
str
"""Suggest follow-up action"""
return
"Schedule follow-up meeting"
async
def
provide_pricing_guidance
self,
opportunity: Opportunity
Dict
str
Any
"""Provide pricing guidance"""
f"Providing pricing guidance for opportunity: {opportunity.opportunity_id} "
await
self
await
self
await
self
'opportunity_id'
'value_analysis'
'pricing_model'
'pricing'
'provided_at'
f"Pricing guidance provided: {opportunity.opportunity_id} "
return
async
def
_analyze_opportunity_value
self,
opportunity: Opportunity
Dict
str
Any
"""Analyze opportunity value"""
return
'estimated_value'
'value_drivers'
'roi_calculation'
async
def
support_contract_negotiation
self,
opportunity: Opportunity
Dict
str
Any
"""Support contract negotiation"""
f"Supporting contract negotiation for opportunity: {opportunity.opportunity_id} "
await
self
await
self
self
'opportunity_id'
'contract_terms'
'negotiation_points'
'negotiation_strategy'
'supported_at'
f"Contract negotiation supported: {opportunity.opportunity_id} "
return
def
_prepare_negotiation_strategy
self,
contract_terms: Dict [str , Any ],
negotiation_points: List [Dict [str , Any ]]
Dict
str
Any
"""Prepare negotiation strategy"""
return
'must_haves'
'nice_to_haves'
'trade_offs'
'walk_away_points'
async
def
_identify_negotiation_points
self,
opportunity: Opportunity
List
Dict
str
Any
"""Identify negotiation points"""
return
class
ObjectionHandler
"""Objection handling specialist"""
def
__init__
self, config: Dict [str , Any ]
self
class
PricingSpecialist
"""Pricing specialist"""
def
__init__
self, config: Dict [str , Any ]
self
async
def
recommend_pricing_model
self,
opportunity: Opportunity,
value_analysis: Dict [str , Any ]
str
"""Recommend pricing model"""
return
"subscription"
async
def
calculate_pricing
self,
opportunity: Opportunity,
pricing_model: str
Dict
str
Any
"""Calculate pricing"""
return
class
ContractSpecialist
"""Contract specialist"""
def
__init__
self, config: Dict [str , Any ]
self
async
def
prepare_contract_terms
self,
opportunity: Opportunity
Dict
str
Any
"""Prepare contract terms"""
return
-
"functional_requirements_met"
-
"performance_benchmarks_met"
-
"security_requirements_met"
-
"user_acceptance"
deliverables:
-
"poc_documentation"
-
"demo_video"
-
"success_report"
-
"implementation_guide"
objections:
common_objections:
-
type:
"pricing"
responses:
-
"Value-based_pricing"
-
"ROI_calculation"
-
"Competitive_comparison"
-
type:
"feature"
responses:
-
"Feature_roadmap"
-
"Custom_development"
-
"Workaround_solutions"
-
type:
"security"
responses:
-
"Security_certifications"
-
"Compliance_documentation"
-
"Security_audit_report"
-
type:
"integration"
responses:
-
"Integration_options"
-
"API_documentation"
-
"Partner_integrations"
pricing:
models:
-
"subscription"
-
"usage_based"
-
"enterprise"
discount_policy:
enabled:
true
max_discount:
0.2
approval_required:
true
discount_threshold:
10000
contracts:
templates:
-
"standard_sla"
-
"enterprise_sla"
-
"custom_sla"
terms:
payment_terms:
-
"net_30"
-
"net_60"
-
"annual_upfront"
support_levels:
-
"standard"
-
"premium"
-
"enterprise"
sla_levels:
-
"99.5%"
-
"99.9%"
-
"99.99%"
"\n"
"="
60
"Step 3: Building PoC"
"="
60
await
f"PoC built: {poc.poc_id} "
"\n"
"="
60
"Step 4: Handling Objections"
"="
60
"The price is too high"
"We need feature X"
"We're concerned about security"
await
"Objections handled"
def
create_sample_opportunity
"""Create sample opportunity"""
return
"opp_123456"
"Acme Corporation"
"John Smith"
50000.0
0.3
"API integration with existing systems"
"Custom reporting"
"SSO integration"
"Complex integration requirements"
"Tight timeline"
def
print_discovery_results
results: Dict [str , Any ]
"""Print discovery results"""
print
f"\nDiscovery Results:"
print
f" Requirements Analysis:"
for
in
'requirements_analysis'
print
f" {req_type} : {len (requirements)} requirements"
print
f" Challenges: {len (results['challenges' ])} "
print
f" Solutions: {len (results['solutions' ])} "
def
print_demo_summary
demo: Demo
"""Print demo summary"""
print
f"\nDemo Summary:"
print
f" Title: {demo.title} "
print
f" Description: {demo.description} "
print
f" Features: {len (demo.features)} "
print
f" Use Cases: {len (demo.use_cases)} "
print
f" Scheduled: {demo.scheduled_at} "
print
f" Duration: {demo.duration_minutes} minutes"
def
print_poc_summary
poc: ProofOfConcept
"""Print PoC summary"""
print
f"\nPoC Summary:"
print
f" Title: {poc.title} "
print
f" Description: {poc.description} "
print
f" Scope: {len (poc.scope)} items"
print
f" Success Criteria: {len (poc.success_criteria)} "
print
f" Status: {poc.status.value} "
print
f" Start Date: {poc.start_date} "
print
f" End Date: {poc.end_date} "
def
print_objection_results
results: Dict [str , Any ]
"""Print objection results"""
print
f"\nObjection Results:"
print
f" Objections: {len (results['objections' ])} "
for
in
'objections'
print
f" - {objection['objection' ]} : {objection['type' ]} "
print
f" Responses: {len (results['responses' ])} "
def
print_summary
opportunity: Opportunity,
discovery_results: Dict [str , Any ],
demo: Demo,
poc: ProofOfConcept,
objection_results: Dict [str , Any ]
"""Print summary"""
print
"\n"
"="
60
print
"Sales Engineering Summary"
print
"="
60
print
f"Opportunity: {opportunity.account_name} "
print
f"Value: ${opportunity.value:,.0 f} "
print
f"Probability: {opportunity.probability:.0 %} "
print
f"\nActivities:"
print
f" Discovery: Completed"
print
f" Demo: Created ({demo.demo_id} )"
print
f" PoC: Built ({poc.poc_id} )"
print
f" Objections: Handled ({len (objection_results['objections' ])} )"
def
load_config
filename: str
Dict
str
Any
"""Load configuration from file"""
import
with
open
'r'
as
return
async
def
main
"""Main entry point"""
await
if
"__main__"