`[New Community Node] Instagram API with Instagram Login (No Facebook Page Required!) + AI Agent Tool Support 🚀

Hey everyone! :waving_hand:

I’m excited to share a new community node I’ve built: @rizkifirmansyah/n8n-nodes-instagram-api! :tada:

If you’ve ever tried automating Instagram in n8n, you might have run into the frustrating requirement where Instagram accounts had to be linked to a Facebook Page via legacy Facebook Graph API flows.

This node leverages the Instagram API with Instagram Login (Business Login for Instagram) via Meta’s Graph API (graph.instagram.com). It allows you to connect directly to Instagram Professional accounts (Business & Creator) without needing a Facebook Page connection!


:glowing_star: Key Highlights

  1. :locked_with_key: Direct Instagram Login (OAuth2 & Long-Lived Token)

    • Connect directly using Meta’s Instagram Business Login OAuth 2.0 flow.
    • Also supports 60-day Long-Lived User Access Tokens for quick setups.
  2. :robot: Native AI Agent Tool Support (LangChain / n8n AI)

    • Connect the node directly to the AI Agent node’s Tool connector.
    • Enables LLMs (OpenAI, Claude, Gemini, etc.) to autonomously look up profiles, reply to comments, send DMs, publish content, and fetch analytics on demand!
  3. :camera_with_flash: Full Media & Publishing Suite (with Async Container Polling)

    • Reels & Videos: Automatically polls Meta’s container status (FINISHED / ERROR) asynchronously so your workflow doesn’t fail on long video processing.
    • Carousels: Publish mixed photo/video carousels (2–10 items).
    • Stories & Photos: Publish single photos or Instagram Stories.
  4. :speech_balloon: Comment Management & Moderation

    • Read top-level comments and nested replies.
    • Post comments & reply directly to user comments.
    • Hide, unhide, or delete comments (great for anti-spam workflows).
  5. :envelope: Direct Messaging (Instagram Messaging API)

    • Send text messages and rich media attachments (images, video, audio, files) via IGSID.
    • Retrieve conversation threads and message history.
  6. :bar_chart: Comprehensive Analytics & Insights

    • Account-level metrics (reach, views, profile visits, accounts engaged, followers, website clicks).
    • Media-level metrics (reach, saved, shares, likes, comments, video plays).
    • Convenient “Select All” or individual metric selection.
  7. :high_voltage: Raw Graph API Passthrough

    • Execute custom GET, POST, or DELETE requests against Meta Graph API endpoints with automated authentication.

:package: Installation

You can install it directly inside your n8n instance:

  1. Go to Settings > Community Nodes.

  2. Click Install a community node.

  3. Enter the package name:

    @rizkifirmansyah/n8n-nodes-instagram-api
    
  4. Accept the prompt and click Install.


:light_bulb: Example Use Cases

  • :robot: AI Instagram Customer Support / DM Assistant: Connect Instagram to an AI Agent to answer product inquiries via DMs or comments 24/7.
  • :date: Automated Content Scheduling: Schedule and auto-publish Reels & Carousels directly from Google Drive, Airtable, or Notion.
  • :shield: Automated Comment Moderation: Check incoming comments with sentiment analysis / moderation models and auto-hide toxic/spam comments.
  • :chart_increasing: Weekly Social Analytics Sync: Fetch weekly account reach and engagement insights and send summaries to Slack, Notion, or Google Sheets.

:link: Links & Resources


I’d love to hear your feedback, thoughts, or feature requests! If you find any issues or have suggestions, feel free to drop a comment below or open an issue on GitHub.

Happy automating! :rocket:

This is really useful, especially the AI Agent Tool support.

I’m building a content automation workflow where one input generates the post text and image automatically, and I’ve been keeping the publishing destination modular.

Direct Instagram publishing without requiring a Facebook Page could make that architecture much cleaner.

I’m curious: for a workflow generating both text and an image dynamically, would you recommend creating the media container immediately after generation, or storing the asset first and publishing from a stable public URL?

i’d store first, and the reason isn’t the call order, it’s who fetches the file. Meta doesn’t receive the media, it goes and downloads it from a public address, on its own schedule. so the url doesn’t need to be alive when you create the container, it needs to be alive until the publish actually succeeds.

that gap is always longer than it looks. with a video the container isn’t ready when the create call returns, so you’re already waiting. add a human approval step, or one retry, and you’re minutes or hours out from generation.

the risk i’d watch in your setup is that generated assets usually come back on a short-lived url. if anything downstream retries later, the container is carrying an address that isn’t there anymore, and the failure shows up at publish time with a message that points somewhere else entirely.

there’s a side benefit for the modular part you mentioned: once the asset sits at a stable address, the publishing step really is swappable, because every destination just takes a url instead of a file.

nice work, the facebook page requirement has been the most annoying part of ig automation in n8n for a while.

curious how the node handles the graph api’s publishing rate limit, does it just let the request fail through with meta’s error, or is there a queue or backoff built in for workflows that batch-publish? that’s usually the part that trips people up once this gets wired into an actual scheduling pipeline.