You will need
- Read access to where your numbers live (this example uses Google Sheets)
- n8n: n8n Cloud (paid after a free trial) or the free self-hosted Community edition
- A model API key (for example Anthropic or OpenAI; billed per token)
- A Slack workspace and channel, plus the report owner's Slack account
You will end up with
- A draft summary sent to the report owner every Monday morning
- The report posted to the team channel only after the owner approves it
Add a Schedule Trigger
Use the Schedule Trigger node with a Weeks interval, Monday, at the hour you want. Set the workflow time zone in workflow settings, otherwise n8n uses the instance time zone. Publish the workflow or the schedule will not run.
Sources: n8n docs: Schedule Trigger node
Read this week's and last week's numbers
Add a Google Sheets node with 'Get Row(s)' to read the rows. Use a credential that can only read that sheet.
Sources: n8n docs: Google Sheets node
Write the summary with a model
Add a Basic LLM Chain node with a chat model. Pass both weeks' numbers.
Sources: n8n docs: Basic LLM Chain node
Prompt Here are this week's and last week's numbers as JSON: {{numbers}}. Write three bullet points: what changed, by how much, and one possible reason. Use only these numbers. Do not invent causes; say 'reason unknown' if the data does not show one.Ask the owner to approve in Slack
Use the Slack node's 'Send and Wait for Response' operation to send the draft to the report owner. The workflow pauses until they approve or decline.
Sources: n8n docs: Slack node (Send and Wait for Response)
Human checkpoint. A person approves this step before the agent goes further.Post the approved report
If approved, post to the team channel with the Slack node's 'Send a message'. If declined, stop and let the owner post by hand. Have the owner compare the first few reports with the source sheet.