Monthly customer research insights deck in Google Slides

On the first business day of each month, turn the last 30 days of customer interviews from Granola into a themed Google Slides insights deck and share it in Slack.

Agentic Task
GranolaGoogle SlidesSlack BotProductMarketingAI ReportsResearch & MonitoringFeedback Triage
PromptCreate

Build me an agent workflow that runs on a cron, on the first business day of every month at 9am in my local timezone, and produces a synthesized customer research insights deck in Google Slides from my Granola interview notes over the previous 30 days.

Step 1: Pull the candidate meetings. Call Granola List Notes with a date range covering the last 30 days. Page through results until done. Filter the list down to customer or user research interviews only. The agent should accept a configurable filter, defaulting to either a title prefix match (for example titles that start with "User Interview", "Customer Call", "Research Call", or "Discovery") OR an external attendee domain match against a list of customer domains I provide. If neither config is set, ask me once during setup.

Step 2: Guardrail. If fewer than three qualifying interviews are found, skip the deck entirely and post a short note in my Slack research channel via Slack Bot Send a Message: something like "Only N customer interviews in the last 30 days, skipping this month's insights deck." Then end the run.

Step 3: For each qualifying meeting, call Granola Get Note with include=transcript to pull the summary, attendees, and full transcript.

Step 4: Cluster the findings across all interviews into 4 to 6 recurring themes. Good default buckets: top feature requests, common objections or pushback, surprising or quotable customer moments, and churn or risk signals. For each theme, capture: a short theme name, the number of meetings it showed up in, three bullet takeaways in plain language, and one verbatim pull quote with the customer's first name or company (whichever I have).

Step 5: Build the deck in Google Slides. Use Create a Presentation to spin up a new deck titled "Customer Insights, [Month Year]" (for example "Customer Insights, June 2026"). Then use batchUpdate with CreateSlide and InsertText to add: (a) a title slide with the month, the date range, and the number of interviews synthesized, (b) one slide per theme with the theme name as the title, the meeting count as a subtitle (e.g. "Heard in 7 of 12 interviews"), the three bullet takeaways as a bulleted list, and the pull quote in a styled text box below, and (c) a final "Top 3 actions for the product team" slide with three concrete, opinionated recommendations the agent infers from the themes.

Step 6: Post the deck link to my Slack research channel using Slack Bot Send a Message. The message should be a two-sentence TL;DR that names the biggest theme and the top recommended action, followed by the Google Slides link. Keep it tight, no walls of text.

Things to ask me once during setup and remember: my Slack research channel name, my preferred filter (title prefix vs. customer email domains), my timezone, and whether I want pull quotes anonymized or attributed. Default the cron to first business day of month at 9am, but let me change it.

What does this prompt do?

  • Pulls every customer or user interview you ran in Granola over the previous 30 days.
  • Reads each meeting summary and transcript and clusters the findings into 4 to 6 recurring themes, like top feature requests, common objections, surprising quotes, and churn signals.
  • Builds a fresh Google Slides deck titled Customer Insights, [Month Year], with a title slide, one slide per theme (count, three bullet takeaways, a pull quote), and a final Top 3 actions for the product team slide.
  • Posts the deck link in your research Slack channel with a short two-sentence TL;DR so the team gets the highlights without opening the file.

What do I need to use this?

  • A Granola account on a Business or Enterprise plan (personal API keys are required to read your notes).
  • A Google account that can create new presentations in Google Slides.
  • A Slack workspace and the name of the channel where you want the monthly deck posted.
  • A naming or attendee convention so the agent can tell research calls apart from other meetings, like a title prefix such as User Interview or a list of customer email domains.

How can I customize it?

  • Change the cadence. Run it weekly, biweekly, or quarterly instead of monthly.
  • Change how research meetings are identified. Swap the title prefix, point at a Granola folder, or expand the list of customer email domains.
  • Change the themes. Ask for different buckets like pricing pushback, onboarding friction, or competitive mentions, or change the count from 4 to 6.
  • Change the destination. Post to a different Slack channel, DM a research lead, or skip Slack entirely.
  • Change the minimum bar. Adjust how many qualifying interviews are required before the deck is built (the default is three).

FAQs

What happens in a slow month with very few interviews?
If fewer than three qualifying customer interviews are found in the last 30 days, the agent skips building the deck and posts a short note in Slack so the team knows the run happened and why it was skipped.
How does the agent know which meetings are customer interviews?
You tell it once. Most teams use a title prefix like User Interview or Customer Call, or a list of external customer email domains. The agent only pulls Granola notes that match.
Will it leak confidential quotes or names?
Pull quotes are taken verbatim from your own transcripts and the deck is created in your Google account. You control who the deck is shared with and which Slack channel it lands in. You can also ask the agent to anonymize quotes.
Can I use a branded template instead of a blank deck?
Yes. Point the agent at an existing Google Slides template and it will copy that file and fill it in instead of creating a blank deck.
Does this replace my qualitative research tool?
No. Think of it as a recurring synthesis layer on top of Granola. The transcripts and notes still live in Granola, but every month you get a shareable, themed readout for the product team.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Replay failed SQS messages when a bug fix is merged

When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.

Amazon SQS
GitHub
Slack Bot
Agentic Task

Stop letting customer interviews pile up unread.

Connect Granola, Google Slides, and Slack once, and every month Geni hands the product team a themed insights deck with quotes and counts already in it.