Auto-build a pitch deck when a HubSpot deal hits Discovery
When a HubSpot deal moves into Discovery, clone your master template into Google Slides, personalize it for the prospect, attach the link to the deal, and ping the AE in Slack.
Build me an agent workflow that auto-generates a personalized first-call pitch deck in Google Slides every time a HubSpot deal moves into our Discovery stage, and posts the deck back on the deal and into Slack.
Trigger: a HubSpot webhook for a deal stage-change event. The webhook fires when a deal's stage property changes. The agent should only continue if the new stage matches our configured target stage (default: Discovery). I want the target stage to be an easy-to-edit setting at the top of the workflow.
Steps the agent should take, in order:
1. Call HubSpot Get Deal on the deal ID from the webhook payload. Pull at least: dealname, amount, dealstage, pipeline, closedate, plus any associated company and primary contact IDs.
2. Safety check: skip the run if the deal amount is below a configurable dollar threshold (default $5,000). Also skip if the deal already has a note containing the phrase 'Pitch deck' or a Google Slides link, so we never duplicate work when a deal bounces between stages. Post a short 'skipped' notice in Slack and stop.
3. Call HubSpot Get Company on the associated company ID. Pull name, domain, industry, description, and any custom 'use_case' or 'logo_url' properties we have.
4. Call HubSpot Get Contact on the primary contact ID. Pull firstname, lastname, jobtitle, and email.
5. Use Google Drive Copy File to clone our master pitch template deck (its file ID should be a configurable setting). Name the copy something like 'Pitch Deck - {company name} - {today}' and put it in a configurable destination folder.
6. Use Google Slides ReplaceAllText on the new deck to swap the following tokens with the values pulled from HubSpot: {{company}}, {{contact_name}}, {{contact_title}}, {{deal_amount}}, {{industry}}, {{use_case}}, {{close_date}}, {{ae_name}}. If a value is missing, leave the token blank rather than failing the run.
7. Use Google Slides ReplaceAllShapesWithImage to drop the prospect company's logo into any shape on the template whose alt text or contained text is {{logo}}. Source the logo URL from the company's logo_url property if set, otherwise from the company domain via a logo lookup (e.g. Clearbit-style logo URL pattern).
8. Use HubSpot Create Note to attach a note to the deal containing the deck link and a short label like 'Auto-generated first-call pitch deck'. Make sure the note associates to the deal so it shows up on the deal timeline.
9. Use Slack Send a Message to post into the AE's channel (channel ID should be configurable, with a fallback to a shared sales channel). The message should include: the deal name, deal amount, prospect company, primary contact name and title, the deck link, and a one-line 'Why now' summary the agent writes from the company description and use case.
Settings I want exposed at the top of the workflow so I can tweak without editing logic: target stage name(s), minimum deal amount, master template file ID, destination Drive folder ID, default Slack channel ID, and the placeholder token list.
Error handling: if the deck copy or any Slides edit fails, post a Slack message in the same channel saying which deal failed and why, and do not create a HubSpot note. Surface any HubSpot 429 or Google 429 rate-limit responses with a short backoff retry.
Additional information
What does this prompt do?
- Watches your HubSpot pipeline and fires the moment a deal advances into your Discovery stage (or any stage you pick).
- Pulls the deal, company, and primary contact details, then clones your master pitch template in Google Drive into a fresh Google Slides deck for that prospect.
- Swaps placeholders like {{company}}, {{contact_name}}, {{deal_amount}}, {{industry}}, and {{use_case}} with the real prospect data, and drops the company logo into branded shapes.
- Attaches the new deck link as a note on the HubSpot deal and posts a one-line summary plus the link to the account executive's Slack channel.
- Skips small deals under a dollar threshold you choose, and skips deals that already have a deck note so you never duplicate work.
What do I need to use this?
- A HubSpot account where you can connect to your pipeline and create notes on deals
- A Google account with Drive and Slides access, and one master pitch template deck saved in Drive
- A Slack workspace with a channel for the account executive or sales team
- Tokens in your template like {{company}}, {{contact_name}}, {{deal_amount}}, {{industry}}, and {{use_case}}, plus shape placeholders for the logo
How can I customize it?
- Change the trigger stage from Discovery to any stage in your pipeline, like Demo Booked or Proposal Sent.
- Adjust the minimum deal size so only deals above a certain dollar amount get a deck.
- Pick which placeholder tokens to swap and add new ones for things like seat count, target close date, or competitor name.
- Route the Slack ping to a shared sales channel, a deal-specific channel, or directly to the account executive.
Frequently asked questions
Do I need a paid HubSpot plan for this to work?
Can I use my own pitch template instead of a generic one?
What if a deal does not have a primary contact or company attached?
Will it create a duplicate deck if the deal moves back and forth between stages?
Can I change which stage triggers the deck?
Stop building first-call decks by hand.
Connect HubSpot, Google Slides, and Slack once, and every new Discovery deal gets a personalized deck before your AE finishes their coffee.