Build a customer interview research repository in Notion from Granola notes

When a Granola interview note lands, an agent files a structured record in your Notion research database and posts a highlights digest to Slack.

Agentic Task
GranolaNotionSlack BotProductOperationsResearch & MonitoringMeeting WorkflowsFeedback Triage
PromptCreate

Build me an agent workflow that turns every customer interview I take in Granola into a structured record in our Notion research database, and posts a short highlights digest in our research Slack channel so the team sees it.

Trigger: poll Granola for new notes (event type: new_note), scoped to a specific Granola folder I will configure (our Customer Interviews folder). I will provide the folder name or ID at setup. Skip any note whose meeting title does not look like a customer interview, using simple heuristics like the presence of an external company name, or a title pattern such as 'Interview', 'User Research', 'Discovery', or 'Customer Call'. When in doubt, skip rather than file a noisy record.

For each interview note that passes the filter, the agent should:

1. Call Granola Get Note for the triggering note ID with include=transcript so we have both the summary_markdown and the full transcript to work with.

2. From the summary and transcript, extract the following structured fields: interviewee name, interviewee role/title, company, interview date, key pain points (as a list), themes (as a list of tags), top 1 to 3 surprising or quotable lines (verbatim, with attribution), and any explicitly requested features or product asks. If a field is genuinely missing from the note, leave it blank rather than hallucinating.

3. Call Notion Create a Page with the parent set to our research database (I will paste the database/data source ID at setup). Map the extracted fields onto the database properties: Interviewee (title), Company, Role, Interview Date (date), Themes (multi-select), Pain Points (multi-select or rich text), Feature Requests (rich text), and a Granola Link property pointing back to the original note URL. Put the full Granola summary_markdown into the page body, followed by a Surprising Quotes section with the verbatim quotes, and an Action Items section if Granola surfaced any. If a property does not exist on the database, skip it gracefully.

4. Call Slack Bot Send a Message to post a short digest to the research channel I designate at setup. The message should include: interviewee name and company, 2 to 4 bullet highlights (top pain points and themes), one standout quote, and a link to the new Notion page. Keep it under ~10 lines so it reads cleanly in channel.

Other behavior I want: be idempotent (do not double-create the Notion page if the same note fires twice; check by Granola note ID stored in a property like 'Granola Note ID' on the database before creating). If Notion create fails, do not post to Slack. If Slack post fails after a successful Notion create, log the error but do not retry the Notion create. Use the Granola summary_markdown verbatim for the body, do not rewrite it.

At setup time, ask me for: the Granola folder to watch, the Notion research database/data source ID, the Slack channel ID for the digest, and any custom title keywords I want to treat as 'this is an interview'.

Additional information

What does this prompt do?
  • Watches a designated customer interview folder in Granola and skips notes that are not real interviews.
  • Pulls the full summary and transcript and extracts interviewee, company, role, pain points, themes, surprising quotes, and feature requests.
  • Creates a new entry in your Notion research database with those fields as page properties and the full recap in the page body.
  • Posts a short highlights digest to your research Slack channel with a link back to the Notion page so the team can react in one place.
What do I need to use this?
  • A Granola account on a Business or Enterprise plan with personal API keys enabled, plus a folder you use for customer interviews.
  • A Notion workspace with a research database that has properties for interviewee, company, role, themes, pain points, and feature requests.
  • A Slack workspace and a research channel where the team wants to see new interview highlights.
How can I customize it?
  • Point it at a different Granola folder, or change the title rules used to decide which notes count as interviews.
  • Add or rename properties in the Notion database (for example a customer segment tag, a deal stage, or a sentiment score) and the agent will fill them in.
  • Swap the Slack channel, change the digest format, or have it post in a thread under a weekly research roundup message instead of a top-level message.

Frequently asked questions

Do I need to build the Notion database first?
Yes. Create a database in Notion with the properties you want populated (interviewee, company, role, themes, pain points, feature requests, interview date, and a link back to Granola work well) and share it with your Notion integration. The agent fills the properties you have, so missing ones are simply skipped.
Will it run on every Granola note I take?
No. It only fires for notes inside the folder you point it at, and it skips meetings whose titles do not look like customer interviews. Internal standups, 1:1s, and sales calls in other folders are ignored by default.
Can I change which Slack channel gets the highlights?
Yes. Tell the agent which channel to post to, or have it post to several channels at once. You can also turn the Slack message off entirely if you only want the Notion record.
What goes into the Notion page body versus the properties?
Structured fields like interviewee, company, role, themes, and feature requests become page properties so you can filter and group them. The full Granola summary, surprising quotes, and any extra context are written into the page body so a reader gets the whole story without leaving Notion.
Does it work on Granola Free or Pro plans?
No. Granola only issues personal API keys on Business and Enterprise plans. You will not be able to connect Granola until your workspace is on one of those plans and your admin has enabled personal API keys.

Related templates

Daily Braintree declined-payment recovery digest to Slack

Every weekday at 8am, your billing team gets a Slack rundown of yesterday's failed Braintree charges, the revenue at risk, and who to chase first.

Braintree
Slack Bot
Agentic Task
Weekday Azure DevOps sprint standup digest in Slack

Every weekday morning, roll up your sprint's work items into a clear per-person standup summary and post it to your team's Slack channel before you meet.

Azure DevOps
Slack Bot
Agentic Task
Track new Braintree disputes before the deadline slips

Every three hours we scan Braintree for new disputes and chargebacks, open a tracked ticket with a tailored evidence checklist, and alert your team in Slack before the response deadline slips.

Braintree
Zendesk
Slack Bot
Agentic Task
Daily Databricks data health check with Slack alerts

Every weekday morning we check your most important Databricks tables for freshness and data problems, and ping Slack only when something actually looks wrong.

Databricks
Slack Bot
Agentic Task
Monday morning employee breach exposure briefing in Slack

Every Monday, automatically find which employee accounts on your company domain turned up in data breaches and get a plain-English briefing in Slack.

Have I Been Pwned
Slack Bot
Agentic Task
Instant Slack alert when an Azure DevOps build fails

When a pipeline build fails, we post a tight Slack card naming who pushed, the likely cause, and a link to the build so on-call can triage in seconds.

Azure DevOps
Slack Bot
Agentic Task

Stop letting customer interview insights die in your notes app.

Connect Granola, Notion, and Slack once, and Geni turns every interview into a searchable research record the whole team can act on.