Notion + OpenAI: polished daily digest pages, done
Your “daily digest” process usually starts with good intentions. Then it turns into hunting through Notion, copying links into a doc, rewriting summaries, and trying to make the categories look consistent.
This Notion OpenAI digest automation hits content marketers first, honestly. But startup founders building a community roundup and agency leads who publish client updates feel the same pain. You will turn yesterday’s saved articles into a clean, publishable Notion page with far less manual editing.
Below you’ll see exactly what the workflow does, the results you can expect, and what you need to run it daily without babysitting.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Notion + OpenAI: polished daily digest pages, done
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/notion.dark.svg' width='40' height='40' /></div><br/>Get many database pages"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code in JavaScript"]
n4@{ icon: "mdi:robot", form: "rounded", label: "Text Classifier", pos: "b", h: 48 }
n5@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code in JavaScript1"]
n7@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n8@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code in JavaScript2"]
n10@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n7 --> n9
n4 --> n6
n10 --> n2
n5 -.-> n4
n3 --> n4
n8 -.-> n7
n6 --> n7
n9 --> n1
n2 --> n3
n0 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0,n10 trigger
class n4,n7 ai
class n5,n8 aiModel
class n2 database
class n1 api
class n3,n6,n9 code
class n10 disabled
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n6,n9 customIcon
The Problem: Daily digests fall apart when they’re manual
A daily digest sounds simple until you try to do it every day. The work isn’t “hard,” it’s just constant: filter what’s actually from the last 24 hours, decide what counts as tech/startup news, rewrite messy notes into clean blurbs, then format everything so it looks like a real publication. Miss one day and the backlog gets weird. Do it rushed and you publish inconsistent categories, broken links, or summaries that read like raw clips from the internet. The worst part is the opportunity cost. That time should go into perspective and commentary, not copy-paste and formatting.
The friction compounds. Here’s where it breaks down.
- You re-decide the same categories every day, so the digest feels different each time.
- Manual filtering means “yesterday’s news” sometimes includes last week’s leftovers.
- Summaries drift in tone and length, which makes the whole page feel unpolished.
- Formatting Markdown-like notes into Notion blocks is tedious and easy to mess up.
The Solution: A daily Notion digest page built automatically
This workflow turns a Notion database of saved articles into a finished daily digest page. It starts by grabbing database pages from the past 24 hours, so you’re always working with fresh items. Then it narrows that list twice: first with keyword matching (think “AI,” “startup,” “tech”), and then with an OpenAI-powered classifier that separates relevant tech/startup stories from everything else. Once the list is clean, an AI agent drafts a single Markdown digest with an intro, grouped sections, clickable links, and a closing note. Finally, the workflow converts that Markdown into Notion-friendly blocks and publishes a new Notion page titled like “Tech & Startup Daily Digest – YYYY-MM-DD.”
The workflow kicks off via manual run for testing, or a daily schedule (disabled by default) for production. Notion provides the source data, OpenAI handles classification plus writing, and an HTTP request pushes the finished payload straight into Notion. No extra tools, no messy hand formatting.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you save 15 articles a day into Notion. Manually, you might spend about 3 minutes per article to skim, decide a category, write a short summary, and paste it into a nicely formatted page, which is roughly 45 minutes, plus another 15 minutes making the page look “Notion-clean.” With this workflow, the daily run is basically hands-off after setup: a minute to check the output, and you’re done. That’s close to an hour back per day, without lowering quality.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Notion for storing your source articles in a database.
- OpenAI to classify items and draft the digest.
- OpenAI API key (get it from the OpenAI API dashboard).
Skill level: Intermediate. You’ll connect credentials, confirm database properties, and paste a few IDs into n8n.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A scheduled run (or manual test) starts the workflow. You can run it on-demand while you’re setting things up, then enable the daily schedule once you trust the output.
Notion is queried for the last 24 hours of saved articles. The workflow pulls “database pages” and applies a date filter, which means the digest won’t quietly bloat over time.
Two-stage filtering keeps quality up and costs down. Keyword matching removes obvious non-matches first. Then OpenAI classifies what’s left as “Tech/Startup” or “Other,” so your final digest doesn’t get diluted by random links.
The digest is drafted, converted, and published as a Notion page. An AI agent generates a structured Markdown digest (intro, sections, links). A formatting step converts it into Notion blocks, and an HTTP request creates the final page with a dated title.
You can easily modify the keyword list and the time window based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Trigger Type
Set up manual and scheduled entry points so the workflow can run on demand or on a schedule.
- Open Manual Start Trigger to enable manual execution for testing and ad-hoc runs.
- Open Scheduled Run Trigger and set the Rule to run daily at
20(hour). Note: it is currently disabled in the workflow. - Confirm the flow: Manual Start Trigger → Retrieve Database Pages and Scheduled Run Trigger → Retrieve Database Pages.
Step 2: Connect Notion
Retrieve articles from your Notion database and filter by date.
- Open Retrieve Database Pages and set Resource to
databasePage, Operation togetAll, and Return All totrue. - Set Database to your Notion database ID (replace
[YOUR_ID]). - In Filters, keep the date condition: Date|date set to
{{$now.minus({days: 1}).toISO()}}with Condition set toafter. - Credential Required: Connect your notionApi credentials in Retrieve Database Pages.
Step 3: Set Up Processing and Classification
Filter relevant tech articles and classify them before aggregation.
- In Filter Tech Keywords, keep the provided JavaScript Code to match tech-related keywords in
property_title,property_summary, andproperty_full_article. - Open Article Category Judge and set Input Text to
=Classify the article into one of these categories: "Tech/Startup" or "Other". Return only one word: Tech/Startup or Other. Title: {{$json.property_title}} Summary: {{$json.property_summary}} Full article: {{$json.property_full_article}}. - Confirm Primary Chat Model is connected as the language model for Article Category Judge.
- Credential Required: Connect your openAiApi credentials in Primary Chat Model (credentials are added to the model node, not the classifier).
Step 4: Set Up AI Digest Creation
Aggregate filtered articles and draft the digest with the AI agent.
- In Aggregate Articles, keep the JavaScript Code that collects all items into a single
articlesarray. - Open Digest Draft Agent and set Text to
{{ $json.articles }}. - Review the System Message in Digest Draft Agent to ensure it matches your editorial style and Markdown formatting requirements.
- Confirm Secondary Chat Model is connected as the language model for Digest Draft Agent.
- Credential Required: Connect your openAiApi credentials in Secondary Chat Model (credentials are added to the model node, not the agent).
Step 5: Configure Output to Notion
Convert the AI digest into Notion blocks and publish a new page.
- Open Build Notion Payload and update the parent.page_id value from
[YOUR_ID]to your Notion page ID. - Confirm the payload settings for icon (
📰) and cover URL (https://upload.wikimedia.org/wikipedia/commons/6/62/Tuscankale.jpg). - In Notion Page Request, set URL to
https://api.notion.com/v1/pages, Method toPOST, and JSON Body to{{ $item("0").$node["Build Notion Payload"].json.pagePayload }}. - Update Header Parameters in Notion Page Request to include Authorization as
Bearer [CONFIGURE_YOUR_TOKEN]and Notion-Version as2022-06-28.
[CONFIGURE_YOUR_TOKEN] with a valid Notion API token or the request will fail.Step 6: Test and Activate Your Workflow
Run a full test to confirm the digest is created and published correctly.
- Click Execute Workflow with Manual Start Trigger to run a test.
- Verify Retrieve Database Pages outputs recent items and Filter Tech Keywords returns only tech-related articles.
- Confirm Digest Draft Agent returns clean Markdown and Build Notion Payload generates a valid
pagePayload. - Check Notion to ensure Notion Page Request creates a new page titled
Tech & Startup Daily Digest – YYYY-MM-DD. - When successful, enable Scheduled Run Trigger to activate daily publishing.
Common Gotchas
- Notion credentials can expire or need specific permissions. If things break, check your Notion integration connection in n8n and confirm the database is shared with that integration.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your Notion database is already organized.
No coding required. You’ll mostly connect accounts and paste the right Notion database details into the workflow.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs, which are usually low for a daily digest.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. Update the keyword filter to match your niche, then tweak the OpenAI classifier prompt so it uses your category names (for example “AI & DevTools” vs. “Funding”). Most teams also adjust the intro and closing note so the page sounds like their brand instead of a generic digest.
Usually it’s permissions. Make sure the exact Notion database is shared with your Notion integration, then re-check the database ID and any required properties used for the date filter. If it still fails, refresh the Notion credential in n8n because tokens can go stale.
Dozens per day is normal, and more is fine as long as your n8n plan and OpenAI rate limits can keep up.
For this use case, n8n is usually the better fit because you’re doing real processing: keyword filtering, AI classification, aggregation, and Markdown-to-Notion conversion. Zapier and Make can do parts of that, but you may end up with more paid steps, less control over branching, and more “glue” scenarios to maintain. If you plan to self-host, n8n is also attractive because you’re not paying per tiny action the same way. That said, if your digest is extremely simple and you never want to look at logic, Zapier can be quicker to click together. Talk to an automation expert if you’re on the fence.
Set it up once, then let the workflow publish your daily digest page on schedule. You keep the insight and the voice, and the automation handles the repetitive parts.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.