How-to Guide

How to Connect Airtable to Social Media

Quick Answer: Model your content calendar as an Airtable table (media attachment, per-platform captions, publish datetime, timezone, status). An n8n workflow — or a native Airtable Automation with a script step — watches for records flipped to Ready, sends them to DOHOO's schedule endpoints, and writes the resulting status back. Airtable stays the single source of truth; DOHOO does the publishing.

Plan note: REST API and MCP workflows require Business or Agency.

Teams outgrow spreadsheets when they need approval flows, linked records, and views per person. Airtable gives you that — this guide gives it a publish button.

Step 1 — Design the Base

Field Type Purpose
Media Attachment video/image (Airtable serves a direct URL)
Caption_Long Long text Instagram/TikTok (≤2,200) / LinkedIn (≤3,000)
Caption_Short Single line X (≤280) / Threads (≤500)
Platforms Multiple select tiktok, instagram, youtube, linkedin…
Publish_At Date+time local wall-clock publish time
Timezone Single select IANA names (America/New_York…)
Status Single select Draft → Review → Ready → Scheduled → Published / Failed
Error Long text write-back for failures

The Status pipeline is the approval flow: writers draft, an editor flips to Ready, automation handles the rest — nothing publishes without a human gate.

Step 2 — The Automation Bridge

n8n (recommended):

  1. Airtable Trigger — record enters view "Ready"
  2. HTTP Request → DOHOO dohoo_upload_from_url — pass the attachment's URL; the server fetches the file and returns a permanent fileUrl (attachment URLs expire, so importing into the media library is essential, not optional)
  3. HTTP Request per selected platform — schedule with Publish_At + Timezone from the record
  4. Airtable UpdateStatus = Scheduled, store the post ID

Native Airtable Automation: trigger "record matches conditions" → Run script step performing the same two fetch() calls with your X-API-Key.

Step 3 — Status Write-Back

A daily n8n cron queries DOHOO's scheduled posts (status: "all"), matches stored post IDs, and updates each record to Published — or Failed with the exact errorMessage in the Error field. Your base becomes an auditable publishing log: every record shows whether it truly went live, and if not, why. That's the failure visibility legacy schedulers don't give you.

Why This Beats Posting from Airtable Directly

Airtable can't talk to 8 social APIs, refresh OAuth tokens, or respect per-platform media specs. The DOHOO layer handles TikTok visibility settings, Instagram's JPEG-only carousels, YouTube titles ≤100 chars, X's 280-char budget — your base stays clean data.

FAQ

Do Airtable attachment URLs work as media sources?

Yes, but they're temporary — always run them through dohoo_upload_from_url so publishing uses a permanent media-library fileUrl.

Can different records target different platform sets?

Yes — the Platforms multi-select drives which schedule branches fire per record.

How do approvals work?

Nothing publishes until a human flips Status to Ready — Draft and Review records are invisible to the automation.

Google Sheets instead?

Same pattern, simpler stack: Post from Google Sheets.

Publish to all 8 platforms in one step — no silent failures.

View DOHOO plans