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:
- Give the row a unique
id,platform = facebook, a finished caption, and ascheduled_atalready in the past (include a timezone offset, for example2026-11-12T10:00:00+08:00). - Set
status = approved. - Leave every other row as
draftorpending_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
- Open the posting workflow. Keep it unpublished.
- Click Execute workflow. The Manual Test Run uses the same path as the schedule.
- Watch the execution: Lock Row → (skipped) AI Caption Polish → Prepare Post → Publish via Zernio → 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. |
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
failedrow by fixing it and settingstatusback toapproved. - If a row is stuck on
publishing, check the Page and the execution, then setpostedorapprovedby 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.