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_ID and 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.