How it works:
This template turns rows in a Google Sheet into polished newsletter drafts in Notion using an AI writing agent. You click Execute workflow in n8n. It fetches all rows marked N8n Status = Pending, generates a draft from Newsletter Title and About the Newsletter, creates a Notion page, writes the full draft, then flips the sheet row to Done before moving to the next one.
Before you start (use your own credentials):
Create and select your credentials in n8n:
Replace any placeholders in nodes:
newsletter
).Give the Notion integration access to the database (Share → Invite the integration).
Do not hard-code secrets in nodes. Store them in n8n Credentials.
Step-by-step:
Manual Trigger
Start the run with When clicking ‘Execute workflow’.
Fetch pending input (Google Sheets → Get row(s) in sheet)
Read the newsletter
tab and pull only rows where N8n Status = Pending.
Iterate (Split In Batches → Loop Over Items)
Process one sheet row at a time for stable memory use and pacing.
Generate the newsletter (AI Agent + OpenAI Chat Model)
Create a Notion page (Notion → Create Page)
Create a page in your Newsletter Automation database with the page title set from Newsletter Title.
Prepare long content for Notion (Code)
Split the AI output into ~1,800-character chunks and wrap as Notion paragraph blocks to avoid payload limits.
Write content blocks to Notion (HTTP Request → UpdateNotionBlock)
Send a PATCH request to append all generated blocks so the full draft appears on the page.
Mark the sheet row as done (Google Sheets → Update row in sheet)
Update N8n Status = Done for the processed Newsletter Title.
Continue the loop
Return to Split In Batches for the next pending row until none remain.
Tools integration:
Pending
→ Done
)Want auto-runs? Add a Cron trigger before step 2 and keep the flow unchanged.