What's supported
DemandBird publishes to Substack Notes: the short-form social feed on Substack, not the full newsletter. This requires a personal Substack account.
| Feature | Limit |
|---|---|
| Account type | Personal Substack account (Notes) |
| Characters | 10,000 |
| Images | Up to 6 per post |
| Video | Up to 5 minutes |
Install & connect the Chrome extension
Substack publishing runs through the DemandBird Chrome extension. You only need to do this once per machine.
- Install from the Chrome Web StoreInstall the DemandBird Chrome extension โ. Pin it to your Chrome toolbar so it's easy to reach.
- Link the extension to your DemandBird accountClick the extension icon in your toolbar and click Connect Account. A tab opens briefly to pair the extension with your DemandBird account and closes itself when it's done. If the tab stays open, copy the API token and account ID it shows into the extension settings manually.
- Log in to Substack in the same Chrome profileGo to substack.com and make sure you're signed in to the account you want DemandBird to publish from.
- Connect your Substack accountClick the extension icon again, then click Connect Substack Account. The extension captures your active session and links Substack to DemandBird automatically.
What the extension reads and why
When you click Connect Substack Account, the extension reads your active Substack session cookie and hands it to DemandBird so we can publish on your behalf. It isn't used to track browsing activity.
Your session cookie is encrypted at rest and only ever sent back to Substack when a scheduled post is due.
How the connection works
Substack has no public API that allows third-party tools to post on your behalf. DemandBird works around this by using your active browser session.
- You log into Substack in ChromeMake sure you're signed in to your Substack account in Chrome before connecting.
- The extension captures your session cookieThe DemandBird Chrome extension reads your Substack session cookie (the same token your browser uses to keep you logged in). This is what authorizes posts to be published on your behalf.
- The cookie is encrypted and storedYour session cookie is encrypted and stored securely. It is never sent anywhere except back to Substack when a post is being published.
- At publish time, the extension does the postingWhen a scheduled Substack post is due, DemandBird sends it to your Chrome extension, which publishes it to Substack using your session, just as if you had typed and submitted it yourself.
What's required at publish time
Because the Chrome extension does the actual publishing (not DemandBird's servers), three things must be true at your scheduled time:
- Chrome extension is installed
The DemandBird extension must be installed in Chrome and not disabled.
- Chrome is open and running
The extension only runs when Chrome is open. A closed browser means the extension is inactive.
- Your computer is awake
A sleeping or shut-down computer cannot run Chrome or the extension. Schedule Substack posts for times you know your computer will be on.
When posts fail
DemandBird waits up to 3 hours past the scheduled time for the extension to pick up the post and publish it. This grace period covers brief delays like Chrome starting up or the extension reconnecting.
Posts stuck in posting status past the 3-hour grace period are automatically failed when the extension next connects.
If the extension never responds within that window (because your computer was asleep, Chrome was closed, or the extension wasn't running), the post automatically moves to Failed.
Failure reasons you may see
| Error message | What it means |
|---|---|
| Missed scheduled time: your computer was asleep or the extension wasn't running | The 3-hour window passed without the extension checking in. Make sure Chrome is open and the extension is active at your scheduled time. |
| Your Substack session has expired: please reconnect your account | Your session cookie is no longer valid. Reconnect your account in Settings to get a fresh session. |
Retrying a failed post
Every failed post has a Retry button. Before clicking it:
- Confirm your computer is awake and Chrome is open
- Confirm the DemandBird extension is installed and enabled in Chrome
- If the session expired, reconnect your Substack account first (see below)
Reconnecting after a session expires
Substack session cookies can expire after extended periods of inactivity. When this happens, posts will fail with the session-expired error.
- Log in to Substack in ChromeMake sure you're signed in to your Substack account in Chrome before reconnecting.
- Go to Settings โ Connected AccountsFind your Substack connection and click Disconnect.
- Click Connect and authorizeThe extension will capture a fresh session cookie. Your Substack account is now reconnected and ready to publish.