Chapter 08 · Publishing
How publishing works in Serpio
Approve an article, choose where it goes, and Serpio creates it there once. The two settings every connection has, the five native destinations, the plan gate, and where to see results.
Updated Sep 19, 2026 · 6 min read
On this page
Publishing in Serpio has three parts. You approve an article, you choose the destinations it should go to, and Serpio creates it at each destination one time. The rest of this page is the detail behind those three steps.
From approved article to destination
- 1
Approve the article
An article has to be approved before it can be sent anywhere. Approval also freezes a content snapshot: the title, body, summary, keywords, and hero image as they are at that moment. Every destination in the same send receives that snapshot, even if you keep editing afterwards. See Approval and auto-publish.
- 2
Choose destinations
Press Publish in the article workspace. The Publish article dialog lists your connected destinations under the prompt Select where to publish. Each row shows what will happen there: Save as draft, Publish live, or for a webhook, Send to webhook · visibility managed by receiver. Tick the ones you want and press Publish.
- 3
Serpio delivers
If the hero image is still generating, Serpio waits for it. Then it sends the frozen snapshot to each selected destination and the dialog switches to a results view with one row per destination.
The two settings every connection has
Every connection carries the same two choices. You set them when you connect and can change them later from the connection card under Connections.
- Scheduled articles
- Review before sending is the default and keeps scheduled output in Serpio. Send automatically sends scheduler-created articles to that destination without another click.
- When Serpio sends an article
- Create a draft is the default: "Review it once more in the destination." Publish live reads "Make it visible to readers immediately." A webhook has one option here, Create destination item, because your receiver decides visibility.
Changing these settings never touches anything already sent. The dialog says so directly: "Changes apply to new deliveries. Already sent articles keep their confirmed status; choosing live does not publish an existing platform draft." If you switch a connection from draft to live, the drafts it created earlier stay drafts until you publish them in the destination.
Native connections and guided exports
A native connection is a saved credential for a destination; Serpio creates the post there for you. A guided export gives you the article in a format that suits a platform, plus the steps to paste it in yourself. Exports work for every platform, including ones Serpio has no connection for.
| Question | Native connection | Guided export |
|---|---|---|
| Who creates the post | Serpio, through the destination's API | You, by pasting or uploading |
| Plan | Any paid plan | Every plan, including Free |
| Draft or live | Your choice per connection | Whatever you choose in the platform |
| What Serpio records | The confirmed state, a link, and any notes | An export; you can mark it live afterwards with the URL |
On the Free plan the connection cards still show, but connecting one returns the message "Native publishing connections are available on every paid Serpio plan. Manual exports remain available on Free." A connection on an account that dropped to Free shows an Upgrade pill until the plan changes. Read Guided exports and Publishing without a connection for the export path.
The five native destinations
| Destination | How you connect | What Serpio creates | Draft or live |
|---|---|---|---|
| WordPress | WordPress.com sign-in, or a Site URL, username, and Application Password for a self-hosted site | A post with title, HTML body, excerpt, slug, and featured image | Both |
| Ghost | Ghost site URL and an Admin API key | A post with HTML body, excerpt, feature image, SEO fields, and tags | Both |
| Blogger | Google sign-in in a popup, then a Blog choice | A post with HTML body, hero image, and labels | Both |
| DEV / Forem | Forem URL and an API key | A Markdown article with cover image, description, and up to four tags | Both |
| Webhook | An HTTPS URL and a signing secret | A signed JSON request that your own code handles | Receiver decides |
Each one has its own guide: WordPress, Ghost, Blogger, DEV and Forem, and Webhook. More destinations are being added. LinkedIn and X are deliberately not publishing connections; Serpio never asks for social account access.
One article, one destination, one time
A native delivery is created once per article and destination pair. After the destination confirms a post, Serpio never edits it, never promotes a draft to live, and never sends it again. If you edit the article in Serpio afterwards, the copy at the destination does not change. If you want the new version there, you make the change in the destination.
The results are strict about state for the same reason. A row reads Draft saved when the destination confirmed a draft, Live when it confirmed a live post, and Created for a webhook, where Serpio only knows that your receiver accepted the request. If Serpio asked for a draft and the destination reported a live post, the results say Published live instead of draft rather than hiding the difference.
Where to see what happened
- The Publish article dialog shows the result for each destination as it is confirmed, with a link such as Open draft or View live article and an expandable Delivery details section listing any notes.
- The same dialog has a Publishing history toggle for earlier attempts on that article.
- Each connection page under Connections has a Recently sent list and shows Last sent and Last checked times.
- Article cards show a platform count with the confirmed state for each destination.
Three results need something from you. Check destination means the destination did not answer clearly, usually a timeout or a server error; Serpio will not retry until you confirm the article is absent there. Retrying shortly means the destination asked Serpio to slow down and a retry is scheduled. Publishing failed means the destination rejected the request, often because credentials expired, in which case the connection card changes to Reconnect. Publishing history and retries covers each case, and Troubleshooting connections covers the connection side.
Checking a connection without sending anything
Open any connected card and press Test connection. Serpio re-verifies the saved credentials and, where a destination was chosen, that it is still visible to that account. No post is created. A passing test shows "Credentials and destination are reachable." A failing one leaves the connection in place and sets the card to Reconnect or Needs attention depending on the cause.
Common questions
Can Serpio update a post it already published?
No. A delivery is one-time. Edit the post in the destination, or export the new version and paste it in yourself.
If I switch a connection to Publish live, do my earlier drafts go live?
No. Already sent articles keep their confirmed status. Only new deliveries use the new setting.
Do I need a paid plan to publish at all?
No. Free includes guided exports for every platform. Paid plans add native connections that create the post for you.
Can I send one article to several destinations?
Yes. Tick as many connected destinations as you want in the Publish article dialog. They all receive the same frozen snapshot.
Related guides
Manual and scheduled publishing
How manually generated articles differ from scheduler-created articles, and how each destination controls scheduled delivery.
Read guideGuided exports: copy or download an article for any platform
How the Export article dialog works, what each download format contains, what survives a paste, and what exporting does not do.
Read guidePublishing history, delivery statuses, and retries
What each publishing status means, what Publishing results and Publishing history show, when Serpio retries on its own, and how to retry safely after an uncertain delivery.
Read guide