npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-instagram-integrations

v1.6.0

Published

N8N nodes for Instagram API integration with OAuth2 authentication

Readme

n8n-nodes-instagram-integrations

Instagram Banner npm version License: MIT n8n Downloads

Professional N8N community nodes for seamless Instagram Messaging API integration with OAuth2 authentication.

InstallationFeaturesPrerequisitesQuick StartDocumentationSupport


📖 Overview

This package provides comprehensive Instagram integration for n8n workflows, enabling automated messaging, media management, and webhook-based event handling through the official Instagram Graph API.

Perfect for:

  • 🤖 Automated customer support via Instagram DM
  • 📢 Marketing campaigns and notifications
  • 🎯 Lead generation and engagement
  • 📊 Customer interaction tracking
  • 🔄 Multi-platform messaging automation

✨ Features

🔐 OAuth2 Authentication

  • One-click authentication - Secure OAuth2 flow similar to Google Drive
  • 🆕 Automatic long-lived tokens - Short-lived tokens (1 hour) automatically exchanged for long-lived tokens (60 days)
  • 🆕 Automatic token refresh - Tokens refresh automatically before expiration (zero configuration)
  • 🆕 No more "refreshToken is required" errors - Smart token lifecycle management prevents expiration issues
  • Multiple credential types - OAuth2 or manual access token
  • Auto-discovery - Automatically fetches Instagram Business Account ID

📬 Instagram Messaging Node

Message Types:

  • 💬 Text Messages - Send formatted text with up to 1000 characters
  • 🖼️ Image Messages - Share images via public HTTPS URLs
  • 🎵 Audio Messages - Send voice messages and audio files
  • 🎬 Video Messages - Share video content
  • 📤 Media Upload - Upload and publish photos, videos, reels, and stories

Interactive Templates:

  • 🔘 Button Templates - Up to 3 action buttons (web links or postbacks)
  • 🎴 Generic Templates - Carousel cards with images and buttons
  • Quick Replies - Up to 13 quick response options

User Management:

  • 👤 Get User Profile - Retrieve user information (name, username, profile picture)

💬 Comment Management (NEW in v1.6.0!)

Comment Moderation:

  • 📜 Get Comments - Retrieve all comments on your media posts with pagination
  • 💬 Get Replies - Fetch replies to specific comments
  • ↩️ Reply to Comment - Post public replies to comments on your media
  • 🔒 Send Private Reply - Send a DM to users who commented (7-day window)
  • 🗑️ Delete Comment - Remove unwanted comments from your posts
  • 👁️ Hide/Unhide Comment - Toggle comment visibility without deletion

Perfect for:

  • 🤝 Engaging with your audience through comment replies
  • 📧 Sending exclusive offers via private DM to commenters
  • 🛡️ Moderating spam and unwanted comments
  • 🔄 Automating comment response workflows (Manychat alternative!)

� Instagram Content Publishing (NEW!)

Post Creation:

  • 📷 Single Posts - Create image or video feed posts
  • 🎞️ Carousel Posts - Multi-media posts (2-10 images/videos)
  • 🎬 Reels - Short-form videos up to 60 seconds
  • 📋 Stories - 24-hour temporary content

Advanced Features:

  • 🏷️ User Tagging - Tag up to 20 users with precise positioning
  • 🛍️ Product Tagging - Tag products from Facebook catalog
  • 🤝 Collaborators - Tag other accounts as collaborators
  • 📍 Location Tagging - Add location stickers to posts
  • 🎨 Custom Thumbnails - Set video thumbnail positions
  • 🎵 Audio Attribution - Name audio tracks in reels

Media Management:

  • 📊 List Media - Get paginated list of your media
  • 🔍 Get Media Details - Retrieve specific media information
  • 👶 Get Carousel Children - Access individual carousel items

Instagram Trigger Node

Webhook Events:

  • 💬 New Messages - Trigger on incoming messages
  • 🔘 Postback Events - Handle button clicks and interactions
  • Opt-in Events - Process user consent actions
  • 💭 Comments (NEW!) - Trigger when someone comments on your media
  • 🏷️ Mentions (NEW!) - Trigger when someone mentions you in comments or stories

