The fastest content type in the system. A Note stands alone or generates from a parent article. It never becomes a parent itself.
Substack Notes are the smallest unit of content you will publish and the one you will publish most often. Five a day is the volume that moves reach on Substack, and five a day manually is a grind that ends most people's consistency within two weeks. This playbook builds the pipeline that removes the grind: every Note you write or generate lives in one record system, moves through one set of statuses, and schedules itself to Substack without you opening the platform.
A Note is a short form record. It can be a standalone thought you wrote in the moment, or it can be generated from a parent, meaning your published Substack article or blog post feeds the AI and a batch of Notes comes out the other side. A Note has no children. It is the end of the line, which is exactly why it ships fast.
One place to log in and run everything. That is the whole argument of a business operating system, and Notes are where you feel it first. Hand-written Notes and AI-generated Notes land in the same records, carry the same statuses, and get picked up by the same scheduler. You stop hopping between a notes app, a spreadsheet, and the Substack composer. You think once, batch once, and the system runs the week.
Your Brand record should be complete. Every generation workflow reads from it. A Substack Notes Style Guide is strongly recommended if you plan to use the AI path. It is the difference between output that sounds like you and output that sounds like everyone else's assistant.
By the end of this playbook you will have a complete Note pipeline: capture Notes by hand, generate them from prompts and parent articles, review and flag your best outputs, and schedule the whole batch to your Substack drafts queue. Write as many as you want in one sitting. A full month of Notes in about 90 minutes is a realistic pace once the system is in place.
What follows is the system I run inside Coordination Zero OS. You're not going to copy my build, you're going to copy the logic. It comes down to three pieces: a Notes table inside the database where you're building your business OS, a generation workflow, and a scheduler automation. The tools are interchangeable. The pattern is not. Every section shows you what my version does so you can build yours in Airtable, Notion, Sheets, Supabase, or whatever you already run.
Before you write or generate anything, understand the record itself. Every Note in your system is one record with the same fields, the same tabs, and the same lifecycle. This is what makes the pipeline work: the scheduler does not care how a Note was created. It only cares about the record.
One table added to your existing base or workspace. Required columns: Note Body (long text), Status (single select: Draft, Queued, Scheduled, Sent, Reuse, Archived), Scheduled Date (date and time), Brand or Publication (single select or link). Optional: Title, Content Type, Performance Notes, Source Prompt. One view filtered to Status = Queued sorted by Scheduled Date. That view is your queue. Airtable, Notion, Sheets, or Supabase all handle this.
Bonus: Add a calendar view on the Scheduled Date field. Airtable and Notion both do this in two clicks, and most tools with a date field offer it. This is the view that turns your queue into a week you can see: every scheduled Note sitting on its day, gaps visible before they become missed days.
An internal label. This is for you and your queue view, not the reader. Notes publish body-only.
The Note itself, exactly as it will publish. Basic formatting available: bold, italic, lists, line breaks.
Where this Note sits in your workflow. Full lifecycle below.
Which brand this Note belongs to. Every record ties to a Brand, which is how multi-publication operators keep queues separated.
Date and time this Note publishes. Optional until you are ready to schedule.
Attachments for supporting visuals or source assets.
Track review, edit, approval, and scheduling work without separating the task from the content.
Use for team review, approval notes, edit notes, or future reuse ideas.
Keep generation and refinement work connected to the final record.
Comments and Tasks matter most for teams: sign-off requests and edit notes live on the record, not in a Slack thread somewhere.
There is no forced pipeline here. A solo operator writes a Note and schedules it in one motion. A team parks Notes in Draft or Queued until someone signs off. Same record, different workflow, your call. The statuses describe your process instead of dictating it.
Most content dies the moment it publishes. The Reuse status is a deliberate exception: your best evergreen Notes cycle back into rotation instead of being rewritten from scratch. Over six months this becomes a library of proven material that cuts your batching time every single week.
Coming soon: the performance layer. Reuse gets smarter when you can see which Notes earned replies, restacks, comments, or subscribers. Once that workflow is working, this status becomes less about what you liked and more about what the audience proved was worth seeing again.
Not every Note needs generating. Some of your best Notes are thoughts you had in the moment, and the fastest thing you can do with a thought is write it down. This section is the manual path: you write the Note, the system stores and schedules it. If you never touch the AI path, this section alone gives you a cleaner queue than the Substack composer: your week is visible on a calendar instead of buried inside scheduled draft cards you have to open one by one.
Because the goal is one system. A Note typed into your phone's notes app is a Note you have to find, copy, and paste later. A Note captured here is already in the pipeline: visible in your queue, tied to a Brand, one status change away from scheduled. The scheduler treats it exactly like an AI-generated Note. One login, one queue, one week visible at a glance.
Which brand this Note is for. If you run multiple publications or manage client brands, this keeps every queue separated from day one.
Where this Note enters your workflow. Writing ahead without a slot in mind: leave it in Draft. Ready to publish at a set time: set it to Scheduled and the automation picks it up.
The Note itself, written exactly as it will publish. Substack Notes are short form. Think LinkedIn post length, not article length.
Set it now if you know the slot, or leave it blank and assign times when you batch schedule.
Batching is the habit that makes volume sustainable. One sitting, once a week or once a month, write everything at once.
Setting a Note to Scheduled with a date and time is the trigger. The automation you build in Section 05 pushes it to Substack the moment that happens. After the push, edits made in your system do not reach Substack. Any change to the content has to be made in Substack directly. If you change the date, the original scheduled Note is still sitting in your Substack queue and you have to go delete it there yourself. The rule is simple: a Note is final before you schedule it. Never schedule something you plan to polish later.
A Note is not a shrunken article. It is one thought, complete in itself. The strongest Notes open with the point instead of building to it, run three or four sentences, and close on a statement rather than trailing off. If a Note needs a second paragraph to make sense, it is either two Notes or the seed of an article.
This is the section that separates operators who get consistent AI output from operators who get lucky once. A prompt in this system is not something you type into a chat box and lose. It is a saved record: a reusable set of instructions that defines exactly how the AI writes one kind of Note. You build it once, refine it as you learn, and select it from a dropdown every time you generate. The prompt does the remembering so you do not have to.
Every Note prompt follows the same skeleton. Here is a full example, then the breakdown.
Write a short Substack Note based on the following source content. Open by naming something most people in this space believe, then state plainly why it is wrong or incomplete. Support your position with one specific detail from the source. Close with a single sentence that states what to do instead. Maximum 100 words. No hashtags. No em dashes. No questions. Write in first person, direct and confident.
Source content: {{source_notes}}
CRITICAL LENGTH RULE: Maximum 4 sentences. No more. This is a Substack Note, not a blog post or a LinkedIn article. If you write more than 4 sentences you have failed. Cut everything that is not essential. No lists, no bullet points, no section headers.
"Write a short Substack Note based on the following source content." One format, one task. Prompts that ask for multiple things produce mush.
"Open by naming something most people believe, then state why it is wrong." This is the personality of the prompt. Change this line and you have a different prompt for a different kind of Note.
Open, support, close. Three moves, in order. The AI follows structure far more reliably than it follows vibes.
Word cap, no hashtags, no em dashes, first person. Every constraint you leave out is a decision the AI makes for you, and it will decide wrong.
{{source_notes}} is where the form injects your source material at generation time. The prompt is the recipe. The source is the ingredients.
Hard limits work when they are stated as pass or fail conditions, not preferences. "Keep it short" gets ignored. "More than 4 sentences is failure" gets obeyed. End every Note prompt with an enforcement block.
Write a short Substack Note that pulls one specific idea from the following article. Do not summarize the article. Choose a single insight, example, or claim and make it stand alone as a complete thought. The Note should make a reader curious about the full article without mentioning the article, without teasing, and without sounding like a promo. Maximum 60 words. No hashtags. No em dashes. Write in first person, direct and confident.
Article content: {{source_notes}}
CRITICAL LENGTH RULE: Maximum 4 sentences. No more. This is a Substack Note, not a blog post or a LinkedIn article. If you write more than 4 sentences you have failed. Cut everything that is not essential. No lists, no bullet points, no section headers.
This is the prompt behind the linked-content path in Section 04. Use it when you want to create multiple standalone Notes from one article, each carrying a different idea from the piece. The instruction "do not summarize" is doing the heavy lifting. Summaries produce Notes that read like promos. Extractions produce Notes that read like thoughts.
Two prompts are enough to start. One standalone prompt for original thoughts, one extraction prompt for turning articles into Notes. Resist building ten prompts before you have run two. The refinement loop is where prompts get good, and you can only refine what you actually use.
This is where the volume comes from. The manual path in Section 02 captures thoughts as you have them. This path produces batches on demand: select a brand, a prompt, and a source, and the system assembles everything it knows about your voice before the AI writes a word. The form looks simple. What runs behind it is the reason the output sounds like you.
Inside Coordination Zero OS this is a form. Outside it, the same pattern still works: choose the brand, choose the audience, choose the prompt angle, and give the AI source material. The source can be a few notes you type directly, or notes plus a linked article or blog post if your system stores existing content. The generate step sends those inputs to your AI tool and writes the output to a new Note record with Status = Draft.
Which brand this Note is for. This selection determines everything downstream: which voice guidelines load, which style guides appear, which personas are available.
The persona you are writing for, selected at generation time rather than locked in upfront. The same idea lands differently for a solo founder than for an agency owner, and this field is how the AI knows which one is reading.
Select from the prompt records you built in Section 03. This defines how the AI writes: the angle, the structure, the constraints.
What the Note is about. Paste content, key points, an excerpt, or a short direction for the AI. The prompt is the recipe, this is the ingredients. Thin source material produces thin Notes. Give it something real to work with.
The parent path. Select a blog post, Substack article, or other content record if you want the AI to pull from existing work. Skip this when you are generating from Source Notes alone.
Optional but strongly recommended. Only active Substack Note style guides for the selected brand appear here. This is the per-format blueprint you built in the Brand playbook, and it is the difference between on-brand output and output that sounds like everyone else using the same model.
The model that generates this Note. Defaults are fine to start. Once you are running batches, test the same prompt across two models and keep the one that needs less editing. Model choice matters less than prompt and style guide quality, in that order.
Outside Coordination Zero OS, this is a relationship field. Link each Note to the source article, post, or content record it came from. If your tool does not support linked records, use a URL field plus a copied source-content field. The goal is simple: the AI needs access to the parent content, and you need a way to trace each generated Note back to its source.
Everything so far has been about getting Notes into the system. This section gets them out. The build is a five-node Make scenario that watches for Notes marked Scheduled, sends each one to Substack with its publish time, and updates the record so you know it landed. It runs in about 30 seconds per Note, it took me an afternoon to build, and the two genuinely hard parts, finding the endpoint and figuring out authentication, are handed to you below. Grab a free Make account if you are not already on it.
Your Note record hits Scheduled status, a webhook fires, and the scenario carries the Note content, brand, and publish time to Substack. The Note appears in your Substack drafts queue with its time slot assigned. No composer, no manual posting, no context switching.
A webhook is just a message your database sends to your automation tool when something changes. For this workflow, that message needs five things: note_body, scheduled_date, publication URL, record_id, and optionally title. The record_id is how the automation finds its way back to the right row. Node 05 does one thing with it: flips Status from Scheduled to Sent and stamps the publish time. If your tool can send those five fields and write back one status change, the middle nodes work regardless of platform.
Substack does not publish an official API. This endpoint came from digging through browser network requests so you do not have to.
Endpoint: https://[yourpublication].substack.com/api/v1/comment/draft
Method: POST
This value authenticates as you. Anyone holding it can act as your Substack account. Do not paste it into shared documents, screenshots, or version control. If you ever suspect it leaked, log out of Substack and back in to invalidate it.
No authentication. Auth is handled through the cookie header below.
https://[yourpublication].substack.com/api/v1/comment/draft
POST
Name: Cookie. Value: substack.sid=[your sid value]
Name: Content-Type. Value: application/json
application/json
Data structure
Yes
{
"body_json": {
"type": "doc",
"attrs": {
"schemaVersion": "v1"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "{{note_body}}"
}
]
}
]
},
"trigger_at": "{{scheduled_date}}",
"reply_minimum_role": "everyone"
}
I run this in Make. The pattern ports to Zapier, n8n, or any automation tool with a webhook trigger and an HTTP module. One thing to know before you build: Substack has no official API, so this call rides on an unofficial endpoint. It works today. Expect to maintain it.
Make handles the trigger_at timestamp based on your Make account timezone settings, not your local machine. Verify your Make timezone matches your actual timezone before you schedule anything, or every Note in the batch goes out at the wrong hour. This is the single most common failure in this build and it takes 30 seconds to check.
Open your Substack drafts queue after your first batch run. Notes stacked and scheduled, each sitting in its time slot, the full week visible before it starts. That view is the payoff: you think once, batch once, and the week runs itself.
Click each item as you confirm it. The goal is not a page full of records. The goal is a batch visible in Substack before the week starts.
Brand record is complete
Style Guide for Substack Notes is built, recommended
At least one prompt record is created
One manual Note is captured and saved
One AI batch is generated and reviewed
Make scenario live, timezone verified
First batch scheduled and visible in your Substack drafts queue