Cross-post approved videos from Airtable to TikTok and Reels

When a row in your Airtable content calendar is marked Approved for Cross-Post, publish the video to both TikTok and Instagram Reels with captions rewritten for each platform.

Agentic Task
AirtableTikTokInstagramSlackMarketingOperationsContent GenerationData SyncNotifications & Alerts
PromptCreate

Build me an agent that cross-posts approved short videos from a single Airtable content calendar to TikTok and Instagram Reels, adapting the caption for each platform.

Trigger: poll Airtable for a new or updated record where a Status field becomes "Approved for Cross-Post". Each row has a video attachment (a public Airtable-hosted URL), a primary caption written for TikTok, a target hashtags field, and an optional Reels-specific caption override.

When a row fires, the agent should do the following, in order:

1) Call TikTok Query Creator Info to confirm posting is currently allowed for this creator and read the allowed privacy levels. Pick the most public privacy level that is allowed. If posting is blocked, skip TikTok and record the reason back to Airtable.

2) Call TikTok Direct Post Video using PULL_FROM_URL with the row's video URL, the primary caption combined with the hashtags, and the chosen privacy level. Then poll TikTok Fetch Publish Status until the status is PUBLISH_COMPLETE or a terminal failure. Capture the resulting publish id.

3) Produce a Reels caption. If the row's Reels caption override is set, use it verbatim. Otherwise rewrite the primary caption for Instagram Reels: keep it tighter, drop TikTok-specific slang like "fyp" or "pov", keep the hook in the first line, and swap in Reels-appropriate hashtags (fewer, more discovery-oriented). Do not invent claims that were not in the original caption.

4) Call Instagram Create Media Container with the same video URL, the adapted Reels caption, and media_type set to a Reel. Poll the container's status until it is ready, then call Instagram Publish Media on the returned creation id. Capture the published media id.

5) Call Airtable Update Record on the source row to write: the TikTok publish id, the Instagram media id, a per-platform status (Posted, Failed, or Skipped), the final Reels caption that was used, and any error code or short reason if a platform failed.

6) Call Slack Send a Message to a channel the user will configure with a compact summary: the row's title, both statuses, direct links or ids for each publish, and a one-line note if either platform failed.

Rules and edge cases: treat TikTok and Instagram independently, so if one fails the other still runs and the Airtable row still gets updated for the platform that succeeded. Do not re-post a row whose Status is already "Cross-Posted". If the video attachment is missing or the URL is not reachable, skip both platforms and write a clear error back to Airtable and Slack. Keep the caption rewrite step deterministic in tone, using the brand voice implied by the primary caption, and never exceed each platform's caption length.

An agent is the right shape for this workflow because the caption rewrite between TikTok and Instagram Reels is a judgement call, not a template swap, and the agent needs to reason about which parts of the original caption to keep, cut, or reword.

Additional information

What does this prompt do?
  • Watches your Airtable content calendar and picks up any row that flips to Approved for Cross-Post.
  • Publishes the attached video to TikTok with your primary caption and hashtags, and waits until the post is live.
  • Rewrites the caption for Instagram Reels, keeping it tighter, dropping TikTok slang, and swapping in Reels-friendly hashtags. Uses the row's Reels override if you filled one in.
  • Publishes the same video to Instagram Reels and writes both publish IDs, per-platform status, and any error back onto the Airtable row.
  • Sends a short Slack summary so your team knows what went live where.
What do I need to use this?
  • An Airtable base with a content calendar that has a Status field, a video attachment column, a primary caption, hashtags, and optional Reels caption override.
  • A TikTok account connected with permission to post video content.
  • An Instagram Business or Creator account with permission to publish media.
  • A Slack workspace and a channel where the summary should be posted.
How can I customize it?
  • Change the Status value the agent watches for, or add extra filters like Author or Campaign.
  • Tell the agent how you want Reels captions rewritten. Shorter, no emoji, brand voice, whatever fits your feed.
  • Point the Slack summary at a different channel, or add teammates to tag when a post fails.

Frequently asked questions

Do I need a business Instagram account?
Yes. Instagram's publishing API only works with Business or Creator accounts, not personal ones. Your account also needs to be linked to a Facebook Page you manage.
What kind of TikTok account do I need?
A TikTok account you can log into with permission to post videos. Brand new apps sometimes post privately by default until TikTok reviews them, so you may want to test with a private post first.
Where does the video file come from?
From your Airtable row. The agent uses the attachment's public Airtable URL, so both TikTok and Instagram can fetch the video directly. You do not need to upload files anywhere else.
What happens if one platform fails but the other succeeds?
The agent writes each platform's status back to the Airtable row independently and calls out the failure in the Slack summary, so you know exactly which one needs a retry.
Can I use a different caption for Reels?
Yes. If you fill in the Reels caption override column on the row, the agent uses it as-is. If you leave it blank, the agent rewrites your TikTok caption to fit Reels.

Stop copy-pasting captions between TikTok and Reels.

Approve a row in Airtable once and Geni handles the double publish, the caption rewrite, and the status update.