How to Schedule Daily AI Content Generation in n8n
Use a Schedule Trigger to generate a draft post every morning with an LLM and drop it into a doc or sheet for review.
A blank page is the hardest part of writing. This workflow runs on a timer, asks an LLM for a fresh draft based on a rotating topic, and saves it somewhere you can edit. You wake up to a starting point instead of an empty doc.
What you need
- A running n8n instance with an OpenAI credential
- A Google Sheets or Notion credential for storing drafts
- A short list of topics or themes to draw from
Step 1: Add a Schedule Trigger
Add a Schedule Trigger node and set it to run once a day at a fixed time, for example 07:00 in your timezone. n8n uses the GENERIC_TIMEZONE you set on the instance, so confirm that matches where you live.
Step 2: Pick a topic for the day
Add a Code node that selects a topic. A simple approach uses the day of the year so the list rotates predictably without repeating two days in a row.
const topics = [
"n8n tips for beginners",
"automation ROI examples",
"AI prompt patterns",
"common integration mistakes",
];
const day = Math.floor(Date.now() / 86400000);
return [{ json: { topic: topics[day % topics.length] } }];Step 3: Generate the draft
Feed the chosen topic into an OpenAI node. Ask for a specific format so the output is consistent every day and easy to drop into your channel of choice.
Write a 120-word LinkedIn post about "{{ $json.topic }}".
Plain language, one practical tip, no hashtags except 2 at the end.Step 4: Store the draft for review
Add a Google Sheets node set to Append. Map the date, the topic, the generated text, and a status of Draft. Activate the workflow and let it run overnight.
Result
Each morning a new row appears in your sheet with a ready-to-edit draft tied to the day's topic. You polish and post in minutes instead of starting from scratch.
Watch related tutorials
32:08
21:45
34:10
26:40
32:15
40:20