Substack automation with n8n: how to publish Notes automatically π
Step-by-step guide to using the Substack Node in n8n to create your first no-code workflow
In my last post, I chronicled how I reverse-engineered Substackβs hidden API to build an unofficial javascript client. It was a deep dive into Substackβs inner workings β fun for code enthusiasts, but not exactly accessible to everyone. Ever since, Iβve been itching to make Substack automation easier for all users, not just developers. Today, Iβm excited to share how you can automate Substack Notes publishing without writing a single line of code, using a no-code tool called n8n. π
Why this matters
Why go through the trouble of automating Substack? Imagine scheduling your newsletter to publish itself while you sleep, or instantly cross-posting a link to your latest Substack Note across social media. Perhaps you want to pull content from an AI or RSS feed and have it appear on Substack automatically. All of this becomes possible with automation.
Until now, Substackβs lack of an official API made such integrations hard (it frustrated me from day one of writing on Substack). Automation was limited to manual work or complex code. By introducing a no-code solution, we unlock these use cases for everyone. A tool like n8n puts Substack superpowers in the hands of non-developers, enabling creative workflows that simply werenβt feasible before. Whether youβre a writer looking to save time or a curious tinkerer, automating Substack can free you up to focus on content while the routine tasks handle themselves.
What n8n is
If youβre new to n8n1, think of it as a cousin of Zapier2 β but open source and highly flexible. n8n is a workflow automation platform that lets you connect apps and services together with simple nodes and drag-and-drop logic. You can run it for free (self-hosted or via their cloud service) and integrate with hundreds of apps. Like Zapier, you create βworkflowsβ that pass data from one step to the next β but unlike Zapier, you can add custom code or community-developed integrations when you need to, which makes it perfect for our Substack use case.
βοΈ Into automation, n8n
, or the wild world of AI agents?
This space is moving fast - and Iβm building, testing, and sharing as I go.
If youβre curious about turning ideas into workflows, or just want inspiration from real experiments...
π© Subscribe to follow along - and build smarter with me.
For example, a typical n8n workflow might listen for a new tweet and then perform an action like sending an email or updating a database. In our case, I have built a Substack integration for n8n, so we can use that as a building block in workflows. The best part: no coding required. You design automations with a visual editor, connecting nodes representing triggers (when something happens) and actions (do something in response).
What the Substack Node does
So how do we get Substack and n8n talking to each other? Enter the n8n-nodes-substack community node (aka the βSubstack nodeβ). This custom integration knows how to call Substackβs private API on your behalf. It currently supports a range of operations to both retrieve data from Substack and publish content:
Profile Info β get your Substack profile details, publication metadata, and the list of writers you follow (your βfolloweesβ). For example, you can fetch your newsletter title, description, and stats.
Posts β retrieve posts from your publication with pagination. This lets you pull a list of your recent newsletters or essays, which you could use for backups, analytics, or cross-posting elsewhere.
Notes β access Substack Notes (the short-form social posts on Substack, akin to tweets) and even create new notes programmatically. This is the highlight feature for publishing: you can automate posting those short updates or snippets to your Substack Notes feed.
Comments β fetch comments on your posts. This could be useful if you want to analyze reader engagement or maybe funnel comments into another system for analysis.
In short, the Substack node wraps many of the things youβd normally do on substack.com β reading content and posting short notes β into convenient no-code blocks. Keep in mind that longer-form newsletter publishing (creating full posts) isnβt supported yet, but the node covers a lot of ground for automating interactions with Substack.
Installation in 2 minutes
Adding the Substack node to n8n is quick and easy. Just follow these steps to install the community node into your n8n instance.
Open Settings in your n8n account and go to Community Nodes.
Click Install a community node.
Type n8n-nodes-substack.
Confirm to Install the node
You can refer to the documentation3 homepage for Substack node for more details.
Thatβs it! π n8n will now have a Substack node available in the node panel, ready for you to use in workflows.
Getting credentials
Before you can actually use the Substack node, you need to give it permission to act as you. Since Substack doesnβt offer official API keys, weβll do a one-time trick: grab your session cookie from your browser and use it as an API key. Donβt worry, itβs easier than it sounds β hereβs how to do it (beginner-friendly steps):
Log in to Substack on your web browser. Use the account/publication you want n8n to access.
Open your browserβs developer tools. In Chrome or Edge, you can press F12 (or right-click anywhere and choose βInspectβ). This opens a panel with a bunch of tabs (Elements, Console, Network, etc.).
Find the Substack session cookie. Click the Application (or Storage) tab in DevTools, then look under Cookies in the sidebar. You should see an entry for your Substack domain (e.g. mynewsletter.substack.com) or for substack.com. Expand that, and in the cookies list find a name like connect.sid. This is your login session cookie.
Copy the cookieβs value. The value will be a long string of characters. Double-click it and copy it to your clipboard. This is essentially your βAPI Keyβ for the Substack node, so keep it secret (it grants access to your account).
Create Substack credentials in n8n. Back in n8n, add a new credential for Substack (if you drag the Substack node into a workflow, youβll be prompted to select or create credentials). It will ask for two things: your Publication Address and API Key. Enter your Substack URL (e.g. mynewsletter.substack.com) as the address, and paste that long cookie value as the API Key. Save the credential.
Thatβs it β n8n is now authenticated to Substack as you. π The hard part is over! (If you ever log out of Substack or the cookie expires, youβd need to update this value, but cookies generally last a while).
βΌοΈ Treat the copied key like a password and donβt share it! βΌοΈ
Your first automation: posting a Substack Note in 60 seconds
Letβs build our βHello Worldβ of Substack automation: automatically posting a Substack Note. Notes are perfect for a quick test because theyβre short and appear immediately on your Substack profile. Weβll set up a simple n8n workflow with two nodes: a Manual Trigger and the Substack node.
Step 1: In n8nβs editor, add a Manual Trigger node. This node doesnβt require any configuration β itβs just a way to run the workflow on demand (perfect for testing).
Step 2: Next, add a Substack node and connect it to the Manual Trigger. In the Substack nodeβs settings, set the Resource to βNoteβ and the Operation to βCreateβ. Youβll see field appear for βBodyβ β this is where you compose your note.
Step 3: Fill in the note content. For example, you might put:
Body: This is an automated Substack Note, posted via my n8n workflow. Pretty cool, right? π
β οΈ You can include Markdown in the body. You could add links or other basic formatting as well β οΈ
Step 4: Make sure your Substack credentials (the cookie you set up) are selected for this node. Now click βTest Workflowβ with the Manual Trigger.
The Manual Trigger will fire, handing off execution to the Substack node, which will create the Note.
Give it a second or two, then check your Substack β voilΓ ! β¨ A new Note should be published with the title and content you provided. Youβve just automated your first Substack action with no code! Total setup time was about a minute.
If youβd like to dive in immediately, you can grab the pre-built workflow and import it into n8n.
{
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
0,
0
],
"id": "4026d9d4-3739-44c8-9e99-91d8fa97dffa",
"name": "When clicking βTest workflowβ"
},
{
"parameters": {
"resource": "note",
"operation": "create",
"body": "Hello world"
},
"type": "n8n-nodes-substack.substack",
"typeVersion": 1,
"position": [
220,
0
],
"id": "0b2bd82d-7d0c-48dd-91c0-07f5775ee5f9",
"name": "Substack",
"credentials": {
"substackApi": {
"id": "S0ZbGy9f6anXZDSu",
"name": "Substack account"
}
}
}
],
"connections": {
"When clicking βTest workflowβ": {
"main": [
[
{
"node": "Substack",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "5a4edeccdfb6d0f814d859aec3eb1dedbeb57c066dae3d8897adc72f71519512"
}
}
This JSON contains the exact setup from above, so you can try it out or modify it for your own experiments.
π§ Curious about automation, workflows, n8n, AI, or AI agents?
If youβre exploring how all these tools connect - and how to actually build with them - youβre in the right place.
π¬ Subscribe to get more deep dives, tools, experiments, and real-world workflows delivered straight to you.
Behind the scenes
If youβre curious how this magic works under the hood, hereβs a peek behind the curtain. The Substack node is essentially a wrapper around Substackβs private web API. When you configure the node (say, to βCreate Noteβ with a body), n8n β via the Substack node β makes the same kind of HTTPS request that your browser would make when you post a note on substack.com. It uses the session token (that cookie value we provided as the API key) to authenticate, so Substack knows the request is coming from a logged-in you.
Underneath, the node uses an open-source Substack API4 client library for JavaScript to handle these requests. This library (which I developed in the previous reverse-engineering project) takes care of formatting the calls correctly and handling things like pagination or error responses. In practice, that means the n8n node can call a function like βcreateNote(body)β and the library does the rest β sending the HTTP request with all required headers/cookies and returning the result.
The response from Substack is returned to you in n8n as JSON data. For example, after a βCreate Noteβ operation, the node will output details of the newly created note β its ID, URL, content, timestamp, etc. You can use these in downstream nodes of your workflow.
Hint: you could take the URL of the new note and automatically tweet it out or email it to someone using other n8n nodes!
The beauty is you donβt have to worry about any of this complexity. From your perspective, itβs just plug-and-play nodes. But itβs nice to know that under the hood, the node is essentially acting as a Substack web client, doing the same things you would do manually, only faster and hands-free.
Recipes and ideas
Weβve only scratched the surface with a basic example. Now that Substack is in your no-code toolkit, there are tons of workflows you could create. Here are some ideas to inspire you:
Scheduled Notes: Use n8nβs Cron trigger to schedule Substack Notes at specific times. For instance, you could auto-post a βDaily Quoteβ note every morning at 9am, or a weekly roundup every Friday, without lifting a finger.
AI-Generated Content: Integrate with OpenAI or other AI nodes to generate content and post it to Substack. Maybe an AI writes a short poem or summary each day, and n8n publishes it as a Substack note for your readers.
Cross-Posting to Substack: If youβre active on other platforms (Twitter, a personal blog, etc.), n8n can watch for new content there and then publish a link or snippet to Substack. For example, automatically cross-post your tweets to Substack Notes (the reason I got into this, as I mentioned!) or share your WordPress blog posts as Substack excerpts.
Content Aggregator: Pull in data from RSS feeds or other newsletters and compile a βdigestβ note on your Substack. N8n can fetch articles from various sources, maybe run a summary on them, and then post a combined note on your behalf.
Subscriber Syncing: When someone subscribes to your Substack, you could use n8n to add them to your CRM or email marketing list. (Substack can send you an email for new subscribers, which n8n could catch via an IMAP/email trigger and then extract the info.) This way, your subscriber data stays in sync across platforms.
Analytics & Alerts: Use the Substack nodeβs read operations to track stats β for instance, get your latest post stats or comments, and if something hits a threshold (say 1000 views or a particularly interesting comment), trigger an alert or follow-up action in Slack/Telegram. You could even log your Substack metrics to Google Sheets every week for analysis.
These are just a few possibilities. The key takeaway is that by connecting Substack with other tools in n8nβs ecosystem, you can automate away repetitive tasks or create entirely new workflows that make your life easier and engage your audience in creative ways. If you dream up a workflow that saves you time or adds value for your readers β go for it!
π Curious about n8n workflows? Got something on your mind but not sure where to start?
Whether youβre brainstorming ideas, stuck on a next step, or just exploring whatβs possible - join the chat, start the discussion! π
Contributing and roadmap
The Substack community node for n8n is an open-source project β and itβs just getting started. You can find the code (and contribute or file issues) on GitHub5. If you encounter a bug, have an idea for a new feature, or want to help improve the node, I welcome contributions and feedback. Even a star π on the repo or a note telling us how youβre using it would be greatly appreciated!
As for whatβs next, hereβs a sneak peek of the roadmap weβre envisioning:
Richer Post Support: Right now, the node focuses on reading data and creating short-form notes. In the future, Iβd love to add support for creating full-length Substack posts (newsletters), complete with formatting, images, and maybe even scheduling capabilities. This would truly open the door to automating your entire newsletter publishing process.
Webhook-Style Triggers: How cool would it be if n8n could react automatically to events on Substack? For example, whenever you get a new subscriber or a new comment on your post, a workflow could trigger. Substack doesnβt offer real webhooks, but we might implement polling triggers in the node as a workaround (checking Substack periodically for changes). Itβs on the radar!
In short, this is an evolving project. Your feedback will shape its future. Donβt hesitate to suggest improvements or report any issues you find. Together, we can make no-code Substack automation even more powerful.
Closing recap
We covered a lot, so letβs recap. By tapping into an unofficial Substack API and the power of n8n, you can now integrate Substack with the rest of your digital life. We went from manually reverse-engineering the API in a previous post to now having a user-friendly, no-code solution that anyone can use. You learned how to install the Substack node, obtain your API key (via a browser cookie hack), and create a simple workflow that posts a Substack Note on your behalf. This is just the beginning β youβre now equipped to automate Substack in whatever ways you find useful, be it content creation, distribution, or analytics.
If youβre interested in the gritty details of how this all came to be, feel free to check out my earlier blog post on reverse-engineering the Substack API for a behind-the-scenes look at the tech.
But the great thing is, you donβt need to worry about that complexity anymore β you can simply drag, drop, and automate.
π οΈ Iβm genuinely excited to see what youβll build with this integration.
Whether itβs a clever automation, a new use case I havenβt thought of, or a feature youβd love to see added - I want to hear it.
π¬ Drop your ideas, questions, or experiments in the comments. Letβs build something cool together. π
Substack may not have given us an official API, but with a little creativity and the right tools, weβve made our own. Now go forth and automate your newsletter to your heartβs content β and happy publishing! π
We need a way to create newsletter draft on this substack node. Is it possible?
If not any plan to add this in node?
So excited I've Restacked & shared with my Ops lead π€