Quick overview
This scheduled workflow pulls article URLs from Google Sheets, scrapes each page, uses Anthropic Claude to generate a structured news briefing, saves results to Notion, posts a compiled digest to Slack, and appends a processing log back to Google Sheets.
How it works
- Runs on a weekday morning cron schedule.
- Loads configuration values (sheet IDs, Notion database ID, Slack channel, and prompt settings) and reads article URLs from Google Sheets.
- Limits the run to the first 10 URLs, fetches each article’s HTML via HTTP, and extracts a cleaned text version.
- Sends the article text to Anthropic Claude to produce a JSON briefing with headline, summary, why it matters, and a relevance score.
- Creates a new page in Notion for each generated briefing.
- Appends each briefing record to a Google Sheets log and aggregates all briefings into a single daily message.
- Posts the aggregated daily digest to a Slack channel.
Setup
- Add credentials for Google Sheets, Notion, Slack, and Anthropic (Claude) in n8n.
- Create a Google Sheet (tab name: urls) with a url column, and set the Google Sheet ID in the configuration.
- Create a second Google Sheet (tab name: log) for logging, and set the log sheet ID used by the append step.
- Create a Notion database for briefings and set the database/page target ID used by the Notion step.
- Set your Slack channel and review the cron expression and maxArticles limit to match your schedule and desired volume.