🗓️ Product Strategy Workshop – Thursday, 6 June 2025, 9:30 AM (PKT) Participants • Imran (Head of Product) • Sarah (Product Manager) • Faisal (Sales Ops Lead) • Maria (Growth Marketing) • Ali (Backend Engineer) • Tania (Frontend Engineer) • Usman (ML Engineer) • Hassan (QA Engineer) ⸻ Imran (HoP) – Opening & First-Principles Framing “Let’s strip this down. Why does lead scoring exist? Three atomic goals: 1️⃣ Relevance – reps must know whom to call first. 2️⃣ Efficiency – cut manual triage to near-zero. 3️⃣ Learning loop – every closed deal should improve the model. If any feature doesn’t serve one of those, it’s noise.” ⸻ Sarah (PM) – Vision & North-Star Metric “Our north-star: Lift SQL-to-Win rate by 20 % within two quarters. • Phase 1 (Q3): Deploy ML-based scoring badges inside Lead Detail. • Phase 2 (Q4): Auto-prioritise the rep work-queue. • Phase 3 (Q1 2026): Predict next best action (demo, email, call) per lead.” ⸻ Faisal (Sales Ops) – Pain-Point Validation “Reps burn ~45 min/day triaging. Hot leads still sit 6 h on average before first touch. If we cut that to 1 h, our models suggest +9 % revenue.” ⸻ Maria (Growth) – Market Angle “Competitors price lead-scoring add-ons at $50–$150/seat. Position ours as included in Pro tier to drive upgrades from Basic; upsell Insight Packs later.” ⸻ Usman (ML) – Data Reality Check “We have 48 k labeled leads over 24 months. 2 k unique conversions → class imbalance 1:23. First-principles remedy: • Use focal loss & SMOTE-NC. • Engineer temporal features (avg pageviews last 7 days, recency decay). • SHAP for explainability; log every inference for online learning.” ⸻ Ali (Backend) – Architectural Options “Two paths: 1. Monolith Extension – quick, but limits model upgrades. 2. Event-Driven Microservice – Kafka queue, model hosted on ECS, async call-back. We pick #2; gives plug-and-play for future ‘next-best-action’ models.” ⸻ Tania (Frontend) – UX Principles “Badges alone won’t cut it. We’ll surface why a lead is ‘Hot’ in one click. Minimalist: color-coded badge + info-icon → modal with SHAP-derived bullet list.” ⸻ Hassan (QA) – Quality Gates “Define acceptance criteria now: • P90 inference latency < 800 ms. • Badge matches DB value 100 %. • Tooltips render within 50 ms of hover. • Model expl fails gracefully with stub.” ⸻ Decision Round-up 1. Adopt event-driven microservice (Ali). 2. Ship Phase 1 by July 5 to staging, GA July 19. 3. Bundle in Pro tier; marketing launch blog + webinar mid-July. 4. Track SQL-to-Win lift weekly; fallback to rules-based if lift < 5 % after 30 days. 5. Log every inference to S3 for continuous retraining loop. ⸻ Action Items Owner Task ETA Usman Prototype model v1 with SHAP 13 Jun Ali Kafka topics & service scaffold 14 Jun Tania UI wireframes → Figma 12 Jun Hassan Draft test matrix 12 Jun Maria Pricing page update draft 15 Jun ⸻ My Take (opinion) Solid first-principles start: clear why->what->how chain, crisp metric, and explicit rollback guardrail. Biggest risk is data drift once reps change behavior because of the scores—plan an online-learning cadence sooner rather than later. --- 🕘 Daily Scrum - Thursday, 6 June 2025, 11:00 AM (PKT) Participants: • Sarah (Product Manager) • Ali (Backend Engineer) • Tania (Frontend Engineer) • Usman (ML Engineer) • Hassan (QA Engineer) ⸻ Sarah (PM): “Alright team, quick round today. Let’s sync on the AI Lead Scoring feature for our CRM. Ali, can you go first?” ⸻ Ali (Backend): “Sure. Yesterday, I completed the REST endpoint for /leads/score. It accepts the POST payload with lead ID, context object, and optional override flags. The service now asynchronously queues the request into Kafka — topic lead-score-requests — and expects the score from Usman’s scoring microservice via the lead-score-responses topic.” “The async response is written back to our PostgreSQL lead_scores table, with columns: lead_id, score, confidence, explanation_json, and timestamp. I’m exposing a polling endpoint /leads/score/:id/status for the frontend to check processing state — it’s currently stubbed but will return either PENDING, SUCCESS, or FAILED.” “Today, I’ll work on securing the endpoint with JWT scopes. I’ll use our existing middleware for crm.write.leads. ETA for prod-ready endpoint: 2 days.” ⸻ Sarah: “Good. Let’s make sure the explanation in explanation_json is human-readable. Tania?” ⸻ Tania (Frontend): “I’m working on the Lead Detail view in React. When the lead is scored, we show a badge: Hot, Warm, or Cold, based on the score threshold — above 80 is Hot, below 40 is Cold.” “We also added a tooltip using react-tooltip that parses the explanation JSON. It includes rules like ‘Visited pricing page 3+ times’, ‘Opened email campaign X’, etc.” “I’m building a horizontal bar chart with Recharts for visualizing scoring breakdown by feature importance. Usman, I’ll need the schema of explanation_json to map it properly.” ⸻ Usman (ML Engineer): “Sure, explanation JSON is structured as: { 'feature_importance': { 'page_views': 0.45, 'email_opens': 0.3, 'demo_requested': 0.2, 'form_filled': 0.05 }, 'final_score': 88, 'confidence': 0.92 } “I’m using XGBoost for now with SHAP values to generate the importance. Trained on 2 years of sales-labeled leads, using 23 features — behavioral and firmographic. Model is versioned via MLflow: model:v12. It’s hosted on FastAPI in a container on ECS.” “I deployed the endpoint /score-lead which accepts the full lead JSON. Response includes score, explanation, and confidence. Today, I’m adding an A/B toggle in the API for fallback model model:v11 just in case.” ⸻ Sarah: “Excellent. Can we log the SHAP explanations in our feature store for retraining?” ⸻ Usman: “Yes. I’ll push each scoring instance to our lead_scoring_logs table in S3 via Glue job daily.” ⸻ Hassan (QA): “I’ve written Cypress tests for score badge rendering, tooltip validation, and polling behavior. I’ll test edge cases today — like malformed JSON in explanation, API timeouts, and fallback model switches.” ⸻ Sarah: “Perfect. Let’s align tomorrow on release readiness. We need this in staging by Friday EOD. Any blockers?” ⸻ Ali: “None from me.” ⸻ Tania: “All good, just need final CSS tweaks on the tooltip.” ⸻ Usman: “I’ll document the API schema on Confluence today.” ⸻ Hassan: “I’ll review that once it’s up.” ⸻ Sarah: “Great. Thanks team. Let’s sync tomorrow — same time.”