Publishing to Instagram
Post Reels, images and carousels to an Instagram Business or Creator account from a workflow, with Trial Reels, covers and collaborators.
The Social Publish node posts straight to Instagram through Meta's official API. Wire a video, an image, or up to 10 files into it, add a caption, pick your Instagram account, and run.
What you need
- An Instagram Business or Creator account. Personal accounts cannot publish through the API. You can switch in the Instagram app under Settings, Account type and tools.
- No Facebook Page. Wireflow uses Instagram Login, which works with the Instagram account alone.
Connect your account
Instagram is in preview. The Connect Instagram button is available to Wireflow site admins and ordinary accounts explicitly approved for preview access. Your team's admin role alone does not grant access. Public connection remains gated, and the Instagram professional account still needs the appropriate Meta app/tester role before Advanced Access.
- Add a Social Publish node and open it.
- Under Accounts, click Connect Instagram. Instagram's consent screen opens in a new tab.
- Log in to the professional account you want to post from and approve.
- Back in Wireflow, click Refresh. The account appears in the list.
Wireflow keeps the connection alive on its own. Instagram tokens last 60 days and are refreshed daily in the background, so an account you have not posted from in weeks still works.
What gets posted
| You wire | It posts as |
|---|---|
| One video | A Reel |
| One image | A feed post |
| 2 to 10 files | A carousel of images, videos, or both |
Instagram only accepts JPEG images up to 8 MB, and feed images must sit between 4:5 (portrait) and 1.91:1 (landscape), 320 to 1440 pixels wide. Wireflow fits images for you: other formats become JPEG, and an image outside that range gets white bars rather than a crop, so a 9:16 still posts as 4:5 with bars left and right. Reels must be MP4 or MOV; other video formats are refused before anything is sent. A post with more than 10 files is refused rather than trimmed, and so is a caption over 2,200 characters, more than 30 hashtags, or more than 20 @ mentions.
Reel options
These appear in the node once an Instagram account is selected.
- Also show Reel in the main feed. On by default, so the Reel shows on your grid and in the Reels tab. Turn it off to keep it in the Reels tab only.
- Trial Reel. The Reel is shown to people who do not follow you first. Choose how it reaches your followers: when you decide in the Instagram app, or automatically if it performs well. Trial Reels need exactly one video and cannot have collaborators; the node refuses rather than posting to everyone.
- Label as AI-generated. On by default. Wireflow tells Instagram the post is AI-generated (the "AI info" label under your name). Instagram limits the reach of profiles that feature an AI-generated person without it, so leave it on for any AI avatar or generated footage. Turn it off only for real, non-AI footage. If Instagram refuses the label for a media type, the post is sent without it and the result carries a warning telling you to add it in the app. It applies to the whole post, so a carousel is labeled as one. This is the per-post label. The account-level "AI-generated profile" setting is separate, and Instagram only lets you change it in the app (Edit profile).
- Cover. Either a cover image URL, or a frame of the video given in milliseconds from the start. If you set both, the frame is used.
- Collaborators. Up to 3 usernames. Each one gets an invite and has to accept it in the app before the post shows on their profile.
Limits
Instagram allows 100 API posts per account in any 24 hour window. Carousels count as one. The limit is shared with every other app connected to the same account, so Wireflow asks Instagram for the real number before each post. When the limit is used up the node fails with a message that says so, and nothing is posted.
Wireflow's own ban-safety limits (at most 3 feed posts in any 24 hours per account, at least 3 hours apart; Trial Reels have their own budget of 5 in 24 hours, 15 minutes apart) still apply on top. They hold across every board and login connected to the same Instagram account. A value you set in the node's Ban-safety knobs is used both when the post is scheduled and when it is sent; 0 means the default, not off.
How a post goes out
Instagram publishes in two steps. Wireflow uploads your media to a container, waits until Instagram reports it has finished processing (up to 4 minutes for the whole post), and only then publishes. If processing fails or times out, nothing is posted and the node shows Instagram's reason. On success the node's posts output carries the post's permalink.
Setting up the Meta app (self-hosting and development)
This part is for whoever runs the Wireflow deployment, not for people posting.
- In the Meta app dashboard, open the app and add the Instagram product. Choose API setup with Instagram login.
- Copy the Instagram app ID and Instagram app secret from that page into
INSTAGRAM_APP_IDandINSTAGRAM_APP_SECRET. These are not the Facebook app credentials and not the Threads ones. - Under Business login settings, add the redirect URL
https://<your-domain>/api/social/callback/instagram. It must match exactly, with no trailing slash. In the same place, set the deauthorize callback URL tohttps://<your-domain>/api/social/instagram/uninstalland the data deletion request URL tohttps://<your-domain>/api/social/instagram/data-deletion. Both are required for App Review. - Set
INSTAGRAM_AI_LABEL_DISABLED=1to stop Wireflow from ever sending the AI label parameter (a kill switch, read on every post). It must be set in BOTH Vercel and Trigger.dev, because scheduled posts are sent from the Trigger worker. A post it withheld the label from reportsaiLabel: disabled. - OAuth requests
instagram_business_basicto identify the account,instagram_business_content_publishto publish, andinstagram_business_manage_insightsto read metrics for the connected account's own posts. Insights is separate from publishing.
Development mode note. While the Meta app is in development mode, or has only Standard Access, an eligible Instagram professional account with a role on the app can connect and publish without App Review, provided the Wireflow user also has preview access. To add yours: App roles, Roles, add an Instagram Tester, then accept the invite in Instagram under Settings, Apps and websites, Tester invites. Accounts without a role on the app need Advanced Access, which requires App Review and Business Verification.
Keep INSTAGRAM_CONNECT_PUBLIC unset or false during review. Wireflow site ADMIN users and ordinary users whose verified numeric Wireflow IDs are listed in the server-only INSTAGRAM_CONNECT_USER_IDS can connect. This grants only Instagram connect access; it does not grant an admin role or bypass Meta eligibility and consent. Set INSTAGRAM_CONNECT_PUBLIC=true only after review passes and the connection and publishing flow has been verified for public rollout.