Put a finished Reel on the calendar
Start with Instagram or Meta Business Suite if you want to prepare and schedule it yourself.
Follow the scheduling stepsFinished video · Human review · Checked outcome
Instagram automation can handle repetitive publishing work while you keep control of the content. With Postdom, an agent submits a finished Reel you provide, follows your account's approval rules and reads the publishing result. It does not create the video or automate DMs, comments, likes or follows.
Use it for a product walkthrough, campaign clip or other finished Reel that someone needs to approve. If all you need is a calendar slot, the Instagram scheduling guide is the simpler starting point.
Start with Instagram or Meta Business Suite if you want to prepare and schedule it yourself.
Follow the scheduling stepsUse Postdom when your workflow needs a supplied video, human-owned approval and a post ID you can follow through publication.
Build the reviewed workflowThat is an inbox or moderation workflow, not Postdom's publishing service. Check the specific tool's supported actions and permissions; don't assume a scheduler also handles replies.
Postdom publishes supplied videos to TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky. This example uses only Instagram. It is not a general-purpose social account bot.
Suppose your team has finished a campaign video. The agent can handle the submission and follow-up; the human still decides whether this exact Reel belongs on the account.
A human connects an eligible Instagram professional account in Postdom Accounts. For this first workflow, the human selects per-post review (L1). The agent reads workspace status, connected accounts and the brand brief before preparing a request. A failed connection or policy check is a stopping point.
Meta's current content-publishing guide covers professional accounts and different login paths. Follow the authorization flow offered for your connection; do not assume every path has identical Page or token requirements. This is separate from eligibility for Instagram's native app scheduler.
Keep the workspace key in private client configuration, not in chat, source control or the video brief. A human completes authorization; the agent does not need the Instagram password. Use the configuration in Accounts, or follow the tested Claude Code connection walkthrough.
Supply an accepted video URL or a workspace media handle already marked stored. Watch the video, check the caption and intended account audience, and confirm that the AI-generated disclosure is truthful. Agree on a future time and timezone if scheduling. Stop if a required setting or creative feature is unavailable.
Check the caption and Reel dimensions and requirements before handoff. A caption check is not a full video inspection. Keep required music, effects or tags in the creative plan; use another suitable publishing path when the connected tool does not provide them.
This example starts with an accepted video URL or a handle that get_media reports as stored. The public MCP release does not yet include the measured metadata required for a new upload request. A fix in repository source is not a published-package update. Arrange the media handoff first; do not invent a URL or pass a local file path as uploaded media.
After the human confirms the content and settings, the agent calls publish_video with the returned Instagram providerAccountId, the supplied media, caption, intent and a stable idempotency key. A scheduled request also includes the agreed time converted to UTC. Return the post ID and its actual status; submission does not approve the post.
Use the returned providerAccountId, not an Instagram handle or Postdom's internal account id. Keep an agreed local time and timezone in the review brief, then convert that time for publish_at. The scheduling guide covers timing and changes without mixing up the native app and Postdom's queue.
Prepare one finished Reel for my connected Instagram account.
Read get_workspace_status, list_accounts and get_brief first.
Show the account's providerAccountId and confirm its human-selected
policy requires per-post review (L1). Stop if it does not.
Ask me for the accepted video URL or already-stored media handle,
caption, and intended publication time with timezone.
Show me the exact video, caption, account and tool settings.
Require my confirmation that I watched the video, checked its intended
audience, and that isAiGenerated: true is a truthful disclosure.
There is no private Instagram override in this tool. Stop if I need one,
if the disclosure is wrong, or if I have not confirmed the review.
After confirmation, submit once with publish_video and a stable
idempotency_key. Convert the agreed future time to UTC for publish_at.
Return id, status and scheduled_for. Wait for my separate Postdom
approval when required; never approve yourself or widen account policy.
Read get_publish for the same ID with bounded waiting. If unresolved,
return the ID and actual error/state instead of creating another post.These are fictional identifiers and a non-working example media URL. Replace the date with your agreed future time; the example year is not a supported scheduling-window claim. Only submit after the actual video and settings have been reviewed.
{
"id": "internal-example-id",
"providerAccountId": "example-instagram-account",
"platform": "instagram",
"status": "connected"
}{
"account_ids": [
"example-instagram-account"
],
"video_url": "https://media.example.com/finished-campaign-reel.mp4",
"caption": "Meet the new workspace. A finished AI-assisted walkthrough, reviewed by our team.",
"publish_at": "2099-06-15T09:00:00.000Z",
"intent": "Schedule the human-reviewed supplied Reel on the selected L1 Instagram account after confirming the actual audience and truthful AI disclosure.",
"idempotency_key": "instagram-reviewed-campaign-001"
}{
"id": "22222222-2222-4222-8222-222222222222",
"status": "requires_approval",
"scheduled_for": "2099-06-15T09:00:00.000Z"
}The released package was exercised against a local fixture with a fake key: this exact request produced the expected Instagram settings and the same-ID read returned the pending receipt. No real account, provider authorization, video upload or publication was tested.
On the L1 account used here, requires_approval means a human must review the exact request in Postdom. After approval, the agent reads get_publish for that same post ID. Scheduled or publishing is not a finished publication. Inspect the Instagram destination result and hand unresolved or failed work back to the human.
get_publish({
"post_id": "22222222-2222-4222-8222-222222222222"
})Do not run the original publishing request again just because a result is taking time. Keep the same idempotency key for an unchanged request, preserve the error and reconcile the original post before considering a retry. When the agent's waiting budget ends, it should return the ID for follow-up.
requires_approval is a review task, not a live Reel. A permitted tool call or approved plan does not replace this post's approval.
scheduled or publishing is not publication. Requested handoff time and actual provider completion can differ.
Keep missed, failed and unclear results visible. A human chooses the recovery action; the agent should not silently publish time-sensitive content late.
draftrequires_approvalchanges_requestedrejectedmissed_approvalmissed_schedulescheduledpublishingpublishedpartialfailedblockedunknownFor a missing or unfamiliar state, preserve the value and post ID and ask the human to review it. Do not guess success.
A published destination can still have public_url: null. Keep the ID and check Instagram; a missing link alone does not mean failure. Later, use get_performance for available observations. A missing snapshot or null metric is not zero. See which Instagram metrics Postdom can return.
For the next campaign, reuse the review process, not the previous approval. A new video, caption, account or timing choice needs to fit the human's current instructions and policy.
Instagram automation uses software to handle repeatable tasks such as scheduling content, reading results or managing an inbox. Those are different jobs with different tools. Postdom covers supplied finished-Reel publishing with human-owned approval and result tracking, not messages, comments, likes or follows.
No tool can guarantee that an account will avoid restrictions. Meta documents publishing APIs and their requirements, but authorization is not a blanket approval of every post or action. Review the content, account access and settings. Postdom does not offer ban-proof automation, engagement bots or a reach guarantee.
This Postdom workflow is for eligible professional accounts connected by a human through the provider authorization flow. It does not claim personal-account API publishing. Instagram's own app scheduling has separate eligibility rules; use the scheduling guide for that path.
Do not assume so. The released Postdom MCP tool sends contentType: reel and isAiGenerated: true for Instagram, with no private visibility input or per-call override. Confirm the actual account audience and that the disclosure is truthful. Stop if you need different settings or have not completed the human review.
The first workflow on this page explicitly uses human-selected per-post review (L1). It is not an assumption about your current account settings. Other human-granted plan or account policies have their own limits; an agent cannot grant itself authority. A reviewed plan, a permitted tool call and a published post are separate things.
No. You supply the finished video. This workflow does not promise native music, effects, stickers, product tags or collaborator controls. Keep any required feature or disclosure and use a suitable human-controlled publishing path instead of removing it to fit the tool.
A pending post is not published yet. Even a published destination can have a null public_url, and a performance snapshot may not be available. Keep the post ID and check the destination; do not turn a missing URL into a failed post or missing metrics into zeros.
Connect the account, choose per-post review and prepare the media handoff. You can then follow one request from human review to its actual result.