Postiz Integration
How Borker connects to Postiz to schedule and publish content across social platforms.
Postiz is the publishing layer for Borker. Borker generates and approves content; Postiz holds your social account connections and handles the actual posting.
What each system handles
| Borker handles | Postiz handles |
|---|---|
| AI content generation | X, LinkedIn, Farcaster connections |
| Brand voice, topics, scheduling config | Publishing posts at scheduled times |
| Approval queue and review | Post queue management |
| Optimal time calculation | Platform-specific formatting quirks |
| The content calendar | Postiz's own queue/calendar |
You need both working for end-to-end publishing.
Setting up Postiz
Create a Postiz account at postiz.com. Postiz is open source; you can self-host or use their cloud.
Connect your social accounts in Postiz. This is where you authorize X, LinkedIn, Farcaster, etc. Borker doesn't handle these connections directly.
Generate a Postiz API key in Postiz → Settings → API Keys.
Add the key to Borker in Settings → Workspace → API Keys → Postiz field.
Run a test by approving a piece of content and running Process Approved. Check the Borker calendar and Postiz queue to confirm the post appears in both.
Connecting social accounts in Postiz
Social account connections are managed entirely in Postiz, not in Borker. In Postiz:
- Go to Channels or Integrations (depending on Postiz version)
- Add each platform (X, LinkedIn, Farcaster)
- Follow the OAuth flow to authorize Postiz to post on your behalf
Once connected in Postiz, Borker can schedule content to that platform via the Postiz API.
If you enable a platform in Borker but haven't connected it in Postiz, content will generate and schedule normally in Borker, but Postiz will fail to publish it because it has no account connection. Always connect the platform in Postiz first.
The scheduling flow
sequenceDiagram
participant B as Borker
participant P as Postiz API
participant S as Social Platform
B->>B: Process Approved runs
B->>P: POST /posts (content + scheduled time)
P-->>B: { postiz_id: "xyz" }
B->>B: Store postiz_id in content item metadata
B->>B: Update status to "scheduled"
Note over P,S: At scheduled time...
P->>S: Publish post
P-->>B: Webhook: post published
B->>B: Update status to "published"The Postiz badge
When content is scheduled, a Postiz badge appears in the Borker calendar modal for that post. Clicking the badge opens the post directly in your Postiz dashboard.
Use it to:
- Check the exact scheduled time in Postiz
- See the post preview as Postiz will render it
- Make any last-minute edits in Postiz
Canceling a scheduled post
To cancel a post that's already been sent to Postiz:
- Open the post in Borker's calendar
- Click Cancel in the modal
- Borker calls
PostizService.cancelPost(), which deletes the post from Postiz's queue - The content item in Borker reverts to
approvedstatus
The post is now removed from Postiz and can be rescheduled (via Process Approved) or rejected.
Canceling in Borker also cancels in Postiz. You don't need to cancel in both places.
Troubleshooting Postiz integration
"No X account connected in Postiz" Content scheduled in Borker shows as scheduled, but Postiz reports no account for that platform. Fix: connect the platform in Postiz → Channels.
Postiz key invalid The Process Approved workflow fails with an authentication error. Fix: regenerate the API key in Postiz and update it in Settings → Workspace → API Keys.
Post scheduled in Borker but not appearing in Postiz queue
Rare. Usually a timing issue or API timeout. Re-run Process Approved; it's safe to run multiple times and won't double-schedule (it skips items that already have a postiz_id).
Post published in Postiz but still shows "scheduled" in Borker Borker relies on a webhook from Postiz to update status to "published." If the webhook failed, the status won't update. Doesn't affect actual publishing; the post went out fine.