Automate a sales-to-CS handoff when a HubSpot deal closes won using Zapier
Prerequisites
- Zapier account (Free plan works for the basic 2-step version; Professional for the full multi-step handoff)
- HubSpot account connected to Zapier via OAuth
- Slack workspace connected to Zapier
Why Zapier?
Zapier is the easiest option if you want a working handoff in under 15 minutes with zero code. The native HubSpot trigger filters for Closed Won deals directly in the trigger step — no extra filtering node needed. The Slack and HubSpot action steps handle formatting and task creation with drag-and-drop field mapping.
The trade-offs are cost and flexibility. The full multi-step version (trigger + owner lookup + Slack + task) requires the Professional plan ($29.99/mo). Zapier's native HubSpot actions don't support dynamic CS rep routing — you'd need a Code by Zapier step for that. Polling is also 1-15 minutes depending on plan.
How it works
- Updated Deal Stage trigger fires when a deal enters the Closed Won stage (filtered in the trigger setup)
- Get Owner action resolves the deal owner ID to a name and email
- Send Channel Message action posts the handoff to your CS Slack channel
- Create Task action creates an onboarding task in HubSpot associated with the deal
Step 1: Set up the HubSpot trigger
Create a new Zap. Choose HubSpot as the trigger:
- Trigger event: Updated Deal Stage
- Pipeline: Select your sales pipeline
- Stage: Select "Closed Won"
This fires only when a deal enters the Closed Won stage — no extra filtering needed.
Zapier's "Updated Deal Stage" trigger polls HubSpot every 1-2 minutes (Professional plan) or 15 minutes (Free plan). It returns the full deal record including all standard properties.
Step 2: Configure additional deal properties
In the trigger setup, under Additional Properties to Retrieve, add:
dealnameamountclosedatehubspot_owner_idcontract_length(if you use a custom property)description
This is the most common HubSpot-on-Zapier gotcha. If you don't explicitly add properties here, your trigger data will be mostly empty. Always check "Additional Properties to Retrieve" and test with a real deal.
Step 3: Look up the deal owner
Add a HubSpot action step:
- Action event: Get Owner
- Owner ID: Map the
hubspot_owner_idfrom the trigger
This resolves the owner ID to a name and email you can include in the Slack message.
Step 4: Send Slack notification to CS channel
Add a Slack action:
- Action event: Send Channel Message
- Channel:
#cs-handoffs - Message Text:
:tada: *New Closed-Won Deal — CS Handoff*
*Deal:* {{dealname}}
*Value:* ${{amount}}
*Sales Rep:* {{owner_first_name}} {{owner_last_name}}
*Close Date:* {{closedate}}
*Contract Length:* {{contract_length}}
*Primary Contact:* {{contact_name}} — {{contact_email}}
<https://app.hubspot.com/contacts/YOUR_PORTAL_ID/deal/{{hs_object_id}}|View Deal in HubSpot>For richer formatting, use Webhooks by Zapier to POST Block Kit JSON directly to the Slack API:
- Method: POST
- URL:
https://slack.com/api/chat.postMessage - Headers:
Authorization: Bearer xoxb-your-bot-token
Zapier's native Slack action supports basic mrkdwn but not full Block Kit JSON. For a structured handoff message with sections and buttons, use the Webhooks approach to call chat.postMessage directly.
Step 5: Create a HubSpot task for CS
Add a HubSpot action step:
- Action event: Create Task
- Task Subject:
Onboarding: {{dealname}} - Task Body:
New closed-won deal ready for CS onboarding. Value: ${{amount}}. Sales rep: {{owner_first_name}} {{owner_last_name}}. Contact: {{contact_email}} - Priority: High
- Status: Not Started
- Owner: Select or map to your CS rep
Zapier's HubSpot "Create Task" action automatically associates the task with the deal that triggered the Zap. You don't need to manually set up associations.
Step 6: Test and publish
- Click Test on each step
- Move a test deal to Closed Won in HubSpot and verify the Slack message and task appear
- Turn the Zap On
Troubleshooting
Common questions
Why are my deal properties empty in the trigger data?
This is the most common HubSpot-on-Zapier issue. You must explicitly add properties in the trigger's "Additional Properties to Retrieve" field. Go back to the trigger step and add each property name: dealname, amount, closedate, hubspot_owner_id, contract_length. Without this, the trigger returns mostly empty data.
Can I include contact information in the Slack message?
Not directly from the trigger — Zapier's HubSpot trigger returns the deal but not associated contacts. Add a separate "Find Contact" action step between the trigger and the Slack step, searching by company name or using the "Get Associations" action to find contacts linked to the deal.
How do I dynamically route to different CS reps?
Add a Code by Zapier step that maps deal properties (size, industry, region) to the appropriate CS rep owner ID. Define your routing rules as a JavaScript lookup object. This requires the Professional plan.
Cost and task usage
- Free plan: Works for a simple 2-step Zap (trigger + Slack). 100 tasks/month.
- Professional plan: $29.99/mo for the full multi-step version (trigger + owner lookup + Slack + HubSpot task = 4 steps). Each closed-won deal uses 4 tasks.
- If you close 10 deals/month, that's ~40 tasks — well within any plan.
Limitations
- Polling delay: 1-15 minutes depending on plan. The CS team won't be notified instantly.
- Single CS rep: Zapier's built-in HubSpot actions don't support dynamic owner assignment based on deal properties. For routing logic, you'd need a Code by Zapier step.
- No associated contacts: The trigger returns the deal but not its associated contacts. To include contact info, add a "Find Contact" step that searches by company or deal association.
Next steps
- Add contact lookup — add a HubSpot "Find Contact" step to pull the primary contact's name, email, and phone number
- Dynamic CS routing — add a Code by Zapier step that maps deal size or region to the appropriate CS rep owner ID
- Onboarding project — add an Asana or Monday.com step to create an onboarding project alongside the HubSpot task
Looking to scale your AI operations?
We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.