Scaffold a SharePoint client workspace when HubSpot deals close won

The moment a HubSpot deal flips to Closed Won, build the new client's SharePoint folder set, log it in your Clients list, and announce the win in Slack.

Agentic Task
HubSpotMicrosoft SharePointSlack BotSalesOperationsOnboarding AutomationNotifications & AlertsData Sync

Build me an agent workflow that scaffolds a new client workspace in Microsoft SharePoint and announces the win in Slack the moment a HubSpot deal moves to Closed Won.

Trigger: a HubSpot webhook on deal stage change, filtered to the Closed Won stage. The workflow should ignore any other stage transitions.

When it fires, the agent should:

1. Use HubSpot Get Deal to load the full deal record (name, amount, close date, owner, pipeline, stage, associated company and primary contact IDs). Use Get Company to load the company name, domain, and industry. Use Get Contact on the primary contact to load their name, email, and title. Use Get Owner to resolve the deal owner's name and email.

2. Pick a folder name for the client. Default rule: slugify the company name (lowercase, hyphenated, alphanumerics only). Check SharePoint first and if a folder with that name already exists under the configured parent path, append a short disambiguator (for example the HubSpot deal ID, or a numeric suffix) so we never collide.

3. In Microsoft SharePoint, use Create Folder to create the new client folder under a configured parent path on a configured site and drive. Then create a standard set of subfolders inside it: Contracts, SOWs, Invoices, Onboarding, and Communications. The subfolder set should be configurable so the team can change it later without editing the workflow.

4. Use Create List Item to add a row to a configured Clients list in the same SharePoint site. Columns to populate: Client Name, HubSpot Deal ID, Deal Value, Owner, Primary Contact, Contract Start Date, Contract End Date, and Folder URL (the web URL of the new SharePoint folder).

5. Use Slack Bot Send a Message to post a win announcement in a configured sales-ops channel. The agent should write the copy itself from the deal context. Include: company name, deal value, deal owner (mentioned by Slack handle if we can resolve them by email via the bot, otherwise by name), primary contact, contract dates if present, and a link to the new SharePoint folder. Keep it short and celebratory.

Configuration the agent should expose at setup time: the HubSpot pipeline and the exact Closed Won stage ID to listen for, the SharePoint site (by hostname and path), the parent folder path inside that site's drive, the subfolder list, the Clients list ID, and the Slack channel ID for announcements.

Quality bar: the folder, the list row, and the Slack message should all reference the same HubSpot deal ID so we can trace everything back. If any step fails (for example the SharePoint folder already exists for a different deal), the agent should fall back gracefully, log what happened, and still post a Slack message saying the win landed but the workspace needs manual review.

Additional information

What does this prompt do?
  • Listens for HubSpot deals moving into your Closed Won stage and pulls the customer name, deal value, owner, and contract dates.
  • Creates a tidy client folder in SharePoint under your chosen parent path, with the standard subfolders your team uses for every account.
  • Logs the new client in a SharePoint Clients list with the HubSpot deal ID, the owner, and a link straight to the new folder.
  • Posts a clean win announcement in your sales-ops Slack channel that tags the deal owner and links to the SharePoint workspace.
What do I need to use this?
  • A HubSpot account where you can configure a webhook on deal stage changes, plus permission to read deals, companies, and contacts.
  • A Microsoft 365 account with permission to create folders and list items in the SharePoint site you want to use.
  • A Slack workspace with the channel you want win announcements posted to.
How can I customize it?
  • Change the subfolders that get created for every client (the default set is Contracts, SOWs, Invoices, Onboarding, and Communications).
  • Swap the SharePoint site, the parent folder path, and the columns on your Clients list to match how your team already files accounts.
  • Pick a different Slack channel for the announcement, or change the tone, fields, and emoji of the win message.
  • Adjust the folder naming convention (for example to include the deal close date or the region) so it lines up with your existing files.

Frequently asked questions

What exactly happens the moment a deal hits Closed Won?
HubSpot sends a webhook, Geni pulls the full deal, company, and primary contact, creates the client folder and its subfolders in SharePoint, adds a row to your Clients list with a link to the folder, and posts a summary in your sales-ops Slack channel. The whole thing runs in seconds.
Will this work if my team uses HubSpot Free or Starter?
Yes. Deal stage webhooks are available across HubSpot tiers, including Free, as long as you can connect HubSpot once during setup.
How does it avoid creating duplicate folders if a deal is reopened and closed again?
The agent slugifies the company name, checks SharePoint for an existing folder, and reuses or appends a short suffix if there is a collision, so you do not end up with duplicate workspaces.
Can I change which SharePoint site or parent folder it uses?
Yes. The site, parent folder path, subfolder list, and Clients list are all configured when you set the workflow up, and you can change them at any time.
Does it announce every deal, or only ones over a certain size?
By default it announces every Closed Won deal. You can ask the agent to skip announcements under a deal value, only ping for specific pipelines, or route different segments to different Slack channels.

Stop hand-building a SharePoint folder set for every new client.

Connect HubSpot, SharePoint, and Slack once, and Geni spins up the whole client workspace the moment a deal closes won.