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
PromptCreate

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.

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.

FAQs

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.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App

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.