Auto-build QBR decks in Google Slides every quarter

By General Input

On the first Monday of every quarter, draft a Google Slides QBR deck for every Tier 1 customer and Slack each CSM links to their finished decks.

Integrations

  • Google Slides
  • Google Drive
  • Google Sheets
  • HubSpot
  • Slack

Type

Agentic Task

Categories

  • Sales
  • Operations

On a quarterly cron, first Monday of every quarter at 7am ET, I want an agent that drafts a Google Slides Quarterly Business Review (QBR) deck for every Tier 1 customer so each CSM walks into prep meetings with a 70 percent finished deck.

Step 1: In HubSpot, List Companies filtered to our QBR tier (the custom company property we use to mark Tier 1). For each matching company, run HubSpot Get Company to pull current ARR, renewal date, owner (CSM), industry, and any notes fields we have. Then HubSpot List Deals associated with that company to grab the open opportunities and their stages and amounts.

Step 2: Skip any company whose renewal date is more than 9 months from today. Those are too early to QBR.

Step 3: From our shared Customer Usage spreadsheet in Google Sheets, Get Values from the past-quarter tab. Match rows to each company by company ID (the key column) and pull logins, key feature adoption percentages, and support ticket count. If a company has no row, flag it but keep going.

Step 4: For each customer, Google Drive Copy File to clone our QBR master template into that customer's account folder in Drive. Name the copy "{Customer} QBR {Quarter} {Year}".

Step 5: In Google Slides ReplaceAllText on the new copy to swap template tokens with the data we collected: {{customer}}, {{arr}}, {{renewal_date}}, {{owner}}, {{open_opps}}, {{logins}}, {{feature_adoption}}, {{ticket_count}}, plus AI-drafted narrative for {{wins}}, {{risks}}, and {{next_quarter_goals}}. Generate the narrative from the structured HubSpot and usage data, kept to 3 to 5 bullets per section in plain talk-track language.

Step 6: Use Google Slides ReplaceAllShapesWithSheetsChart to swap the chart placeholders in the template with embedded, live-linked charts from the Customer Usage sheet (one for logins trend, one for feature adoption, one for support volume). Embedding live charts means the deck refreshes if the sheet updates before the meeting.

Step 7: For each CSM, group the decks they own and Slack Send a Message as a DM with a list of links to their decks and a one-line health summary per customer (green/yellow/red plus the headline reason). If a deck failed to generate or a customer was missing usage data, call that out in the DM so the CSM can patch it before their meeting.

Quality bar: never edit the master template, always copy first. Don't create executions for customers outside Tier 1 or outside the 9 month renewal window. If HubSpot, Drive, Sheets, or Slack errors on a single customer, log it and continue with the others so one bad row doesn't block the batch.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerTurn Mailjet email clicks into ranked HubSpot follow-upsStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account