Framework setup
GTM FUNNEL
Each column below is a Lifecycle Stage. Where a stage has one, its Contact Status chips are shown directly on the card - see Contact Status for the full reference.
Recycle, Unqualified, and Partner sit outside the forward funnel - see the full breakdown below.
FOR MARKETING TO ENGAGE
MARKETING HANDS OFF
REJECTED: UNQUALIFIED OR RECYCLE
(PRE-PIPELINE)
DEAL RECORD CREATED
WON OR LOST
ONBOARDING BEGINS WITH CS
CHANNEL PARTNER
RESURFACES AS NEW
ELIGIBLE FOR RE-MQLING
WRONG ICP / BAD FIT / WON'T CONVERT
⚠ CUSTOMER IDENTIFICATION
Not every Customer is the same type. Add Customer Type as a property:
- → Active - paying, in good standing
- → Inactive - paying, but not using the product; a Health signal, not a lifecycle event
- → Evangelist - referral source, review, or case study champion
- → Churned - set on both Account Status (company) and Contact Status (contact); Lifecycle Stage stays = Customer, always
- → Win-back re-enters through a new Deal in the renewal pipeline - never by recycling back to MQL or SQL
CONTACT STATUS
Two separate fields carry status: Account Status lives on the Company and moves in one direction, while Contact Status lives on the Contact and differs by where they sit in the lifecycle.
ACCOUNT-LEVEL FIELDS
| Field | Question it answers | Values | Owner |
|---|---|---|---|
| Account Status | Where is this account in the commercial lifecycle? | Prospect → Active → Churned | Marketing / RevOps |
| Account Health | Is this account trending toward risk right now? | Healthy · At-Risk · Critical (Churned mirrors Account Status) | Customer Success |
Why split them: Account Status is a lagging, event-driven field - something happened (closed won, churned). Account Health is a leading, signal-driven field - usage decline, support ticket volume, renewal proximity, sentiment - that needs to move freely without corrupting the lifecycle audit trail. Collapse them into one field and you either lose churn-prediction capability or pollute lifecycle reporting with noise every time health fluctuates. Health is bi-directional: an At-Risk account can recover to Healthy without any lifecycle event firing.
| Lifecycle Stage | Contact Status | Definition |
|---|---|---|
| RAW | RAW | Not yet worked - subscriber, list import, form convert, or content download. |
| MQL | MQL | Marketing-qualified by score or ICP fit; not yet sales-owned. |
| SAL | ↳ Accepted | Sales has accepted the marketing hand-off. Also where a partner-vetted lead enters - partner already confirmed fit/need, treat the referral like an accepted hand-off. |
| ↳ Rejected | Sales declines the hand-off with a reason: Unqualified (wrong ICP, bad fit, will never become a customer) → Unqualified; Bad Timing, Budget, or Missing Features → Recycle. | |
| SQL | ↳ Attempted Contact | Outreach attempted, no connect yet. Also where a partner-surfaced lead enters if Sales still needs to run initial qualification. |
| ↳ Connected | Reached the contact, conversation started. | |
| ↳ In Progress | Actively working the contact toward an appointment. | |
| SQO | ↳ Discovery Meeting or Demo Call | Meeting booked; deal record created (pre-pipeline). |
| ↳ Qualified to Buy | Confirmed need, budget, and authority - deal moves to pipeline. This is the qualification gate: standardize on BANT, VANT (transactional/PLG) or MEDDIC (complex/enterprise) per segment rather than naming a framework here. | |
| Opportunity | - tracked via Deal Stage | Progression (Meeting with Buying Team → Decision Maker Aligned → Contract Sent) is on the Deal, not the Contact. If using MEDDIC, its fields (Economic Buyer, Decision Criteria, Decision Process, Metrics, Identified Pain, Champion) populate progressively across these stages - Champion/Decision Maker then live natively on the Deal instead of only in Target Accounts. |
| Customer | - tracked via Deal Stage | Closed Won on the Deal; onboarding begins. See Customer Types above for Active / Inactive / Evangelist / Churned. |
| ↳ Churned | Set on win-out; Lifecycle Stage stays Customer, never reverts. | |
| Partner | Partner | Channel or referral source, not a direct customer. |
| Recycle | ↳ Recycle | Dropped into a re-engagement campaign. |
| ↳ Bad Timing | Soft-lost on timing; Active Nurture Category set, lifecycle stays put. | |
| ↳ Budget | Soft-lost on budget; Active Nurture Category set, lifecycle stays put. | |
| ↳ Missing Features | Soft-lost on product fit; Active Nurture Category set, lifecycle stays put. | |
| Unqualified | Unqualified | Disqualified: wrong ICP, bad fit, or will never become a customer. |
QUALIFICATION FRAMEWORKS
Referenced above at the SQO "Qualified to Buy" gate: pick one qualification standard per segment rather than naming a framework in the Contact or Deal object directly.
| Framework | Stands For | Best Fit |
|---|---|---|
| BANT | Budget, Authority, Need, and Timeline | Transactional or PLG motions - fast qualification, mostly single-threaded deals. |
| VANT | Value, Authority, Need, and Timeline | Same motion as BANT, but leads with a value conversation instead of a budget conversation. |
| MEDDIC | Metrics, Economic Buyer, Decision Criteria, Decision Process, Identified Pain, and Champion | Complex, multi-stakeholder enterprise deals - fields populate progressively across the Opportunity stages, not all at once. |
RECYCLE & RE-NURTURE PATHS
CLOSED LOST → RECYCLE
Deal → Closed Lost
- Lost before Stage 2: Lifecycle stays = SQO. Contact Status → Unqualified (hard DQ) or Bad Timing (soft → stay SQO, enter nurture).
- Lost after Stage 2 (was Opportunity): Lifecycle becomes Recycle unless moved to Unqualified. Contact Status → Unqualified or Budget/Timing → Recycle.
- Contacts only: Contact Status → Recycle. On re-engagement: Contact Status → New, resurfaces in sales view.
- Leads + Contacts: a new Lead record is created on the contact - re-enters the sales queue fresh.
CHURNED CUSTOMER → WIN-BACK
- Account Status = Churned
- Lifecycle Stage = Recycle
- New Deal created in renewal/win-back pipeline
- Account Status → Active on Closed Won
- Contact Status is not relevant - they are not a lead
MQL REASON
MQL Reason tells Sales how and why a contact was marketing-qualified and routed to them, so they can sequence follow-up by source instead of treating every MQL the same.
| Priority | Reason | Definition |
|---|---|---|
| P0 | MQL: Contact Sales Form | Submitted the Contact Sales form; not a generic domain; opted into marketing emails; company 50+ employees. |
| P0 | MQL: Event/Webinar Hand-Raiser | Attended the most recent webinar and replied Yes or Maybe to Sales follow-up. |
| P0 | MQL: Request a Demo | Requested a demo; not a generic domain; company 50+ employees. |
| P1 | MQL: Strategic Campaign | Criteria set per campaign by Demand Generation. |
| P1 | MQL: Chat | Chat team qualified for an upsell/expansion hand-off; not a generic domain; opted in; 50+ employees. |
| P2 | MQL: Scored | Native/ML scoring on conversion behavior (never opens or clicks); not an existing user; opted in; 50+ employees; Manager+. |
| P2 | PQL: Freemium + ICP | Signed up for a free trial; Director/Manager/Non-Manager level; matches ICP. |
| P2 | PQL: Freemium + Not ICP | Signed up for a free trial; Director/Manager/Non-Manager level; outside ICP. |
| P2 | PQL: Premium + ICP | Existing paid account; C-Level/VP-Level; matches ICP. |
| P2 | PQL: Premium + Not ICP | Existing paid account; C-Level/VP-Level; outside ICP. |
FUNNEL HISTORY
Lifecycle Stage and Contact Status only show where someone is right now - they overwrite themselves every time a contact moves. Funnel History is a separate custom object that doesn't: it's an append-only log, one row per stage transition, timestamped and linked back to the Contact and Company. Nothing native tracks this on its own.
That log is what turns a snapshot into a timeline. Without it, you can say a contact is "SQL" today - but not how long they sat in MQL, which campaign actually moved them, or whether this is their first pass through the funnel or their third. With it, three things become possible: velocity reporting (average days per stage, where deals actually stall), campaign attribution (crediting the touch that drove the transition, not just whichever one happened last), and recycle detection (flagging a contact on cycle 2 so Sales works them differently than a true first-touch lead).
Logged per transition: Date/Time Entered · Stage · Source / Campaign · Contact · Company
| Date Entered | Stage | Source / Campaign | Cycle |
|---|---|---|---|
| Jan 4 | MQL | Webinar: Q1 Pipeline | 1 |
| Jan 6 | SAL | - | 1 |
| Jan 9 | SQL | - | 1 |
| Jan 22 | Unqualified | Wrong ICP | 1 |
| Apr 18 | Recycle | Re-engagement email | 1 |
| May 2 | SQL | Score threshold hit | 2 |
| May 20 | SQO | Demo completed | 2 |
| Jun 3 | Customer | Closed Won | 2 |
SLA LAYER
Funnel History gives you the date and time for every entry per row - necessary but not sufficient for SLA enforcement. Three things layer on top; they're calculated from the log, not logged in it:
| Element | Purpose |
|---|---|
| Stage Entry Timestamp | Time-of-day precision, not just date - needed for any SLA under 24 hours (e.g. SQL "Attempted Contact" within 4 business hours). |
| SLA Threshold table | Per stage, per segment if needed - e.g. MQL → SAL response: 24 hrs; SAL → SQL first touch: 4 business hrs; SQO no-show follow-up: 24 hrs. |
| Breach Flag (calculated) | Time in Current Stage > SLA Threshold → boolean. Drives alerting and dashboards without writing a new Funnel History row. |
This stays additive: Funnel History remains the immutable log, and SLA logic is a calculated layer on top - current-stage entry timestamp vs. now, compared against the threshold table. No restructuring needed, just timestamp precision plus a small threshold reference - which also gives you something concrete to alert on for managers tracking response-time health: here's the standard, here's the measured adherence.
TARGET ACCOUNTS (ABM LAYER)
Target Accounts exist at the Company level, not Contact level - they operate as a parallel ABM layer overlaid on the standard funnel.
How it works: flag a Company as a Target Account in your CRM - most modern CRMs support this as a standard or premium-tier property. This unlocks ABM dashboards, ICP scoring, and account-level engagement views. Contacts at Target Account companies should be fast-tracked: even a Raw contact at a Target Account company may warrant direct sales outreach, bypassing normal MQL thresholds.
Recommended setup: Target Account = ✓ → auto-assign to ABM sequence → SDR reaches out regardless of contact lifecycle stage → if contact converts, follow normal SAL → SQL → SQO → Deal path. Track engagement at both company and contact level. Use the Buying Role contact property (Champion, Decision Maker, Blocker, etc.) to map deal stakeholders on Target Accounts.