Dual Output System:

  • Output 1 (Messages/Postbacks/Opt-ins) - Direct messaging events
  • Output 2 (Comments/Mentions) - Content engagement events

Security Features:

  • 🔒 Webhook signature validation (X-Hub-Signature-256)
  • ✓ Verify token authentication
  • 🛡️ HMAC SHA256 cryptographic verification

📋 Prerequisites

Required Accounts

  1. Facebook Page - Active Facebook page
  2. Instagram Business Account - Connected to your Facebook page
  3. Meta Developer Account - Access to Facebook Developer Console
  4. n8n Instance - Self-hosted or cloud (version 0.196.0+)

Required Permissions

For Messaging:

  • instagram_basic - Basic profile access
  • instagram_manage_messages - Send and receive messages
  • pages_manage_metadata - Webhook subscriptions
  • pages_read_engagement - Read engagement data

For Content Publishing (NEW):

  • instagram_content_publish - Create and publish posts, reels, and stories
  • pages_show_list - List Facebook pages
  • catalog_management - Product tagging (optional, for Instagram Shopping)

Technical Requirements

  • Node.js 18.15+ or 20.10+
  • n8n version 0.196.0 or higher
  • HTTPS webhook endpoint (for trigger node)

🚀 Installation

Option 1: n8n Community Nodes (Recommended)

  1. Open n8n
  2. Go to SettingsCommunity Nodes
  3. Search for n8n-nodes-instagram-integrations
  4. Click Install
  5. Restart n8n

Option 2: npm Installation

cd ~/.n8n/nodes
npm install n8n-nodes-instagram-integrations

Option 3: Docker

Add to your docker-compose.yml:

services:
  n8n:
    environment:
      - N8N_COMMUNITY_PACKAGES=n8n-nodes-instagram-integrations

🎯 Quick Start

Step 1: Create Meta App

  1. Visit Meta for Developers
  2. Click Create App
  3. Select Business type
  4. Add Instagram product
  5. Note your App ID and App Secret

Step 2: Connect Facebook Page

  1. In App Dashboard → InstagramBasic Display
  2. Add your Instagram Business Account
  3. Generate a Page Access Token with required permissions
  4. Copy the Instagram Business Account ID

Step 3: Configure n8n Credentials

Using OAuth2 (Recommended):

  1. In n8n: CredentialsNewInstagram OAuth2 API
  2. Enter:
    • Client ID: Your App ID
    • Client Secret: Your App Secret
  3. Click Connect my account
  4. Authorize in popup window
  5. ✅ Connection established!

Using Access Token:

  1. In n8n: CredentialsNewInstagram Access Token API
  2. Enter:
    • Access Token: Your Page Access Token
  3. Click Save
  4. ✅ Account ID auto-discovered!

Step 4: Build Your First Workflow

  1. Create new workflow
  2. Add Instagram node
  3. Select MessageSend Text Message
  4. Configure:
    • Credential: Your Instagram credential
    • Recipient ID: Target user's Instagram-scoped ID
    • Message: Your text content
  5. Execute!

📚 Documentation

Core Guides

Content Publishing Guides (NEW!)

Example Workflows

Messaging:

  • Auto-Reply to Messages
  • Daily Announcements
  • Customer Support Bot

Content Publishing:

  • Scheduled Daily Posts
  • Automated Carousels
  • Story Automation
  • Product Showcase Reels

API Reference

Message Operations:

  • sendTextMessage - Send text content
  • sendImageMessage - Send image via URL
  • sendAudioMessage - Send audio file
  • sendVideoMessage - Send video content
  • sendButtonTemplate - Interactive buttons
  • sendGenericTemplate - Carousel cards
  • sendQuickReplies - Quick response options
  • uploadMedia - Upload media files

Post Operations (NEW):

  • createSinglePost - Create image/video posts
  • createCarouselPost - Multi-media carousels
  • createReel - Short-form videos
  • publishPost - Publish created content

Story Operations (NEW):

  • createStory - Create and publish stories

Media Operations (NEW):

  • listMedia - Get your media list
  • getMedia - Get media details
  • getMediaChildren - Get carousel children

User Operations:

  • getUserProfile - Fetch user information
  • getMyProfile - Get authenticated account info

