# Pitch deck studio: reps pick the slides before every meeting

> Let each rep open a deal, tick the slides that fit, and get a tailored Google Slides deck filed in Drive and logged on the CRM record.

- Workflow type: app
- Services: Google Slides, Google Drive, HubSpot
- Categories: Sales
- Published: 2026-08-24

## What it does

- Every rep signs in and sees only their own open deals, sorted by close date, with the account name, amount, stage and close date on each card.
- Pick one of your approved master templates and preview every slide as a thumbnail, then tick the ones this particular buyer should see and untick the rest.
- Hit Build my deck and a background assistant copies the template, drops the slides you unticked, swaps the placeholders for the real deal details, and puts the slides back in the right order.
- The finished deck link lands back on the HubSpot deal as a note and a deck link field, and every deal keeps a history of the decks that rep has built, with thumbnails, dates and links.

## What you'll need

- A HubSpot account where your deals live, with each rep set as the owner of their own deals
- A Google account with access to the Drive folder that holds your master deck templates
- At least one master template built in Google Slides, with placeholder text such as {{Company}} and {{Amount}} wherever deal details should appear
- A field on the HubSpot deal to hold the finished deck link, for example a Deck URL property

## Prompt

Build me an internal app my sales reps open before a customer meeting to assemble a tailored pitch deck in Google Slides for one specific HubSpot deal, instead of duplicating last quarter's file and hand editing it. This is rep driven and curation first: the rep picks the template and toggles individual slides before anything is generated. Nothing runs on a schedule or on a deal stage change.

Deal picker view. On open, resolve the signed in user to their HubSpot owner record using List Owners filtered by their email, then load that person's open deals with Search Deals, filtered to their owner id and to open pipeline stages, sorted by close date ascending. Render one card per deal showing the account name, amount, deal stage and close date. When a deal is selected, use Get Deal with associations plus Get Company and Get Contact to resolve the account name and the primary contact. Scope everything per user: a rep only ever sees deals they own.

Template and slide curation view. Once a deal is picked, list the master templates in a configured Drive template folder with Google Drive List Files, querying for presentations whose parent is that folder. When the rep picks a template, read its slides with Google Slides Get Slides and render them in order as a thumbnail strip using Get Page Thumbnail for each slide. Put a checkbox on every optional slide so the rep keeps the industry case study that fits, drops the two that do not, and decides whether to include the pricing tier slide and the security appendix. Slides marked required in app configuration render locked and checked. Show the expected placeholder tokens on screen next to the strip, {{Company}}, {{Contact}}, {{Amount}} and {{CloseDate}}, so whoever maintains the templates knows exactly what gets substituted.

Build my deck button, backed by an embedded background agent. Pressing it kicks off a background agent for that deal, that template and that slide selection. The agent finds or creates the deal's folder in Drive with List Files and Create Folder, copies the template into it with Copy File and names the copy after the account and the date, deletes every unchecked slide with Google Slides DeleteObject, fills the placeholders with ReplaceAllText using the real deal values, fixes the ordering afterwards with UpdateSlidesPosition, then writes the result back to the CRM: HubSpot Create Note on the deal with the deck link and the list of slides included, and HubSpot Update Deal to stamp the deck URL property.

Handle the atomicity of Google Slides edits carefully. A batch of slide edits is applied all or nothing, so one failed slide deletion rolls the whole batch back. Have the agent re-read the copied presentation and verify the slide ids before deleting, retry once with any stale ids removed, and if it still fails, leave the copy in place, mark the build failed with a readable reason, and surface that in the app rather than leaving a half built deck behind.

Build history. Each deal keeps a decks built history persisted in the app: deck name, link, a thumbnail of the title slide, which optional slides were included, who built it and the timestamp. Show it on the deal detail view, newest first, so a rep can reopen what they sent last time. History is scoped per user like the deal list.

Handle the empty and in progress states plainly: no open deals for this rep, no templates in the folder, a template with no slides, and a build still running with a progress indicator that resolves into the finished deck link.

## How to customize

- Change which deals show up: sort by amount instead of close date, or narrow the list to deals closing this quarter
- Change the placeholder tokens to match how your templates are written, and add your own such as {{Owner}} or {{RenewalDate}}
- Decide which slides are optional and which are always included, so the intro and pricing pages cannot be unticked by accident
- Choose where finished decks get saved in Drive, and whether reps can see each other's build history or only their own

## FAQ

### Can reps see each other's deals?

No. The app matches whoever is signed in to their owner record in HubSpot and only loads deals they own. Their deck history is scoped the same way, so each rep sees their own work and nobody else's.

### Will this overwrite my master template?

Never. The assistant always copies the template into the deal's folder first and edits the copy. Your original stays exactly as your team last approved it.

### How do the placeholders get filled in?

You write tokens like {{Company}}, {{Contact}}, {{Amount}} and {{CloseDate}} into the template wherever a real value belongs, and the assistant swaps them for the deal's actual details. The app lists the supported tokens on screen so whoever maintains the templates always knows what gets substituted.

### How is this different from generating a deck automatically when a deal changes stage?

This one waits for the rep. Nothing is generated until someone opens the app, picks a template and chooses the slides, so the rep sends a deck they actually curated rather than whatever a rule produced.

### What happens if a build fails halfway through?

Slide edits are applied in one go, so a failed step leaves the copy untouched rather than half built. The app marks that build as failed with a plain explanation and the rep can fix the selection and try again.

Use this prompt in General Input: https://www.generalinput.com/prompts/pitch-deck-studio-reps-pick-the-slides-before-every-meeting