docs · product guide
Posts & publishing
Posts is the queue of everything that goes out under your name: original posts drafted on a cadence, posts drafted from a share-of-model plan item or a brief, rendered video, and replies to matched conversations. Everything waits for a tap unless you set a platform to publish itself.
Where drafts come from
| source | what it uses | how to trigger |
|---|---|---|
| What we know | Every draft carries the five closest items from the knowledge store (facts you added, news, Alexandria, your stack), dated, for the drafter to lean on where it makes the post stronger | Automatic on every drafting run |
| Your news, on Topics | A line you typed on Content · Topics (what shipped, a number, a story), with any detail and link. Pinned, drafts before every other source | Automatic on the plan, "Draft posts" on the row, or draft_posts with topic_id |
| A pick from Trending, on Topics | A trend, a rising cluster, or a read you added to Topics from Listening · Trending, with its bridge line | Automatic on the plan (it counts as the topical post), "Draft posts" on the row, or draft_posts with topic_id |
| What is trending today | A daily scan of what is being talked about (the corpus velocity leaders plus a live news search), scored for fit with your buyers, with the bridge line from headline to their problem | Every third post on the plan, or draft_posts with trending: true |
| Share-of-model plan | A plan item's title, angle, the buying question it answers, and the engines that skipped you | "Draft post" on the plan item in Share of model |
| What people said this week | Verbatim phrasings from hot matches, grouped by intent | The plan, or draft_posts with lead_ids |
| Your content angles | Brain content angles rotated across segments, least used first, with the angles your audience rewarded coming back sooner | The plan |
| A brief | One idea you type | Posts, "Draft from a brief" |
| More like this | A post you liked, same idea family, different take | The post drawer |
| Cross-post | The same post reshaped for other platforms (LinkedIn, X, Bluesky, Threads, Substack Notes, Mastodon, Facebook, and more), every claim kept, the graphic carried over | "Cross-post…" on the post, or cross_post with a list of platforms |
Every draft is written for its platform: 280 characters on X, 300 on Bluesky, 500 on Threads, a standalone hook line and short paragraphs on LinkedIn, captions for TikTok and Instagram. Rejections with a reason and posts you approved become standing rules the drafter reads next time. A drafting run is 1 credit for up to three variants on one platform. Running the same topic again, “more like this”, cross-posting, and edits are free.
The posting plan
Per platform, in Settings under “Posting plan”: how many posts a week (off, 1, 3, 7, 14, 21, 35, 70) and whether each draft waits for your approval or publishes itself. Oetzi drafts on an hourly clock, one post at a time, so 21 a week is one every eight hours, never a batch. Open rows on Topics draft first. After that, one in three posts is topical, the other two deliver knowledge. Each platform is capped at what it tolerates in a day (LinkedIn 3, X 10, TikTok 4) and manual posts count toward the cap. Seven a week is about 30 credits a month, one a week about 4.
Review
Approve, edit the text in the drawer, reject with a reason, or ask for more like this. The verdict strip at the top shows what is waiting, scheduled, posted this week, and failed. Failed posts carry the platform's error and can be retried after a fix.
Publishing
Publish sends the post now through the account that can reach its platform. Oetzi prefers a directly connected account and otherwise routes through Postiz to the matching channel. A published post records its platform id and URL, joins the corpus so people pulls run on it, and marks its plan item done. Publishing is free (X's pay-per-use fee is Oetzi's cost, never metered to you).
Connected accounts
| account | what it does | status |
|---|---|---|
| Postiz | Originals and rendered video to every channel you connected in Postiz: LinkedIn, X, Threads, TikTok, Instagram, YouTube, Bluesky, Facebook, Pinterest, and more | available |
| Bluesky (direct) | Originals and replies to matched conversations, with an app password | available |
| LinkedIn (direct) | Replies to matched conversations as comments | coming soon |
| X (direct) | Replies to matched conversations | coming soon |
Replying to someone else's post needs a direct connection, which is why those two rows read coming soon. Until then the reply panel gives you two drafts to copy and the conversation's link. See Postiz setup for the walkthrough.
Publishing itself
Set a platform to “publish itself” and every draft goes out under your name about half an hour after it is written, only when an account can publish there. Replies have their own switch under “Replies”: wait for a tap, or reply on your behalf the moment a hot match lands (native accounts only, Postiz cannot reply to someone else's post). Both are off by default. Watch Posts the first few days: every rejection with a reason becomes a standing rule, and the posts that perform become the register the drafter matches.
The scoreboard
Every published post is read back at 24 hours, 72 hours, and 7 days: impressions, likes, comments, and shares from Postiz analytics for Postiz channels, the counts of your own people pull otherwise. Followers, impressions, and engagement per Postiz channel are snapshotted daily. get_post_performance (and the Posts page) rank posts by an engagement score and average it by topic kind, by content angle, and by platform, which is how the plan learns what your audience rewards. Free.
Rendered video
In the Library, an accepted video or carousel has “Publish via Postiz” when a Postiz account is connected: pick the channel, edit the caption, publish. The file uploads to Postiz and posts to that channel. Your own posts then get their engagers pulled at 24 hours, 72 hours, and 7 days when the switch in Settings is on.
For agents
list_posts, get_post, create_post, draft_posts, cross_post, review_post, publish_post, post_reply, get_posting_plan, set_posting_plan, and the post.published event. Publishing needs a key with the post scope and approved: true.