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.

Additional information

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

Turn approved Airtable calendar rows into scheduled social posts

Mark a row Approved in your content calendar and the post is scheduled on every channel you picked, at the time you picked, with no copy pasting.

Airtable
bundle.social
Deterministic Code
Auto-screen new Airtable submissions before they go live

Every new community post, review or job listing gets scored against your policy, labeled by topic, and only the risky ones ever reach your team.

Mistral AI
Airtable
Slack Bot
Deterministic Code
Find the influencer posts worth putting ad budget behind

Every weekday at 8am, get five creator posts that are outperforming their own usual numbers, with a one line reason to back each one.

Later
Slack
Airtable
Agentic Task
Keep an auditable vessel port and berth call log in Airtable

Every four hours, log each arrival, departure and docking for your fleet in Airtable so laytime and demurrage claims rest on hard timestamps.

MarineTraffic
Airtable
Slack Bot
Deterministic Code
Recycle your best social posts into fresh scheduled ones

On the first Monday of each month, find the posts that actually performed, rewrite them with a new hook, and schedule them across the next four weeks.

Hootsuite
Airtable
Agentic Task
Send weekly meal plans with one-click grocery ordering

Every Monday, each nutrition client gets a personalized five-dinner plan, shoppable recipe links, and one grocery list they can order in a single click.

Instacart
Airtable
Gmail
Agentic Task

Stop babysitting your Instagram calendar.

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