Publish your Airtable content calendar to Facebook and Instagram
Every hour, publish anything scheduled from your Airtable content calendar to your Facebook Page and Instagram account, then mark the row as posted.
Integrations
Airtable
Facebook Pages
Instagram
Type
Categories
- Marketing
- Operations
Every hour, publish anything due from my Airtable content calendar to both my Facebook Page and my Instagram account, and mark the row as posted so nothing double-publishes.
Trigger: cron, every hour.
Step 1. Call Airtable List Records on my content calendar table with a filterByFormula that returns rows where Status is "Scheduled" and Scheduled Time is less than or equal to NOW(). For each returned row, read the caption, image URL, and target platforms fields (target platforms is a multi-select or checkbox indicating Facebook and/or Instagram).
Step 2. For each row, loop through the target platforms:
If Facebook is a target: when there is an image URL, call facebook-pages Upload Page Photo with the image URL and the caption as the message. When there is no image, call facebook-pages Create Page Post with the caption as the message. Capture the returned Facebook post id.
If Instagram is a target: call instagram Create Media Container with the image URL and the caption, then call instagram Publish Media using the returned creation id. Capture the returned Instagram media id.
Step 3. Call Airtable Update Record on the same row to set Status to "Published", Published At to the current time, Facebook Post ID to the id returned by facebook-pages, and Instagram Media ID to the id returned by instagram. This is the guardrail that makes sure the same row never publishes again.
Error handling: if either platform errors while publishing a row, call Airtable Update Record to set Status to "Failed" and write the error message to a Last Error field so I can review and retry manually. Do not throw for the whole run; keep processing the other due rows.
Inputs the workflow needs from me at setup: Airtable base id, table id or name, and the exact field names for caption, image URL, target platforms, scheduled time, status, published at, Facebook post id, Instagram media id, and last error. Also the Facebook Page id and the Instagram user id to post to.
Build this as a code workflow with deterministic nodes: list due rows, branch on target platform per row, publish, then write status back.
What it does
- Checks your Airtable content calendar every hour for rows scheduled to publish now.
- Posts each row to Facebook Page, Instagram, or both, using the caption and image you set on the row.
- Writes the resulting post IDs and a Published status back to the row so nothing double posts.
- If a platform fails, sets the row to Failed with the error message so you can retry manually.
What you’ll need
- An Airtable base with a content calendar table that has caption, image URL, target platforms, scheduled time, and status fields.
- A Facebook Page you can post to.
- An Instagram Business or Creator account linked to that Page.
- A publicly reachable image URL for any post with an image.
How to customize it
- Change how often the workflow runs, for example every 15 minutes instead of every hour.
- Add more target platforms, like a LinkedIn column, without touching the rest of the flow.
- Route failed rows to a Slack channel instead of only marking them as Failed in Airtable.
Use cases
- Content Generation
- Data Sync