Auto-publish scheduled Instagram posts from Airtable

Turn your Airtable content calendar into a hands-off Instagram publisher. Every 15 minutes, due rows post themselves and the calendar updates with the result.

Deterministic Code
AirtableInstagramMarketingOperationsContent GenerationData Sync
PromptCreate

Build a code workflow that publishes scheduled Instagram posts from an Airtable content calendar. Trigger: cron every 15 minutes.

Step 1. Use Airtable List Records against my Content Calendar table. Filter to rows where status is exactly "Ready" and scheduled_at is less than or equal to now. Assume the table has these fields: status (single select: Ready, Published, Failed), scheduled_at (dateTime), caption (long text), image_url (URL), video_url (URL), media_type (single select: image, video, reel), instagram_media_id (single line text), published_at (dateTime), notes (long text). Base id, table id, and Instagram IG User ID should be workflow inputs.

Step 2. Before processing rows, call Instagram Check Publishing Limit for the account. If the account has already used its 50-posts-in-24-hours quota, stop the run early and exit cleanly (do not fail the row). If quota is available, iterate rows one at a time so a single failure does not halt the batch.

Step 3. For each due row, call Instagram Create Media Container. Pass image_url when media_type is image, otherwise pass video_url and set media_type to VIDEO or REELS to match the row. Include the row's caption. Capture the returned creation id.

Step 4. If media_type is video or reel, poll Instagram Get Media on the creation id, requesting the status_code field, every 5 seconds up to a 2-minute budget, until status_code returns FINISHED. If it returns ERROR or EXPIRED, treat this as a failure. For image containers, skip the poll and go straight to publish.

Step 5. Call Instagram Publish Media with the creation id. Capture the returned instagram media id.

Step 6. On success, call Airtable Update Record on that row: set status to "Published", write the returned instagram media id into instagram_media_id, and stamp published_at with the current timestamp.

Step 7. On any failure during steps 3 to 5 (container error, poll timeout, publish error), call Airtable Update Record on that row: set status to "Failed" and write the error message into notes. Do not throw. Move on to the next row.

Notes: Instagram publishing is capped at 50 posts per rolling 24 hours per account. Media URLs must be publicly reachable by Meta. Only Instagram Business or Creator accounts can publish via the API. Keep the flow deterministic, no LLM calls in the loop.

What does this prompt do?

  • Watches your Airtable Content Calendar every 15 minutes and picks up any row marked Ready with a scheduled time in the past.
  • Publishes the row's photo, video, or reel to Instagram using the caption and media link from the calendar.
  • Writes the result back to the same row: status flips to Published, the Instagram post link is saved, and the published time is stamped.
  • If a post fails or the daily posting quota is hit, the row is marked Failed with the reason so you can review it.

What do I need to use this?

  • An Airtable base with a Content Calendar table that has columns for status, scheduled time, caption, and a media URL.
  • An Instagram Business or Creator account connected through Facebook, with permission to publish content.
  • Publicly reachable image or video links in the calendar (Instagram cannot pull from private storage).

How can I customize it?

  • Change how often it checks the calendar, from every few minutes to once an hour.
  • Rename the status values or add extra filters, for example only publishing rows tagged with a specific brand or channel.
  • Add a Slack or email notification whenever a post fails so your team sees it right away.

FAQs

Do I need a paid Airtable plan?
No. Any Airtable plan that gives you access to your base works, including the free plan. You just need columns for status, scheduled time, caption, and media URL.
Does this work with a personal Instagram account?
No. Instagram only allows automated publishing from Business or Creator accounts that are linked to a Facebook Page. Personal accounts are not supported by Instagram itself.
Can it post reels and videos, not just photos?
Yes. The workflow detects whether the row has a photo or a video and handles both. For videos and reels it waits for Instagram to finish processing before publishing.
What happens if Instagram is at its daily posting limit?
Instagram allows 50 posts per account in a rolling 24 hour window. If the account is at the limit, the workflow skips that row for now and picks it up on the next run once the window opens up.
How do I stop a post from going out?
Change the row's status in Airtable to anything other than Ready, or move the scheduled time into the future. The workflow only picks up rows that are marked Ready and due.

Related templates

Creator roster board for rebook, test, or pause calls

Decide who stays on your creator roster after every campaign, with each creator's real numbers on screen and every call recorded where the team can see it.

Later
Airtable
Slack Bot
App
Run your nutrition clients' weekly meal plans from one console

See who is due, build a week of dinners on demand, swap anything you do not like, then send the recipe and grocery links yourself.

Instacart
Airtable
Gmail
App
Benchmark your Instagram account against rival brands

See follower growth, posting cadence, format mix and engagement rate for your brand and every competitor you track, side by side on one board.

Instagram
Google Sheets
Google Docs
App
Instagram UGC rights tracker and repost approval board

See every customer photo that tags your brand, ask for permission in one click, and repost only once a yes is on the record.

Instagram
Airtable
Slack Bot
App
Instagram comment and DM triage inbox for your team

Work every unanswered Instagram comment, Reel reply and Direct message from one queue, with claimed rows so two people never answer the same person.

Instagram
HubSpot
Slack Bot
App
A verification desk for every document your team scans

See every scan next to the details pulled out of it, correct anything wrong, and let only verified numbers reach your ledger sheet.

JigsawStack
Airtable
Google Sheets
App

Stop babysitting your Instagram calendar.

Connect Airtable and Instagram once, and Geni publishes every scheduled post for you on time.