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):
- Airtable Trigger — record enters view "Ready"
- HTTP Request → DOHOO
dohoo_upload_from_url— pass the attachment's URL; the server fetches the file and returns a permanentfileUrl(attachment URLs expire, so importing into the media library is essential, not optional) - HTTP Request per selected platform — schedule with
Publish_At+Timezonefrom the record - Airtable Update —
Status = 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.