RemarkableCloud

Turn Blog Posts and Changelogs into Social Posts with n8n and Zabio

Set up an n8n workflow that drafts posts for X, LinkedIn, Threads, Bluesky, Facebook, Instagram and TikTok from your feed, changelog or any URL, sends you a WhatsApp review link and publishes through Upload-Post or Blotato.

Updated November 2026

This template turns what you already publish into social posts. It reads your blog feed and your changelog every 2 hours, or takes any URL you paste in a form. For each new item, Zabio writes a post for every network you use and draws an image when one is needed.

Nothing goes out on its own. You get a WhatsApp message with a link to a review page: every post in an editable box, the image, the networks to tick, and three choices: publish now, schedule, or don’t publish. Upload-Post or Blotato does the publishing, and the page shows the result for each network.

How it works

PartWhat it does
SourcesEach row in social_sources is an RSS or Atom feed, a changelog page or a single page, with its brand, language and networks.
New itemsFeeds give one item per entry. Changelog pages give one item per h2 heading (or per ## heading in plain Markdown). The first run of a source drafts only the newest item and marks the rest as seen. Each source keeps its own history, so two brands reading the same feed each get their own draft.
DraftingEach item runs as its own execution. The workflow reads the full article, and Zabio writes every format in one structured call.
Clean-upCode replaces em and en dashes, removes markdown bold, trims each text to its network’s limit and adds the link where the network shows it.
ImageZabio draws one image, without text or logos, when Instagram or TikTok are on, or for every post if image_mode is all.
ReviewA WhatsApp template message brings the review link. The page waits 48 hours, then the draft is marked expired.
PublishingUpload-Post or Blotato, chosen per source. Results and links are saved in social_posts.
NetworkWhat it draftsLink
XA post of up to 280 characters, and a thread of 3 to 5 postsAt the end of the post, and of the thread’s last post
LinkedIn500 to 1200 characters in short paragraphsAt the end, with a link preview
ThreadsUp to 500 charactersAt the end
BlueskyUp to 300 charactersAt the end, with a link preview
Facebook200 to 500 charactersAt the end, with a link preview
InstagramA caption and the imageNone, since links in captions don’t open
TikTokA photo post with the image, a title and a captionNone

What you need

ItemWhereNotes
n8nYour own n8n, or n8n on a RemarkableCloud AI serverBuilt-in nodes only. It must be reachable from the internet, because the review page and the image link run on it.
A Zabio API keyzabio.aiWrites the posts and draws the images.
Upload-Post or Blotatoupload-post.com or blotato.comConnects your social accounts and publishes. You need one of them.
WhatsApp Cloud APIMetaSends you the review link. The WhatsApp assistant guide explains how to get a number and its credential.

Step 1: Import the template

Download the workflow file from the template page. In n8n, open Workflows, choose Import from File and select it. It arrives inactive, with empty credentials.

Step 2: Create the data tables

In n8n, go to Data tables and create two tables with exactly these names.

social_sources, one row per feed, changelog or page:

ColumnTypeWhat goes in it
source_idStringA short name, like blog or changelog.
activeBooleanfalse pauses the source.
typeStringrss, changelog or page.
urlStringThe feed, the changelog page, or the page.
brandStringThe name the posts speak for, like Acme Plumbing.
languageStringen or es: the language of the posts, the review page and the results.
platformsStringA JSON list of networks: ["x", "linkedin", "threads", "bluesky", "facebook", "instagram", "tiktok"].
x_formatStringpost or thread: which X version the review page selects first.
voiceStringHow the brand writes, in a sentence or two. Leave it empty for direct, plain copy.
hashtagsStringHashtags you like to use, like #plumbing #miami.
image_styleStringThe look of the images, like flat illustration, navy and light blue.
image_modeStringvisual (images for Instagram and TikTok only), all or none.
publisherStringupload-post or blotato.
upload_post_userStringYour Upload-Post profile name.
blotato_accountsStringA JSON object with Blotato account IDs, like {"x": "1234", "linkedin": "5678"}.
facebook_page_idStringThe Facebook page to post on. Required for Blotato.
linkedin_page_idStringA LinkedIn company page ID. Empty posts to the personal profile.
approver_whatsappStringThe number that reviews, with country code.
max_newNumberHow many new items to draft per run. 1 is a good start.

social_posts, filled in by the workflow: post_id, token, source_id, item_key, item_title, item_url, item_text, status, drafts, image_b64, image_prompt, results, created_at, decided_at (all String) and cost_micros (Number).

Tip: A changelog works best when each release has its own h2 heading with an id, like most documentation tools produce. The workflow posts each new heading once.

Step 3: Connect your social accounts

Upload-Post

  1. In Upload-Post, create a profile and connect the social accounts to it. Its name goes in upload_post_user.
  2. Copy your API key.
  3. In n8n, create a Header Auth credential: Name Authorization, Value Apikey YOUR_UPLOAD_POST_KEY.
  4. Select it in Post Text (Upload-Post) and Post Image (Upload-Post).

Blotato

  1. In Blotato, connect the social accounts and copy your API key.
  2. Copy the ID of each connected account into blotato_accounts, using the keys x, linkedin, threads, bluesky, facebook, instagram and tiktok. Blotato’s API docs show where to find them.
  3. In n8n, create a Header Auth credential: Name blotato-api-key, Value your key.
  4. Select it in Host Image On Blotato and Post (Blotato).

Step 4: Create the WhatsApp template

WhatsApp only lets a business message someone first with an approved template.

  1. In WhatsApp Manager, create a Utility template named content_review, with this body: “New posts for {{1}} are ready: {{2}}. Review and publish here: {{3}}”
  2. Wait for Meta to approve it.
  3. Select your WhatsApp credential in Send Review Link.

For a Spanish template, use language es and set wa_template to content_review|es in the next step.

Step 5: Credentials and settings

Select the Zabio credential (Header Auth: Name Authorization, Value Bearer YOUR_ZABIO_KEY) in Write Posts With Zabio and Draw Image With Zabio. Then open Social Settings:

FieldDefaultWhat it does
n8n_urlYour n8n address, like https://n8n.yourcompany.com. The review page and Blotato load the image from it.
zabio_modelauto/balancedThe model that writes the posts.
image_modelautoThe image model. auto picks the lowest-priced model that makes the size.
image_size1024x1024Square works on every network.
wa_phone_number_idYour WhatsApp phone number ID.
wa_templatecontent_review|enThe template name and language.
review_hours48How long a draft waits for you.
timezoneAmerica/New_YorkThe time zone of the times you type when scheduling.

Step 6: Activate and try it

  1. Activate the workflow. The image link and the review page answer only while it is active.
  2. Open the Post From a URL trigger, copy its production URL and open it in a browser.
  3. Paste the address of one of your pages and the source_id of a row, and submit.
  4. A minute or two later, the WhatsApp message arrives. Open the link, check the posts and submit.

From then on, the feeds and changelogs are read every 2 hours.

The review page

  • What to do: publish now, schedule, or don’t publish.
  • Publish at: the date and time for scheduled posts, like 2026-11-05 09:30, in the time zone of Social Settings.
  • Publish on: the networks. Untick any you don’t want this time.
  • On X, publish: the single post or the thread. In the thread box, each paragraph is one post.
  • Image: adds the image to the text posts too, when image_mode is visual.
  • One box per network, already filled in. Whatever you change is what gets posted.

After you submit, the same page shows each network’s result, with a link where the network returns one, and what the post cost in AI.

What it costs

The template is free. Zabio bills each post’s text and image at its own prices: one call writes every format, and the image is most of the cost. Each result page shows the exact amount. Upload-Post and Blotato charge for their plans, and Meta charges for template messages at its own rates.

Troubleshooting

SymptomLikely causeFix
No WhatsApp messageThe template isn’t approved, or approver_whatsapp is wrongCheck the template status in WhatsApp Manager and the number’s country code. Open Send Review Link in the execution for Meta’s error.
The review page shows no imagen8n_url is wrong, or the workflow isn’t activeSet n8n_url to the address you use to open n8n, and activate the workflow.
Nothing drafted from a feedThe first run only records what is thereWait for the next new item, or paste a URL in the form.
Every changelog entry looks newThe headings have no id and their text changesGive each release heading a stable id.
“no account ID for x in blotato_accounts”The JSON is missing that networkAdd the key, like "x": "1234".
“facebook_page_id is empty”Blotato needs the pageAdd the numeric page ID to the source.
Instagram or TikTok skippedNo image was madeCheck Draw Image With Zabio in the execution. 402 insufficient_credits means the Zabio balance is empty.
A network shows “Failed”The account was disconnected at Upload-Post or BlotatoReconnect it there and publish again from their dashboard.

Still stuck? Open a ticket. If your n8n runs on a RemarkableCloud server, an engineer can look at the workflow with you.

Next steps

Still stuck? Ask a human, we answer in minutes.