Skip to content

Sales-to-CS handoff task on deal closed won

One of 565 written HubSpot workflow specs, by a collective of independent HubSpot consultants.

Free
Professional

Seat pricing: Professional edition. To build it, a GTM Seat or an Ops Seat (an Ops Seat cannot create marketing emails or sequences). Per-hub plans: Sales Hub Professional.

Per-hub plans: also Marketing Hub ProfessionalUpdated for HubSpot seat pricing
OutcomeThe moment a deal is marked Closed Won, the customer success owner gets a task and a notification, so no new customer sits in a gap between sales and CS.
Workflow mapcustomer-onboarding-001
Deal stage = Closed Won leads to Set Onboarding Start Date. Set Onboarding Start Date leads to Onboarding Owner known?. Onboarding Owner known? leads to Yes: Create handoff task; No: Rotate record to owner. Create handoff task leads to Send internal notification email. Rotate record to owner leads to Create handoff task. Send internal notification email leads to Add to Handoff Queue list. Yes No Deal stage = Closed Won Set Onboarding Start Date Onboarding Owner known? Rotate record to owner Create handoff task Send internal notification email Add to Handoff Queue list
Deal stage = Closed Won leads to Set Onboarding Start Date. Set Onboarding Start Date leads to Onboarding Owner known?. Onboarding Owner known? leads to Yes: Create handoff task; No: Rotate record to owner. Create handoff task leads to Send internal notification email. Rotate record to owner leads to Create handoff task. Send internal notification email leads to Add to Handoff Queue list. Yes No Deal stage = Closed Won Set Onboarding Start Date Onboarding Owner known? Rotate record to owner Create handoff task Send internal notification email Add to Handoff Queue list

When to use it, when not to

Use it

  • Use it when sales and customer success are different people or teams and a clear handoff moment is missing today.
  • Use it when the deal pipeline has one Closed Won stage that reliably means a signed, active contract.

Skip it

Prerequisites

Needs Sales Hub Professional and Marketing Hub Professional.

On per-hub plans, one of its steps belongs to another subscription: add to static list needs Marketing Hub Professional. Both are required to build it as written. On seat pricing the edition covers both.

  • Property: Onboarding Owner (internal name onboarding_owner), object deal, field type HubSpot user. Why: stores who on CS is responsible, independent from the deal owner (sales rep) field.
  • Property: CS Handoff Notes (internal name cs_handoff_notes), object deal, field type multi-line text. Why: gives the rep a place to leave context (special terms, technical requirements, promised dates) that the notification pulls in.
  • Property: Onboarding Start Date (internal name onboarding_start_date), object deal, field type date. Why: reporting anchor used by several other onboarding workflows.
  • A Customer Success team configured under Settings > Users & Teams, or a fixed static list of CS reps, if you plan to use Rotate record to owner rather than a manually set owner. Why: the rotate action needs an explicit pool to draw from.
  • A static list "New Customers - Handoff Queue" for reporting.

Enrollment

