Weekly investor update deck, refreshed from a KPI sheet

Every Friday afternoon, copy your investor template, fill it with this week's KPIs from Google Sheets, and post the new deck in Slack.

Deterministic Code
Google SheetsGoogle DriveGoogle SlidesSlackFinanceOperationsAI ReportsDaily DigestsContent Generation

Build me a deterministic code workflow that refreshes our weekly investor-update deck every Friday at 4pm local time so I can review it over the weekend and ship it Monday morning.

Trigger: cron, every Friday at 16:00 in my local time zone.

Step 1. Google Sheets Get Values from the 'Weekly KPIs' range on our metrics spreadsheet to pull this week's numbers: revenue, MRR, new logos, churn, runway months, and the headline narrative cell. Then do another Get Values on the prior-week range so we have last week's numbers for deltas. The spreadsheet ID and both A1 ranges should be configurable inputs.

Step 2. Google Drive Copy File to clone the master investor-update template (configurable Drive file ID) into our 'Investor Updates' Drive folder (configurable parent folder ID). Name the new file 'Investor Update, week ending {YYYY-MM-DD}' where the date is the upcoming Sunday.

Step 3. Google Slides ReplaceAllText on the new presentation to swap these tokens with the sheet values: {{week_ending}}, {{revenue}}, {{mrr}}, {{mrr_delta}}, {{new_logos}}, {{churn}}, {{runway_months}}, {{narrative}}. Compute {{mrr_delta}} as the signed percent change between this week's and last week's MRR and format it like '+4.2%' or '-1.8%'.

Step 4. Google Slides ReplaceAllShapesWithSheetsChart to embed the live trend charts from the same spreadsheet. The template has placeholder shapes containing chart tokens (for example {{chart_mrr}}, {{chart_revenue}}, {{chart_logos}}); for each one, embed the matching Sheets chart by ID so the deck stays linked to the source and refreshes on open.

Step 5. Slack Send a Message to our founders' private channel (configurable channel ID) with the new deck link and the headline metrics inline: week ending date, MRR with delta, new logos, runway months, and the narrative one-liner. Keep the message short and skimmable.

Every value that varies between teams (spreadsheet ID, the two A1 ranges, template file ID, parent folder ID, Slack channel ID, time zone) should be a top-level workflow input so I can reuse this without editing code. If a token has no matching value in the sheet, leave it blank rather than failing the whole run, and log which tokens were missing in the Slack message so I know what to fix.

Additional information

What does this prompt do?
  • Pulls this week's numbers and last week's comparison from a Google Sheets KPI tab every Friday afternoon.
  • Copies your master investor-update template in Google Drive and names the new file with the week-ending date.
  • Fills the slides with revenue, MRR, MRR change, new logos, churn, runway, and your headline narrative, and embeds the live trend charts from the same sheet.
  • Posts the new deck link in your founders' Slack channel with the headline numbers inline so weekend review is one click away.
What do I need to use this?
  • A Google account with edit access to the KPI spreadsheet, the master template deck, and the destination Drive folder.
  • A master Google Slides deck with placeholder tokens like {{mrr}}, {{new_logos}}, and {{narrative}}, plus shapes for charts like {{chart_mrr}}.
  • A Google Sheets tab with named ranges for this week's KPIs and the prior week's KPIs, plus the chart IDs you want embedded.
  • A Slack workspace and the channel ID where the founders want the new deck posted.
How can I customize it?
  • Change the schedule. Move the run from Friday at 4pm to any cadence, like Sunday evening or the first of the month.
  • Swap the metrics. Add or remove tokens like ARR, burn, cash balance, or pipeline coverage by editing the sheet and the matching placeholders in the template.
  • Pick a different audience. Point the Slack step at a board channel, a leadership DM, or send it by email instead.
  • Use a different template per investor. Branch on a sheet value to pick the right master deck for seed investors versus the board.

Frequently asked questions

Do the charts in the deck stay linked to the source spreadsheet?
Yes. The workflow embeds the charts as live Sheets charts, so anyone opening the deck can refresh them and pick up the latest numbers from the spreadsheet.
Will it overwrite my master template?
No. Each run copies the template into a new file named with the week-ending date, so the master stays untouched and you keep a history of every weekly deck.
What happens if a KPI cell is empty that week?
The matching placeholder is left blank instead of breaking the run, and the Slack message flags which fields were missing so you know what to fill in before sending.
Can I run this on a different day or time zone?
Yes. The schedule and time zone are inputs on the workflow, so you can move it to Sunday night, Monday morning, or any cadence your team prefers.
Does this work if our investor deck lives in PowerPoint instead of Google Slides?
This version is built for Google Slides because of the live chart embeds. If your team uses PowerPoint, ask the builder to swap the slide steps for a Microsoft 365 equivalent.

Stop rebuilding the investor deck from scratch every week.

Connect Google Sheets, Google Drive, Google Slides, and Slack once, and a fresh deck lands every Friday at 4pm with this week's numbers already filled in.