Social Posting Kitfor n8n
Get the kit

Set it up

Test and go live

A manual test publishes to the live Facebook Page. Use one approved row and a caption you are happy to have public.

#Prepare one approved row

In the queue tab:

  1. Give the row a unique id, platform = facebook, a finished caption, and a scheduled_at already in the past (include a timezone offset, for example 2026-11-12T10:00:00+08:00).
  2. Set status = approved.
  3. Leave every other row as draft or pending_approval.

Optional image_url must be public HTTPS. The Sheet link column is not sent to Zernio in this kit; put URLs in the caption if they should appear.

#Run it once

  1. Open the posting workflow. Keep it unpublished.
  2. Click Execute workflow. The Manual Test Run uses the same path as the schedule.
  3. Watch the execution: Lock Row → (skipped) AI Caption Polish → Prepare Post → Publish via Zernio → Mark Posted.
A successful manual run: green path through Lock Row, Publish via Zernio, and Mark Posted.

#What you should see

Place Expected
Queue row approved → publishing → posted. post_id holds the Zernio id and the Facebook post URL, joined with |. posted_at is an ISO timestamp. error is empty.
Facebook Page The caption (and image, if you set image_url) is live.
AI Caption Polish Stays off unless you activated it. The live verification used the original caption.
Zernio returned Post published successfully. Account, post, and platform IDs are boxed.

There is no Google Sheet “after” shot and no Facebook Page screenshot in this kit. Confirm write-back in your own queue tab and open the Facebook Page to check the live post.

If it fails, the row should show failed plus an error. Fix the cause, set status back to approved, and run once more. See idempotency before you change the row id.

#Verified live (11 November 2026)

On n8n 2.47.3, one manual run posted the approved row lumora-001 to the Lumora Coffee Co. Facebook Page through Zernio. Every node on the success path succeeded. Mark Posted wrote status = posted, post_id, and posted_at. AI Caption Polish was deactivated. The workflow was left unpublished, so the 15-minute schedule did not start.

#Publish the schedule

Only after the test looks right, Publish the posting workflow. That is what starts Every 15 Minutes. You can unpublish it at any time to pause publishing.

The Error Handler should already be published and linked. It does not post; it only writes to error_log when a run fails.

The error_log tab uses the header time, workflow, execution_id, execution_url, failed_node, error_message (see error-log-header.csv). There is no error-log screenshot in this kit.

#After you go live

  • Review the queue weekly. Retry a failed row by fixing it and setting status back to approved.
  • If a row is stuck on publishing, check the Page and the execution, then set posted or approved by hand.
  • If Google sign-in dies after about a week, the OAuth app is still in Testing — see setup.
  • Approve planner images within 7 days of upload, or paste a fresh public URL.

Social Posting Kit for n8n: a Google Sheet content queue, a human approval gate, and publishing to a Facebook Page through Zernio.

Checked against n8n 2.47.3. n8n, Google Sheets, Facebook, Zernio, OpenAI, xAI and OpenRouter are trademarks of their owners; this kit is not affiliated with them. Sample data is fictional.