The sales-to-CS handoff is where most onboarding problems are born. The AE closes, moves to the next deal, and the CSM inherits a HubSpot record with a closed-won stage, a contract value, and almost nothing about why the customer bought or what they were promised. The CSM spends the first kickoff call re-discovering the deal instead of driving the onboarding. This SOP fixes that with three things: a fixed set of handoff fields the AE fills before the deal is marked closed-won, a timing rule that ties the handoff to the deal stage rather than to memory, and a kickoff sequence that runs the same way every time. It is deliberately boring. A handoff that depends on the AE remembering to write a good Slack message is a handoff that fails the week the AE is on PTO.
The artifact bundle lives at apps/web/public/artifacts/sales-to-cs-handoff-sop/. It ships handoff-sop.md (the procedure itself, ready to paste into Notion or a HubSpot knowledge base), handoff-fields.csv (the field manifest with types and required/optional flags for the HubSpot admin to provision), and slack-handoff-template.md (the canonical channel message the AE posts). Adapt all three to your field names and channel conventions before rollout.
When to use this
Use this SOP when you have a distinct sales team and CS team — an AE who owns the deal through close and a CSM who owns the customer after — and the handoff between them is informal or undocumented. The classic symptom is a CSM opening every kickoff call by asking the customer questions the AE already knew the answer to: who the executive sponsor is, what success looks like in 90 days, why they chose you over the incumbent. Every one of those questions is a small tax on the relationship, and the customer pays it.
It fits best for teams in the 100-to-2,000-customer range running on HubSpot as the CRM and Slack as the internal comms layer. Below ~100 customers the AE and CSM are often the same person or sit close enough that a documented SOP is overhead. Above ~2,000 you likely need a CS platform (Gainsight, Catalyst, Vitally, ChurnZero) driving the handoff via a CTA rather than a HubSpot deal property and a Slack post — at that scale the manual post is the thing that gets skipped. This SOP is the right tool in the band where the process matters but the tooling budget does not yet justify a dedicated CSP.
When NOT to use this
Do not adopt this if your AEs are not accountable for data quality at close. The SOP is only as good as the fields, and the fields only get filled if “closed-won requires the handoff block complete” is enforced — by a HubSpot required-field rule, a deal-stage gate, or a manager who bounces the commission until it is done. Without that enforcement you get half-filled fields that are worse than none, because the CSM trusts them and gets burned.
Do not use it as a substitute for the AE and CSM actually talking. The fields carry the structured facts; they do not carry the texture — the champion who is privately nervous about adoption, the procurement contact who fought the deal, the feature the AE half-promised in the last call. The 15-minute warm handoff call in the sequence below is where that context transfers. Skipping it and relying on fields alone produces technically-complete handoffs that still miss the thing that sinks the renewal.
Do not bolt this onto a renewal or expansion motion. This SOP is scoped to the new-logo handoff: AE to CSM, once, at close. Renewals and expansions have different owners and different signals, and forcing them through this template produces noise.
The handoff fields
These live as HubSpot deal or company properties so they travel with the record and are queryable later. The manifest in handoff-fields.csv provisions them. The required set, every one filled before closed-won:
- Executive sponsor (contact reference) — the person whose budget this is and who will take the renewal call. Not the day-to-day champion; the economic buyer.
- Day-to-day champion (contact reference) — who the CSM works with weekly. Often different from the sponsor.
- Why they bought (long text) — the actual business trigger in one or two sentences. “Renewal of legacy tool was 3x our price” is useful; “wanted better analytics” is not.
- Defined success / the metric (long text) — what the customer said winning looks like, ideally a number with a date. This becomes the success plan’s north star.
- Promised in the deal (long text) — anything the AE committed to that is not in the standard contract: a custom integration, a specific go-live date, a feature on the roadmap. This is the field that prevents the worst handoff failures.
- Contracted scope (structured) — seats, products/SKUs, ARR, contract start and renewal dates.
- Technical environment (long text) — the CRM, data warehouse, SSO provider, and any integration the customer expects on day one.
- Known risks (long text) — the procurement contact who pushed back, the competing internal tool, the skeptical end-user team. Surfaced now or discovered the hard way later.
Two optional fields earn their place when present: call recordings (link to the Gong/recording library for the key deal calls) and decision timeline (how long the eval ran and who else was in the room), which tells the CSM how much organizational weight the purchase carries.
The timing rule
The handoff is gated on deal stage, not on the AE’s calendar. The rule: the handoff block must be complete before the deal can move to closed-won, and the warm handoff call must happen within three business days of close. Tying it to the stage rather than to a reminder is the whole point — a reminder gets snoozed; a stage gate gets enforced by the pipeline. In HubSpot this is a required-property-on-stage rule plus a workflow that posts to Slack on stage change.
The kickoff sequence
- AE completes the handoff block before marking closed-won. The HubSpot stage gate refuses the move otherwise.
- HubSpot workflow posts to
#cs-handoffson stage change to closed-won, using the template inslack-handoff-template.md: company, ARR, sponsor, champion, why-they-bought, the metric, anything promised, and a link to the deal record. The post @-mentions the assigned CSM. - CSM acknowledges in-thread within one business day — a reaction is not acknowledgment; a CSM has to confirm they have read the promised-in-the-deal field specifically.
- AE + CSM run a 15-minute warm handoff call within three business days. Agenda: walk the known risks, confirm the promised items, transfer the relationship texture the fields cannot hold. This is logged as a HubSpot meeting on the record.
- CSM schedules the external kickoff with the customer, having already read the deal. The customer never re-explains why they bought.
What success looks like
Track three numbers. First, handoff completeness — the percentage of closed-won deals with every required field filled. The stage gate should drive this to near 100% within two weeks; if it sits lower, the gate is not actually enforced and you are running on the honor system. Second, time-to-kickoff — days from closed-won to the external kickoff call. Target a median under seven business days; a longer lag means the customer’s purchase momentum is decaying before onboarding starts. Third, the re-discovery rate — survey CSMs monthly: “in your last five kickoffs, how many times did you have to ask the customer something the AE should have logged?” Target zero. Anything above one per kickoff means the fields are present but not trusted, which usually traces to AEs filling them with filler to clear the gate.
Versus the alternatives
Versus a free-text Slack handoff. The status quo at most teams is the AE posting an unstructured message in a channel when they remember to. It is faster to write and worse at everything else: it is not queryable, it is not enforced, its quality swings with the AE’s mood, and it vanishes into channel scroll. The structured-field version costs the AE maybe three extra minutes per deal and makes the handoff auditable. Pick free-text only if your volume is so low (under ~5 handoffs a month) that the structure is not worth the setup.
Versus a CS platform CTA (Gainsight, Catalyst, Vitally, ChurnZero). A CSP can fire a handoff CTA automatically on closed-won, route it, and track completion natively — strictly better mechanics than HubSpot-plus-Slack. The trade-off is cost and setup: a CSP runs five figures annually and weeks to implement. If you already own one, drive the handoff through it and use this SOP’s field list and sequence as the content. If you do not, this SOP gets you 80% of the value at the cost of provisioning eight HubSpot properties and one workflow.
Versus doing nothing. Viable only if the AE and CSM are the same person or share a desk. The moment the two roles separate, the undocumented handoff becomes the single largest source of preventable early churn — the customer who churns in month four because the integration the AE promised was never on the roadmap.
Watch-outs
- Fields filled with filler to clear the gate. The moment closed-won is gated on field completeness, AEs have an incentive to type “n/a” or “see notes” to clear it. Guard: make the warm handoff call mandatory and have the CSM reject the handoff in-thread if the promised-in-the-deal or success-metric fields are empty or junk — the AE does not get the deal counted as cleanly handed off until the CSM accepts it.
- The promised-in-the-deal field left blank. This is the highest-cost omission: a verbal commitment the AE made and forgot, that the customer remembers and expects. Guard: make this field required even when empty by forcing an explicit “nothing promised beyond the contract” entry, so a blank is a deliberate statement rather than an oversight.
- Slack post fires but no one owns acknowledgment. A handoff posted into a channel that no CSM is assigned to is a handoff into the void. Guard: the HubSpot workflow @-mentions the specific assigned CSM by deal-owner-to-CSM mapping, and the SOP requires an in-thread acknowledgment within one business day, tracked by the CS lead.
- The SOP drifts as the CRM schema changes. A renamed HubSpot property or a new deal stage silently breaks the workflow that posts to Slack. Guard: review the field manifest in
handoff-fields.csvagainst live HubSpot properties once a quarter, and keep the Slack template’s field list in sync with the deal-property names.