Turn every Granola meeting into a Gamma recap deck in Slack

When Granola finishes a meeting note, Geni builds a polished Gamma recap deck and posts it to the right Slack channel with owners tagged.

Agentic Task
GranolaGammaSlack BotOperationsMarketingMeeting WorkflowsContent GenerationNotifications & Alerts

Build me an agent workflow that runs every time a new meeting note is created in Granola. Use the Granola poll trigger with the new_note event.

When it fires, call Granola's Get Note operation for the note id and include the transcript so the agent has the full summary, attendees, calendar event context, and what was actually said.

Before doing anything else, apply judgement on whether this meeting deserves a deck. Skip it if any of the following are true: the meeting ran shorter than five minutes, the calendar event looks like a recurring 1:1 (same two attendees on a regular cadence, title contains "1:1" or "sync" with two people), or the note is essentially empty. If skipped, end the run cleanly without posting anything.

Otherwise, write a structured outline of the meeting with these sections, in this order: TL;DR (two or three sentences), Key Decisions, Action Items With Owners (spell out the owner's name next to each item), Notable Quotes (one or two short pulls from the transcript that capture the energy of the room), and Open Questions. Keep it tight and skimmable. This outline is the input to Gamma, so write it like slide source material rather than a memo.

Hand that outline to Gamma's Generate a Gamma operation with format set to "presentation". Wait for the generation to finish (it polls under the hood) and grab the resulting deck URL. If I have a Gamma theme I want to use, let me pick it; otherwise use the default.

Once the deck is ready, post it to the right Slack channel using the Slack Bot integration's Send a Message operation. Pick the channel based on the meeting title and attendees: a deal review or sales call goes to #sales, a design review goes to #design, engineering planning goes to #eng, a customer interview goes to #research. If nothing matches, fall back to a default channel I'll configure. You can use Slack Bot's List Channels operation to discover the available channels in my workspace.

The Slack message should be short and useful: name the meeting, drop the Gamma deck link, and tag the people who own action items (look them up in Slack by email when possible so the @-mention actually pings them). Keep the tone calm and professional, not chirpy or salesy.

Ask me before you finish for: the default Slack channel for unmatched meetings, the channel routing rules I want to start with, and whether to point at a private review channel for the first week before going live in team channels.

Additional information

What does this prompt do?
  • Watches Granola for new meeting notes and pulls the full summary, attendees, transcript, and calendar context
  • Writes a clean outline (TL;DR, decisions, action items with owners, key quotes, open questions) and hands it to Gamma to build a presentation
  • Posts the finished deck link to the right Slack channel with a short blurb that tags the people who own follow-ups
  • Skips quick syncs and recurring 1:1s so your team only sees decks for meetings that actually matter
What do I need to use this?
  • A Granola account on a Business or Enterprise plan with a personal API key
  • A Gamma account on a Pro plan or higher (the API requires it)
  • A Slack workspace and the Slack bot connected to the channels you want recaps to land in
How can I customize it?
  • Change the routing rules so deal reviews go to #sales, design reviews to #design, engineering planning to #eng, and so on
  • Tweak the deck outline: add a section like "customer quotes", drop one you do not need, or reorder them
  • Adjust the skip rules: minimum meeting length, recurring 1:1s, internal-only meetings, or specific meeting titles to ignore
  • Pin a Gamma theme or template so every recap deck matches your brand

Frequently asked questions

Will this build a deck for every single meeting Granola records?
No. The agent skips recurring 1:1s and meetings that ran for only a few minutes by default. You can change those rules, or add your own (for example, only meetings with external attendees) when you set the workflow up.
How does it pick which Slack channel to post the deck in?
It reads the meeting title and attendees and routes to a channel that makes sense, like #sales for a deal review or #design for a design review. You give Geni the list of channels and the rules, and it picks the best fit. If nothing matches, it falls back to a default channel you choose.
Can I review the deck before it goes out to the team?
Yes. Point the workflow at a private review channel or your own DM first, glance at the result, then flip the destination to a public channel once you trust the output.
Does the deck use my brand or template?
Gamma lets you pick a theme or start from one of your existing templates. Tell Geni which theme to use and every recap deck will follow it.
What happens if Granola updates the note later?
The workflow runs once per new note, so an updated note will not retrigger a new deck. If you want re-runs on edits, ask Geni to switch the trigger to also fire on updates.

Stop hand-rolling recap decks after every meeting.

Connect Granola, Gamma, and Slack once, and Geni turns every meeting into a polished recap deck your team will actually open.