Comment Operations (NEW in v1.6.0):

  • getComments - Get all comments on media
  • getReplies - Get replies to a comment
  • replyToComment - Post public reply
  • sendPrivateReply - Send DM to commenter
  • deleteComment - Remove a comment
  • toggleVisibility - Hide/unhide comment

Webhook Events:

  • messages - Incoming messages
  • messaging_postbacks - Button interactions
  • messaging_optins - Consent events

� Token Management (v1.5.0+)

Automatic Long-Lived Token System

Instagram uses a two-tier token system that this package automatically manages for you:

| Token Type | Validity | Management | |------------|----------|------------| | Short-lived | 1 hour | Received from OAuth | | Long-lived | 60 days | Auto-exchanged on first use | | Refreshed | 60 days | Auto-refreshed before expiration |

How It Works

OAuth Authentication (User action)
         ↓
Short-lived Token (1 hour)
         ↓
First API Call (automatic)
         ↓
Long-lived Token Exchange (automatic)
         ↓
Token Valid for 60 Days
         ↓
Auto-refresh at 53 Days (automatic)
         ↓
Another 60 Days of Validity

Key Features

Zero Configuration - Everything happens automatically
No More Errors - "refreshToken is required" error is eliminated
Smart Refresh - Tokens refresh when at least 24 hours old and expiring within 7 days
Fallback Protection - If refresh fails, attempts to exchange current OAuth token
Secure Storage - All tokens encrypted in N8N credential system

Best Practices

  1. Keep Workflows Active: Run at least once every 50 days to maintain token validity
  2. Monitor Health: Create a weekly health-check workflow (optional)
  3. Handle Errors Gracefully: Use continueOnFail for robust error handling

Token Lifecycle Example

// Day 1: OAuth authentication
User authenticates → Short-lived token (expires in 1 hour)

// Day 1: First workflow run
First API call → Automatic exchange → Long-lived token (expires in 60 days)

// Day 53: Automatic refresh (7 days before expiry)
API call → Token check → Auto-refresh → New long-lived token (expires in 60 days)

// Repeat cycle every ~53 days as long as workflows are active

What If Token Expires?

If a workflow is inactive for 60+ days:

  1. Token expires and cannot be refreshed
  2. Workflow shows error: "Instagram access token has expired"
  3. Solution: Reconnect your Instagram OAuth2 credential (takes 30 seconds)

Learn More

📘 TOKEN_MANAGEMENT.md - Comprehensive token management guide
🔧 TOKEN_MANAGEMENT_IMPLEMENTATION.md - Technical implementation details


�🔧 Configuration

Webhook Setup

  1. In Meta App Dashboard → InstagramWebhooks
  2. Subscribe to messages field
  3. Callback URL: Your n8n webhook URL
    https://your-n8n.com/webhook/instagram
  4. Verify Token: Enter in both Meta and n8n credentials
  5. Click Verify and Save

Rate Limits

  • API Calls: 200 requests per hour per user
  • Messages: 1000 characters max
  • Buttons: 3 per template, 20 characters per title
  • Quick Replies: 13 max per message
  • Webhook Response: Must respond within 20 seconds

🛠️ Troubleshooting

Common Issues

"Invalid OAuth Access Token"

  • Verify token hasn't expired
  • Check required permissions are granted
  • Regenerate token in Meta Developer Console

"Webhook Verification Failed"

  • Ensure verify token matches in both Meta and n8n
  • Check n8n webhook is publicly accessible via HTTPS
  • Verify firewall allows Meta's IP ranges

"User Cannot Receive Messages"

  • User must initiate conversation first (24-hour window)
  • Use message tags for out-of-window messaging
  • Verify Instagram Business Account is active

"Rate Limit Exceeded"

  • Implement exponential backoff
  • Reduce request frequency
  • Use batch operations where possible

Debug Mode

Enable n8n debug logging:

export N8N_LOG_LEVEL=debug
n8n start

🤝 Support

Resources

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Follow existing code style
  4. Add tests for new features
  5. Submit a pull request

See CODE_OF_CONDUCT.md for guidelines.


📄 License

MIT License - see LICENSE.md for details.

Copyright © 2025 Mohammad Mahdi Samei


🙏 Acknowledgments


📊 Stats

npm downloads license node version


Made with ❤️ for the n8n community | GitHub | npm