A comprehensive Revenue Operations intelligence platform built on Palantir Foundry, demonstrating advanced sales analytics, deal health scoring, process mining, and AI-powered insights.
This project transforms raw CRM data into actionable intelligence for sales leadership. Instead of passive dashboards that require drilling, it pushes insights to stakeholders before they know to ask.
- Deal Health Scoring - Composite health scores based on velocity, activity, stakeholders, competition, and discount levels
- Forecast Confidence - Realistic forecast assessments adjusted for deal health
- Rep Performance Analytics - Pattern analysis identifying what top performers do differently
- Process Mining - Bottleneck detection and cycle time analysis
- AIP Agents - Natural language interfaces for Deal Risk, Forecasting, Coaching, and Briefings
The included scenario data tells the story of TechFlow Solutions fighting to close Q4:
- $13M target, currently at $8.2M closed with $4.8M to go
- Hero Deals with names and drama (Acme Corporation going dark, GlobalTech on track)
- Rep Performance patterns (Jessica's 4.2 stakeholders vs Kevin's 1.3)
- Process Bottlenecks (Legal Review at 12 days vs 5 day target)
- Competitive Pressure (TechRival winning on price in Mid-Market)
The project includes a modern React dashboard built with Next.js 14, TypeScript, and Tailwind CSS.
cd webapp
npm install
npm run dev
# Open http://localhost:3000- Pipeline Health Dashboard - Executive view with KPIs, forecast trends, stuck deals
- Rep Coaching Dashboard - Individual performance analysis with AI insights
- Dark Theme - Professional design for all-day use
- Foundry Integration - Connects to live Foundry data or uses mock data
See webapp/README.md for full documentation.
revops-hub/
├── webapp/ # React dashboard application
│ ├── src/
│ │ ├── app/ # Next.js pages
│ │ ├── components/ # Reusable UI components
│ │ ├── lib/ # Utilities and Foundry API
│ │ └── data/ # Mock data
│ └── package.json
├── transforms/
│ ├── scenario/ # Story-driven sample data generators
│ │ ├── generate_scenario_opportunities.py
│ │ ├── generate_scenario_reps.py
│ │ └── generate_process_events.py
│ ├── reference/ # Reference data (benchmarks, configs)
│ │ └── stage_benchmarks.py
│ ├── enrichment/ # Data enrichment transforms
│ │ └── calculate_deal_health.py
│ └── analytics/ # Analytical transforms
│ ├── pipeline_health_summary.py
│ ├── forecast_confidence.py
│ ├── rep_performance_analytics.py
│ └── process_bottleneck_analytics.py
├── aip/
│ └── agents.yaml # AIP Agent Studio configurations
├── docs/
│ ├── SCENARIO_DESIGN.md # Full scenario narrative and design
│ ├── DEMO_QUERIES.sql # SQL queries for live demos
│ └── DEMO_SCRIPT.md # Complete demo walkthrough script
└── README.md
Upload the transforms to a Code Repository in Foundry:
Repository: /RevOps/Transforms
The pipeline is organized into build tiers. Run python scripts/generate_manifest.py to see current status.
Tier 1: Scenario & Reference Data
/RevOps/Scenario/accounts
/RevOps/Scenario/sales_reps
/RevOps/Scenario/opportunities
/RevOps/Scenario/activities
/RevOps/Scenario/process_events
/RevOps/Reference/stage_benchmarks
Tier 2: Enrichment
/RevOps/Enriched/deal_health_scores
/RevOps/Enriched/opportunity_health_scored
Tier 3: Analytics (runs in parallel)
/RevOps/Analytics/pipeline_health_summary
/RevOps/Analytics/pipeline_hygiene_alerts
/RevOps/Analytics/pipeline_hygiene_summary
/RevOps/Analytics/pipeline_hygiene_by_owner
/RevOps/Analytics/pipeline_hygiene_trends
/RevOps/Analytics/deal_predictions
/RevOps/Analytics/leading_indicators_summary
/RevOps/Analytics/forecast_summary
/RevOps/Analytics/forecast_by_segment
/RevOps/Analytics/forecast_history
/RevOps/Analytics/forecast_accuracy
/RevOps/Analytics/process_bottlenecks
/RevOps/Analytics/deals_stuck_in_process
/RevOps/Analytics/competitive_battles
/RevOps/Analytics/win_loss_summary
/RevOps/Analytics/loss_reasons
/RevOps/Analytics/win_factors
/RevOps/Analytics/win_loss_by_segment
/RevOps/Analytics/scenario_summary
/RevOps/Analytics/scenario_win_rate_impact
/RevOps/Analytics/scenario_deal_size_impact
/RevOps/Analytics/scenario_cycle_time_impact
/RevOps/Analytics/territory_summary
/RevOps/Analytics/account_scores
/RevOps/Analytics/territory_balance
/RevOps/Analytics/white_space_analysis
/RevOps/Analytics/customer_health_summary
/RevOps/Analytics/customer_health_scores
/RevOps/Analytics/expansion_opportunities
/RevOps/Analytics/churn_risk_analysis
/RevOps/Analytics/capacity_planning_summary
/RevOps/Analytics/rep_capacity_model
/RevOps/Analytics/team_capacity_summary
/RevOps/Analytics/ramp_time_analysis
/RevOps/Analytics/qbr_executive_summary
/RevOps/Analytics/qbr_performance_summary
/RevOps/Analytics/qbr_win_loss_analysis
/RevOps/Analytics/telemetry_summary
/RevOps/Analytics/funnel_handoff_metrics
/RevOps/Analytics/cross_team_activity
/RevOps/Analytics/rep_performance
Tier 4: Dashboard & Monitoring
/RevOps/Dashboard/kpis
/RevOps/Dashboard/next_best_actions
/RevOps/Monitoring/build_metrics
/RevOps/Monitoring/stale_datasets
Run the manifest check to verify webapp and transforms are in sync:
python scripts/generate_manifest.py --checkThis generates manifest.json with:
- Webapp dataset dependencies
- Transform inputs/outputs
- Gap analysis (missing transforms, orphaned outputs)
- Topologically-sorted build order
Open Quiver or SQL workbench and run queries from docs/DEMO_QUERIES.sql:
-- Executive View: Q4 Forecast Summary
SELECT
SUM(CASE WHEN stage_name = 'Closed Won' THEN amount ELSE 0 END) as closed_won,
SUM(CASE WHEN forecast_category = 'Commit' THEN amount ELSE 0 END) as commit
FROM `/RevOps/Scenario/opportunities`
WHERE close_date >= '2024-10-01' AND close_date <= '2024-12-31';Copy prompts from aip/agents.yaml into AIP Agent Studio:
- Deal Risk Analyzer - Identifies at-risk deals with specific actions
- Forecast Confidence Advisor - Realistic forecast assessments
- Rep Coaching Assistant - Identifies coaching opportunities
- Morning Briefing - Daily personalized briefings
- Competitive Intelligence - Win/loss pattern analysis
- Process Analyzer - Bottleneck detection
Jessica Taylor: 38% win rate, 4.2 avg stakeholders
Kevin Brown: 15% win rate, 1.3 avg stakeholders
Deals with 4+ stakeholders: 45% win rate
Deals with 1 stakeholder: 12% win rate
Multi-threading is a 3.7x improvement.
Legal Review: 12 days avg (target: 5 days)
6 deals stuck, $2.8M delayed
Root cause: 2 people handling 15 deals/week
Acme Corporation: $1.2M, Health 48 (was 78)
- Champion gone dark (8 days no contact)
- Single-threaded (2 stakeholders)
- Stuck in Negotiation (18 days)
Action: CRO executive outreach by Tuesday
See docs/DEMO_SCRIPT.md for a complete 25-minute demo walkthrough:
- Executive View (5 min) - Forecast summary, win rates
- Deal Crisis (7 min) - Acme reveal, commit at risk
- Pattern Discovery (6 min) - Jessica vs Kevin, stakeholder correlation
- Competitive Intel (4 min) - TechRival analysis
- Process Bottlenecks (4 min) - Legal review delays
- AIP Agents (4 min) - Natural language demo
health_score = (
velocity_score * 0.25 + # Days in stage vs benchmark
activity_score * 0.25 + # Days since last activity
stakeholder_score * 0.25 + # Multi-threading level
competition_score * 0.15 + # Competitive involvement
discount_score * 0.10 # Discount level
)| Score | Category | Action |
|---|---|---|
| 80-100 | Healthy | Continue approach |
| 60-79 | Monitor | Watch closely |
| 40-59 | At Risk | Manager intervention |
| 0-39 | Critical | Executive involvement |
Each opportunity generates events showing:
- Stage transitions with timestamps
- Duration vs benchmark
- Bottleneck flags
- Rework patterns
Replace scenario generators with Salesforce sync:
@transform(
salesforce_opps=Input("/Salesforce/Opportunity"),
output=Output("/RevOps/Staging/opportunities")
)
def sync_opportunities(ctx, salesforce_opps, output):
# Map Salesforce fields to RevOps schema
...Modify calculate_deal_health.py to add company-specific risk factors:
- Product fit scoring
- Budget confirmation status
- Procurement timeline
Use the analytics datasets to build Workshop apps:
- Executive command center
- Rep coaching views
- Pipeline health monitor
Portfolio demonstration project. All code provided as-is for educational purposes.