Skip to content

Y13 — Sales Pipeline & CRM Config (HubSpot)

Asset: Y13  |  Workstream: [GTM]  |  Ownership: [SO]  |  Owner: Sagar Status: drafted  |  The substrate the A-series acts on (A2 routing, A5 trigger, G5 discovery_report_url).

Purpose: The HubSpot deal stages + custom properties + pipeline definition that the Y0 funnel and the A-series automation depend on. Field names here are reconciled against the real code in apps/crm-automations/ so A1/A2/A5/G5 references resolve.


1. Pipeline: "SnowOps Sales Pipeline"

Stages map 1:1 to the Y0 §4 funnel. The A5 discovery trigger fires on the transition into Qualified (apps/crm-automations/src/discovery-trigger/action.ts header: "Trigger: HubSpot Workflow on Deal stage change → Qualified").

# Stage Funnel (Y0) Automation fired Nurture (Y10)
1 New Target A1 enrich (contact)
2 Contacted Outreach Y4 sequence; A2 scored/routed §3 no-response revival
3 Qualified Outreach→Audit A5: dispatch G4 + send offer email
4 Audit Running Discovery Audit G4 run; G5 writes discovery_report_url §1 post-audit
5 Findings Reviewed Findings Review — (Y5 call)
6 Proposal Sent Proposal A3 renders proposal §2 post-proposal
7 Negotiation Close
8 Closed Won Close→Onboard A4 kickoff webhook → B1 — (Y11 handoff)
9 Closed Lost §4 lost-deal re-engagement

Post-onboarding (Customer / Expansion, Y11) is tracked in a separate "Customer" pipeline or via deal-create for expansions — not in the sales pipeline above.

2. Custom deal properties (reconciled with A5 + G5)

These exact names are read/written by discovery-trigger/action.ts (REQUIRED_DEAL_PROPERTIES + patchDeal). Do not rename without updating the code.

Property Type Written by / read by Notes
dealname string standard
company_name string A5 reads client name (slugified for client_name)
contact_email string A5 reads offer-email recipient
contact_firstname string A5 reads offer-email personalization
discovery_tenant_id string (GUID) A5 reads (validates GUID) G4 dispatch input
discovery_subscription_id string (GUID) A5 reads (validates GUID) G4 dispatch input
discovery_subscription_display_name string A5 reads G4 dispatch input
discovery_status enum: (empty)/triggered/complete A5 reads + writes triggered guards re-fire
discovery_triggered_at datetime A5 writes timestamp
discovery_report_url string (URL) G5 writes the delivered audit PDF link
package enum: Quick-Win/Baseline/Advanced sales sets drives Y6/A3
target_framework enum: SOC2/ISO27001/HIPAA/PCI sales sets proposal + Y7
audit_deadline date sales sets timeline driver
num_subscriptions / num_environments / has_aks / greenfield various sales sets Y2 price gates
project_fee / monthly_retainer number sales sets proposal commercial
loss_reason enum sales sets on Closed Lost Y10 §4

3. Custom contact / company properties (reconciled with A1 + Y3)

A1 enrichment writes the HubSpot-standard names via lead-enrichment/property-map.ts: firstname, lastname, jobtitle, hs_linkedin_url, company, industry, country. The Y3 ICP fields are additional custom properties layered on top.

Property Source Used by
firstname / lastname / jobtitle / hs_linkedin_url A1 (standard) Y4 tokens
company / industry / country A1 (standard) A2 scoring
vertical Y3 seed list A2 (+30 if in {SaaS,FinTech,HealthTech,Cloud-Native})
funding_stage Y3 A2 (+20 if Series A–pre-IPO)
cloud_primary Y3 A2 (+15 if Azure)
ci_platform Y3 A2 (+5 if GitHub)
buying_signal Y3 Y4 {{signal}}
signal_tier Y3 A2 (A/B/C → +25/+15/+5)
lead_source Y3 reporting
icp_score A2 writes routing (≥80 ICP / 50–79 near / <50 out)
icp_band A2 writes enum: ICP / Near-ICP / Out-of-ICP
routed_to A2 writes Sagar / Nidhi / nurture

4. A-series field-reference resolution (the DoD)

Automation Reads/writes Resolves against
A1 writes firstname/lastname/jobtitle/hs_linkedin_url/company/industry/country §3 ✓
A2 reads §3 ICP props; writes icp_score/icp_band/routed_to §3 ✓
A5 reads §2 REQUIRED_DEAL_PROPERTIES; writes discovery_status/discovery_triggered_at §2 ✓ (verified against action.ts)
G5 writes discovery_report_url §2 ✓
A4 reads deal on Closed Won → B1 §1 stage 8 ✓

5. Reporting / dashboards

Instrument the Y0 §7 metrics: - Positive-reply rate by Y4 sequence + subject line. - Stage conversion rates (audit-accepted, review-booked, proposal→close). - Retainer renewal rate (Y11).


Definition of Done (Y13)

  • Stages + properties documented. (Met — §1–§3.)
  • A2/A5/G5 field references resolve against the defined schema. (Met — §4; A5 verified against discovery-trigger/action.ts, A1 against lead-enrichment/property-map.ts.)
  • Built in the HubSpot account (Sagar — the config task).

Sign-off

  • Reviewer: _  |  Date: _  |  Result: PASS / FAIL