HubSpot closed-won deals to Smartsheet kickoff tracking

By General Input

When a deal is marked closed won, we set up the Smartsheet row, book the kickoff meeting, and tell the delivery team in Slack.

Integrations

  • HubSpot
  • Smartsheet
  • Google Calendar
  • Slack

Type

Deterministic Code

Categories

  • Sales
  • Operations

When a deal in HubSpot moves into the Closed Won stage, stand up the delivery tracking for it automatically so nobody has to retype the deal into Smartsheet. Build this as a deterministic code workflow. Every step is a fixed field mapping with no judgement involved.

Trigger it from a HubSpot webhook that fires on deal property change, watching the deal stage. Treat the deal as won only when the new stage is the Closed Won stage of my sales pipeline, and ignore every other stage change. Keep the pipeline ID and the winning stage ID in config at the top of the workflow so I can change which pipeline and which stage counts as won without touching the rest of the code.

Use HubSpot Get Deal with the deal ID from the webhook payload to pull dealname, amount, closedate, hubspot_owner_id, pipeline and dealstage, and request the associated companies and contacts. Associations come back as IDs, so resolve them: HubSpot Get Company for the associated company to get its name, HubSpot Get Contact for the first associated contact to get firstname, lastname and email, and HubSpot Get Owner for hubspot_owner_id to get the deal owner's name and email.

Before writing anything, guard against duplicates, because HubSpot can deliver the same stage change more than once. Read the intake sheet and skip the entire run if a row already carries this HubSpot deal ID.

Create the kickoff row with Smartsheet Add Rows in my project intake sheet, appended to the bottom. Call Smartsheet List Columns first and map column titles to column IDs rather than hardcoding IDs. Map the deal name into the project name column, amount into the contract value column, close date into the close date column, the owner name into the delivery owner column, the company name into the account column, the contact name and email into the client contact column, and the HubSpot deal ID into a reference column so the duplicate check above has something to match on. If the deal has no associated company or contact, leave those cells blank instead of failing the run.

Then use Google Calendar Create Event to put a kickoff meeting on the delivery team calendar. The start date is five business days after the deal close date, counting weekdays only and skipping Saturday and Sunday. Make it a one hour meeting at 10am in the team's timezone, title it Kickoff followed by the deal name, invite the deal owner and the client contact as attendees, and put the company name, the contract value and a link to the Smartsheet row in the description. If the contact has no email address, create the event with the deal owner as the only attendee.

Finally use Slack Send a Message to announce the new project in my delivery channel. Include the deal name, the company, the contract value formatted as currency, the kickoff meeting date and a link to the new Smartsheet row, which Add Rows returns as the row permalink. If the row or the calendar event could not be created, say so in the message rather than failing silently.

Keep the intake sheet ID, the delivery calendar ID, the Slack channel, the kickoff offset of five business days and the column title mapping in that same config block at the top, so all of the tuning happens in one place.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredTurn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInFront desk appointment confirmation board for the next 3 daysAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversation