π Summarize daily Slack standups with OpenAI, Notion, and Google Sheets
β‘ 40 views Β· π Project Management
Description
Quick overview
This workflow runs every weekday, pulls standup messages from a Slack channel, uses OpenAI to generate a structured daily digest, saves the digest to a Notion database, posts a summary back to Slack, and appends an audit entry to Google Sheets.
How it works
- Runs every weekday morning on a cron schedule.
- Fetches the dayβs recent messages from a specified Slack standup channel and filters out bot, subtype, and join/leave system messages.
- Checks whether any standup messages remain and posts a Slack notice if none are found.
- Formats the remaining Slack updates into a single structured prompt with date, team name, and message count.
- Sends the formatted standup text to OpenAI (gpt-4.1-mini) to generate a JSON digest with summary, highlights, blockers, per-user updates, and mood.
- Parses and enriches the AI output with metadata, creates a new page in a Notion database, posts the digest to a Slack summary channel, and appends a run record to a Google Sheets βAudit Logβ sheet.
Setup
- Add a Slack OAuth2 credential and set the standup channel ID (history source) and the summary channel ID (digest destination).
- Add an OpenAI credential and confirm the model selection (gpt-4.1-mini) is available in your account.
- Add a Notion credential, create/select a target database, and replace
YOUR_NOTION_DATABASE_ID(and ensure the database has the referenced properties: Date, Team, Message Count, Mood). - Add a Google Sheets Service Account credential, share the target spreadsheet with the service account email, and replace
YOUR_SHEET_IDand the sheet name (βAudit Logβ) if different. - Adjust the schedule cron expression (
0 9 * * 1-5) to match your teamβs standup timing and timezone expectations.
π Nodes Used
Google Sheets, Slack, Notion, Schedule Trigger, OpenAI
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File