Downloads
Download the n8n workflow (JSON)
founder-morning-brief-n8n-claude.json · n8n workflow · 17 steps · starts with Every morning at 8 · uses Google Calendar, Gmail, Google Sheets, Anthropic, WhatsApp · 24 KB
Import into n8n: Create Workflow, then the menu, then Import from File.
How to import it into n8n
- In n8n, create a new workflow.
- Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
- Open each node with a warning and connect your own account: the file carries no passwords or keys.
- Run it once with Test workflow, check the result, then switch it to Active.
What this workflow does
At 8 every morning, n8n reads four places you would otherwise open one by one: today's meetings in Google Calendar, unread mail from the last day in Gmail, yesterday's sales and your open tasks in Google Sheets. Claude turns all of it into one short brief: meetings with one prep line each, yesterday's sales compared with the day before, the few emails that actually need you, overdue tasks, and your top 3 for the day. It arrives as one WhatsApp. For urgent emails, Claude also writes short reply drafts and saves them in the right Gmail threads, so you only have to check and send.
Who it is for
Founders and owners of small businesses (D2C brands, agencies, clinics, distributors) who start every day by opening four apps and still miss the one thing that changed.
What you need
- n8n (Cloud or self-hosted), time zone set to Asia/Kolkata
- Google Calendar and Gmail
- A Google Sheet with daily sales and tasks (or swap in Shopify, Tally exports or ClickUp)
- An Anthropic API key for Claude
- A WhatsApp Business Cloud API number
The workflow, step by step
Step 1 · 8 AM, once a day
Every morning at 8, Monday to Saturday, the brief starts. A guard makes sure it is built only once a day, even if the workflow is re-run.
- Every morning at 8 (Schedule Trigger).
- Already sent today? (Remove Duplicates on today's date).
Step 2 · Pull from four places
n8n reads today's meetings from Google Calendar, unread mail from the last day (no promotions), yesterday's sales and open tasks from Google Sheets, and packs them into one compact list.
- Meetings today (Google Calendar), Unread important emails (Gmail), Sales yesterday and Open tasks (Google Sheets). Each runs once and still continues if it finds nothing.
- Bundle everything (Code): meeting times in IST, short email snippets, sales totals by channel for yesterday and the day before, overdue tasks and tasks due today.
Step 3 · Claude writes the brief
Claude turns it into a short brief: meetings with one prep line each, yesterday's sales, the 3 emails that matter and overdue tasks, ending with your top 3 for today. Numbers are copied, never invented.
- Write brief with Claude (Basic LLM Chain) with Claude (temperature 0.2) and Brief fields (Structured Output Parser).
- Log brief (Google Sheets): one row per day, so you can look back.
Step 4 · One WhatsApp before chai
The brief arrives as one WhatsApp at 8. If WhatsApp's 24 hour window has closed, a short template version goes instead, and if that fails too, the full brief comes by email.
- Send brief on WhatsApp (WhatsApp text).
- Send as template instead (WhatsApp template
morning_brief), on the first node's error output. - Alert: brief not delivered (Gmail), on the template's error output.
Step 5 · Replies drafted, not sent
For urgent emails, Claude's short reply drafts are saved in the right Gmail threads. Nothing is sent. You open Gmail, check, edit and hit send yourself.
- Urgent emails? (IF), Split urgent emails (Split Out) and Save reply drafts (Gmail, create draft in the thread).
Setup
- Import the JSON into n8n and set the workflow time zone to Asia/Kolkata in Workflow settings.
- Connect Google Calendar, Gmail, Google Sheets, Anthropic and WhatsApp.
- Create the tabs
Daily sales(Date, Channel, Orders, Revenue),Tasks(Task, Owner, Due, Status) andBrief log(Date, Brief, Top 3, Urgent emails). ReplaceYOUR_SHEET_ID. - Create the WhatsApp utility template
morning_briefwith one variable. Put your own number in place of91YOUR_NUMBERin both WhatsApp nodes. - Send any message from your phone to the business number, then run the workflow by hand. The brief should arrive as a normal message.
- Activate. Reply "ok" to the brief each morning to keep the free-text window open.
How to customise
- Shopify or Razorpay instead of a sales sheet: replace Sales yesterday with a Shopify orders node or a Razorpay payments API call for yesterday.
- ClickUp or Notion tasks: replace Open tasks with the matching node, filtered on due date.
- Evening wrap-up: copy the workflow, run it at 7 PM, and ask Claude for "what got done, what slipped, tomorrow's first meeting".
- Team version: run one brief per manager with their own calendar and task filter.
Guardrails
- The brief only reads. Reply drafts wait in Gmail and nothing is sent until you send it yourself.
- All numbers are calculated in code from your sheet. Claude only copies them.
- Reply drafts never commit to money, prices or dates; anything you must decide is left in [square brackets].
- Email content goes to Claude only as short snippets of the last day's unread, non-promotional mail.
Troubleshooting
- The brief did not come: check the execution. If it stopped at Already sent today?, it already ran today.
- Sales say none: the Date column must be dd/mm/yyyy (or yyyy-mm-dd) and Revenue a number.
- Only template messages arrive: the 24 hour window closed. Reply to any brief to open it again.
- Too many emails flagged: add senders to exclude in the Gmail search in Unread important emails.
Want the members-only resources too?
A free account unlocks them all, including the ones shared in DMs.

