instagram-integrations

N8N nodes for Instagram API integration with OAuth2 authentication

Package Information

Downloads: 5,583 weekly / 8,482 monthly
Latest Version: 1.6.0
Author: Mohammad Mahdi Samei

Documentation

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

Discussion