Skip to main content Skills Marketplace Découvrez et explorez les compétences IA créées par la communauté.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Copier le promptAfficher les détails du prompt Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
npx skills add https://github.com/majiayu000/claude-skill-registry --skill sales-engineeringLa commande reste sur une seule ligne. Faites défiler horizontalement pour la vérifier avant de la copier.
Vous préférez une copie locale ? Téléchargez les fichiers actuellement disponibles dans SkillsMP.
Télécharger Zip Téléchargement... Métiers associés SOC
Basé sur la classification professionnelle SOC
Explorateur de fichiers
2 fichiers 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__"