Trigger typefilter-based (deal property change).
CriteriaDeal stage is any of Closed Won.
Re-enrollmentyes, on Deal stage becoming Closed Won again (covers a deal that reopens and re-closes). Off for the same closed-won value without a reopen in between, HubSpot workflows only re-enroll on a genuine value change by default HubSpot re-enrolls a record each time it goes from not matching to matching the re-enrollment trigger, so a reopen followed by a new Closed Won qualifies and no separate reopen event is needed (https://knowledge.hubspot.com/workflows/add-re-enrollment-triggers-to-a-workflow).
Suppression / exclusionsskip deals where Deal Type is Renewal or Amount is 0. Renewal-driven handoffs belong in the renewal-expansion category, not here.

Steps

  1. Trigger: Deal stage is any of Closed Won.
  2. Set property value: Onboarding Start Date = current date.
  3. If/then branch: Onboarding Owner is known
    • Yes: continue to step 4.
    • No: Rotate record to owner (pool = Customer Success team) to set Onboarding Owner.
  4. Create task: type "To-do", title "Onboarding handoff review - {{deal.dealname}}", assigned to Onboarding Owner, due in 1 business day, notes include CS Handoff Notes.
  5. Send internal notification email: to Onboarding Owner, subject "New customer to onboard: {{deal.dealname}}", body includes CS Handoff Notes and a link to the deal record.
  6. Add to static list: "New Customers - Handoff Queue".

Known pitfalls

  • Re-enrollment on a deal that bounces between Closed Won and an earlier stage repeatedly can create duplicate handoff tasks. If that pattern happens in your pipeline, add a suppression check on an "Already handed off" boolean property instead of relying on re-enrollment alone.
  • Rotate record to owner requires the team to be configured in Settings first and distributes based on the pool's active members at run time Distribution is by per-action assignment count: every owner starts at zero, ties are broken randomly, then that order is kept, and the counts reset whenever owners are added to or removed from the action (https://knowledge.hubspot.com/workflows/assign-and-rotate-record-owners-using-workflows).
  • Internal notification emails only reach HubSpot users with a seat. They will not reach an external onboarding partner's inbox, use a regular workflow "Send email" to an associated contact for that case instead.
  • The static list used for reporting must match the workflow's enrollment criteria exactly, or the count in reporting will drift from actual handoffs.
  • If CS Handoff Notes is left blank by the rep, the notification email will look empty in that section. Consider making the field required at the Closed Won stage via a required-property gate on the pipeline stage (Sales Hub Professional stage requirements).

Test plan

  1. In a test portal, create a test deal in the relevant pipeline and move it to Closed Won.
  2. Open Automation > Workflows > this workflow > History, confirm the test deal enrolled within a minute.
  3. Check the deal record's Tasks panel for the handoff task, due the next business day.
  4. Confirm the internal notification email arrived in the test CS owner's inbox with the handoff notes populated.
  5. Confirm the deal appears in the "New Customers - Handoff Queue" static list.

The UAT script of this spec holds 4 cases: a negative case, one case per branch, the expected result of each and a sign-off sheet. It comes as Markdown and as a CSV for your spreadsheet.

Variants

  • Create a ticket instead of a task for a structured onboarding project, see customer-onboarding-005.
  • Branch by deal amount to route large deals to a dedicated onboarding specialist, see customer-onboarding-039 (Enterprise, hierarchical teams).
  • Replace the internal notification email with a Slack message via the native Slack integration or a webhook (Data Hub Professional).

Build spec

Build specYAML, swipe
trigger:
  type: filter-based
  property: dealstage
  criteria:
    - dealstage: is_any_of [closedwon]
    - deal_type: not_equal renewal
    - amount: greater_than 0
  reenrollment: true
  reenrollment_property: dealstage
build_actions:
  - type: set_property_value
    object: deal
    property: onboarding_start_date
    value: current_date
  - type: if_then_branch
    condition: onboarding_owner is_known
    yes:
      - goto: create_task
    no:
      - type: rotate_record_to_owner
        pool: "Customer Success team"
        sets_property: onboarding_owner
  - id: create_task
    type: create_task
    task_type: to_do
    title: "Onboarding handoff review - {{deal.dealname}}"
    assigned_to: onboarding_owner
    due: +1_business_day
    notes_from_property: cs_handoff_notes
  - type: send_internal_notification_email
    to: onboarding_owner
    subject: "New customer to onboard: {{deal.dealname}}"
    body_includes: [cs_handoff_notes, deal_record_link]
  - type: add_to_static_list
    list: "New Customers - Handoff Queue"

Files and install

FileWhat it holds
PDF and MarkdownThe spec as you read it here, with the YAML build spec at the end.
Properties JSONCreates the fields in one API call.
Workflow JSONDocuments the build: the workflow in Automation API v4 format, switched off.
UAT scriptThe test cases, the expected results and a sign-off sheet, as Markdown and CSV.

Take the PDF and build it by hand. One-click install comes with a category pack or the full library.

Get the 12 free specs as a pack

Nothing deleted, enabled or enrolled.

customer-onboarding-001Spec version 2026-09

Read 12 complete specs before you pay.

One per category, same format as the paid ones. Email only, no card.

We email the link, then a short note when specs change. Nothing else.

All 12 free specs by email, no card.