Instagram is a powerful platform for businesses, creators, and marketers—but staying consistent with publishing posts and stories can be time-consuming. Imagine if you could schedule and publish your content automatically using a visual workflow tool. That’s exactly what n8n allows you to do. In this guide, we’ll walk you through how to use n8n for Instagram automation—no complex coding required. Whether you're running a content agency, product brand, or personal account, this setup will save you time while keeping your content flow consistent.
Why Use n8n for Instagram Automation?
Unlike other no-code tools, n8n gives you complete flexibility and control over your data. It supports rich integrations, conditional logic, and scheduling—all in a drag-and-drop interface. While Instagram doesn’t offer an open API for personal accounts, you can automate posts reliably using third-party tools within n8n, such as Creatomate or Facebook Graph API (for business pages connected to Instagram).
Here's why n8n is a compelling choice:
- Open-source and free to self-host
- Fully extensible with custom nodes
- No hard limitations on workflows or tasks
- Integrates with Google Sheets, Dropbox, Airtable, Notion, and more
And if you're new to workflow tools or cost-conscious, you can get started with n8n for free on your own server or locally.
What You Can Automate with n8n and Instagram
Here are a few powerful use cases for n8n Instagram automation:
- Automatically post a photo and caption on Instagram at a scheduled time
- Generate stories daily from a content calendar (like Google Sheets)
- Publish a new Instagram post when a blog or YouTube video goes live
- Repost top-performing content weekly for engagement
- Use AI tools (like ChatGPT or JSON2Video) to create dynamic post content
Let’s dig into how to build one of these automations from scratch.
Prerequisites for Instagram Automation in n8n
Before we get into the setup, here’s what you need:
- A Facebook Business Account with an Instagram Business Profile connected
- A Meta App (set up at developers.facebook.com)
- Access token with
instagram_content_publish
andpages_manage_posts
permissions - An image or video source (Google Drive, Airtable, Creatomate, etc.)
- A running n8n instance (self-hosted or cloud)
ℹ️ Note: If you haven't set up n8n locally yet, follow this step-by-step guide to run n8n locally.
Step-by-Step: Automate Instagram Posts Using n8n
In this walkthrough, we’ll create an automation that publishes an image to Instagram every day at a specific time using the Facebook Graph API.
Step 1: Create a Facebook App
- Go to developers.facebook.com
- Create a new app and configure it for Instagram Graph API
- Add Instagram Basic Display and Instagram Content Publishing
- Generate a User Token using Graph API Explorer with required permissions
- Get your Page ID and Instagram Business ID using:
GET /me/accounts GET /{page-id}?fields=instagram_business_account
Step 2: Start Your n8n Workflow
- Open your n8n instance and create a new workflow
- Add a “Cron” node to trigger automation daily (or custom schedule)
- Add an “HTTP Request” node after Cron
Configure it to publish photo content:
- Method: POST
- URL:
https://graph.facebook.com/v19.0/{IG-BUSINESS-ID}/media
- Query parameters:
image_url: Your hosted image URL caption: Your post text access_token: Your long-lived access token
- Use a second “HTTP Request” node to publish the image you just uploaded:
- URL:
https://graph.facebook.com/v19.0/{IG-BUSINESS-ID}/media_publish
- Body:
creation_id
returned from the previous request
Example Flow
Visually, your simplified workflow looks like:
[ Cron ] → [ Upload to IG Graph API ] → [ Publish Media ]
If you're handling dynamic content (like from Sheets or Creatomate), you can insert a node before the upload step that fetches the latest data.
Automate Instagram Stories Using Creatomate
Instagram doesn’t support story publishing through its API, but using Creatomate solves this elegantly. You can use Creatomate to generate a video or story and automate its upload with Facebook’s Graph API.
To do this:
- Create a story video template in Creatomate
- Use the “HTTP Request” node in n8n to generate a story
- Use Graph API POST request targeting
/{IG-BUSINESS-ID}/media
with typeSTORIES
- Complete the automation with the “Publish” endpoint as shown above
Need help with this setup? Check out the step-by-step Creatomate integration to use templates without writing code.
Sample Use Case: Schedule Weekly Promotions via Google Sheets
You have a Google Sheet with columns: Date
, Image URL
, Caption
- Add a “Google Sheets” node to fetch scheduled posts
- Filter rows where the date matches today’s date
- Send this data to the Facebook Graph API as in the previous section
This allows you to manage all posts from Google Sheets—perfect for teams and VAs.
Add a second branch to publish a "story" version using a customized Creatomate story.
Table: Quick Reference to Required API Fields
Parameter | Description |
---|---|
image_url |
Publicly hosted image URL |
caption |
Text to go along with the post |
access_token |
Long-lived token from Meta Developer Tool |
creation_id |
Returned after the media object is created |
media_type |
Set to IMAGE or STORIES (if using Creatomate) |
Tips for Smoother Instagram Automations
- Always host your media files on a reliable, publicly accessible server
- Refresh your access token periodically (long-lived ones last ~60 days)
- Use Slack or email nodes in n8n to get alerts for failed posts
- Test your automation on a sandbox account before going live
If you’d like to backup or duplicate workflows, refer to this guide on how to download and export workflows from n8n.
FAQ
Can I post to a personal Instagram account using n8n?
No, Instagram only allows content publishing through the Graph API for Business or Creator accounts connected via Facebook. Convert your account to a Business Profile to use this feature.
What if I don’t want to deal with access tokens manually?
You can automate token refresh cycles using Facebook’s token debug endpoint or use a secure middleware to manage periodic token generation and injection in n8n workflows.
Can I schedule Instagram stories with n8n?
Technically yes, but not directly. Since Instagram Stories aren't supported through the public API, you’ll need to use a third-party tool like Creatomate to generate content, then publish it as a story object via Facebook's API.
Is there a limit on how many posts I can make daily?
Instagram does have API rate limits which differ based on your app review level and usage. It’s safe to stay under 25-50 posts/day unless you have prior approval or are managing high-frequency brand accounts.
What’s the best way to monitor failed Instagram posts?
Add an “IF” node with conditional checks after each HTTP Request. If the API doesn’t return a success status, trigger a Slack or email alert to review the error message and fix it.
With this n8n Instagram automation setup, you’ll spend less time manually uploading and more time growing your audience. Take control of your workflow using n8n's powerful automation platform, and turn your social media strategy into a system that runs itself.