Skip to main content

Overview

The AnySite Instagram node enables Instagram data extraction within your n8n workflows. Get user profiles, analyze posts, track hashtags, and monitor engagement metrics for social media analysis.

Node Configuration

Authentication

credential
AnySite API Credentials
required
Select your AnySite API credentials from the dropdown or create new ones.

Available Operations

  • Get User Profile
  • Get User Posts
  • Search Users
  • Analyze Post
Extract detailed Instagram user profile information.Parameters:
  • Username (required): Instagram username (without @)
  • Include Posts: Whether to include recent posts
  • Post Limit: Number of recent posts to include (1-50)
Example Output:
{
  "user": {
    "id": "instagram123",
    "username": "travel_blogger",
    "displayName": "Sarah's Adventures",
    "bio": "Travel enthusiast ✈️ | 50+ countries | Photography tips 📸",
    "followers": 125000,
    "following": 800,
    "posts": 1250,
    "isVerified": false,
    "isPrivate": false,
    "profileImageUrl": "https://instagram.com/profiles/...",
    "website": "https://sarahtravels.com",
    "category": "Travel"
  }
}

Workflow Examples

Influencer Research

1

Find Influencers

Search for Instagram users in your niche with high engagement rates.
2

Analyze Profiles

Get detailed profile information including follower count, engagement, and content themes.
3

Content Analysis

Analyze recent posts to ensure brand alignment and authentic engagement.
4

Contact Database

Build a database of qualified influencers with contact information and collaboration notes.
Example Workflow:
{
  "nodes": [
    {
      "name": "Search Fashion Influencers",
      "type": "@horizondatawave/n8n-nodes-anysite.Instagram",
      "operation": "searchUsers",
      "parameters": {
        "query": "fashion blogger style influencer",
        "category": "Fashion",
        "limit": 50
      }
    },
    {
      "name": "Filter by Followers",
      "type": "n8n-nodes-base.filter",
      "parameters": {
        "conditions": [
          {
            "field": "followers",
            "operation": "greaterThan",
            "value": 10000
          },
          {
            "field": "followers",
            "operation": "lessThan",
            "value": 500000
          }
        ]
      }
    },
    {
      "name": "Get Recent Posts",
      "type": "@horizondatawave/n8n-nodes-anysite.Instagram",
      "operation": "getUserPosts",
      "parameters": {
        "username": "={{ $json.username }}",
        "postCount": 12,
        "mediaType": "all"
      }
    },
    {
      "name": "Calculate Engagement",
      "type": "n8n-nodes-base.function",
      "parameters": {
        "functionCode": `
          const avgLikes = items[0].json.posts.reduce((sum, post) => sum + post.likes, 0) / items[0].json.posts.length;
          const engagementRate = (avgLikes / items[0].json.followers) * 100;
          
          return [{
            json: {
              ...items[0].json,
              avgLikes,
              engagementRate
            }
          }];
        `
      }
    }
  ]
}

Brand Monitoring

Track mentions of your brand across Instagram:
  1. Hashtag Monitoring - Track branded hashtags and campaigns
  2. Mention Detection - Find posts mentioning your brand handle
  3. User-Generated Content - Discover customers posting about your products
  4. Competitor Analysis - Monitor competitor social media activity
  5. Engagement Tracking - Measure campaign performance and reach

Content Strategy

Optimize your content strategy based on competitor analysis:
  1. Top Performers - Find highest-performing posts in your niche
  2. Hashtag Analysis - Identify trending and effective hashtags
  3. Posting Patterns - Analyze optimal posting times and frequency
  4. Content Types - Determine which content formats perform best
  5. Audience Insights - Understand your target audience preferences

Advanced Analytics

Engagement Analysis

Calculate detailed engagement metrics:
// Comprehensive engagement calculation
{
  "engagementMetrics": {
    "rate": "={{ (($json.likes + $json.comments) / $json.followers * 100).toFixed(2) }}%",
    "likesToCommentsRatio": "={{ ($json.likes / Math.max($json.comments, 1)).toFixed(1) }}",
    "avgLikesPerPost": "={{ ($json.totalLikes / $json.postCount).toFixed(0) }}",
    "viralityScore": "={{ ($json.likes > ($json.followers * 0.05) ? 'High' : 'Normal') }}"
  }
}

Content Performance

Analyze which content types perform best:
{
  "name": "Analyze Content Types",
  "type": "n8n-nodes-base.function",
  "parameters": {
    "functionCode": `
      const posts = items.map(item => item.json);
      const byType = posts.reduce((acc, post) => {
        acc[post.mediaType] = acc[post.mediaType] || [];
        acc[post.mediaType].push(post);
        return acc;
      }, {});
      
      const analysis = Object.entries(byType).map(([type, typePosts]) => ({
        type,
        count: typePosts.length,
        avgLikes: typePosts.reduce((sum, p) => sum + p.likes, 0) / typePosts.length,
        avgComments: typePosts.reduce((sum, p) => sum + p.comments, 0) / typePosts.length
      }));
      
      return [{ json: { contentAnalysis: analysis } }];
    `
  }
}

Hashtag Research

Find trending hashtags in your niche:
{
  "name": "Extract Hashtags",
  "type": "n8n-nodes-base.function", 
  "parameters": {
    "functionCode": `
      const allHashtags = items.flatMap(item => 
        item.json.posts ? item.json.posts.flatMap(post => post.hashtags || []) : []
      );
      
      const hashtagCount = allHashtags.reduce((acc, tag) => {
        acc[tag] = (acc[tag] || 0) + 1;
        return acc;
      }, {});
      
      const trending = Object.entries(hashtagCount)
        .sort(([,a], [,b]) => b - a)
        .slice(0, 20)
        .map(([hashtag, count]) => ({ hashtag, count }));
        
      return [{ json: { trendingHashtags: trending } }];
    `
  }
}

Hashtag Performance

Analyze hashtag effectiveness:
// Hashtag performance metrics
{
  "hashtagAnalysis": {
    "totalHashtags": "={{ $json.hashtags.length }}",
    "avgEngagement": "={{ ($json.likes + $json.comments) / Math.max($json.hashtags.length, 1) }}",
    "topHashtag": "={{ $json.hashtags[0] }}",
    "nicheTags": "={{ $json.hashtags.filter(tag => tag.includes('fashion') || tag.includes('style')).length }}"
  }
}

Error Handling

Common Issues

Error: 403 - Account is privateSolution:
  • Skip private accounts in bulk operations
  • Focus on public profiles for analysis
  • Maintain a list of accessible accounts
Error: 404 - User not foundSolution:
  • User may have changed username or deleted account
  • Update your user database regularly
  • Handle missing users gracefully in workflows
Error: 429 - Too many requestsSolution:
  • Add delays between requests (recommended: 2-3 seconds)
  • Implement exponential backoff
  • Monitor your API usage and plan accordingly

Robust Request Handling

{
  "name": "Instagram with Retry",
  "type": "@horizondatawave/n8n-nodes-anysite.Instagram",
  "continueOnFail": true,
  "retryOnFail": true,
  "maxTries": 3,
  "waitBetweenTries": 4000,
  "parameters": {
    "operation": "getUserProfile",
    "username": "{{ $json.username }}"
  }
}

Data Processing

Profile Scoring

Score influencer profiles based on multiple factors:
// Influencer scoring algorithm
{
  "influencerScore": {
    "followersScore": "={{ Math.min($json.followers / 10000, 10) }}",
    "engagementScore": "={{ ($json.engagementRate > 3 ? 10 : $json.engagementRate * 3.33) }}",
    "contentScore": "={{ ($json.posts.length > 100 ? 10 : $json.posts.length / 10) }}",
    "verificationBonus": "={{ $json.isVerified ? 2 : 0 }}",
    "totalScore": "={{ ($json.followersScore + $json.engagementScore + $json.contentScore + $json.verificationBonus) / 3.2 }}"
  }
}

Audience Analysis

Analyze follower demographics and interests:
{
  "name": "Analyze Audience",
  "type": "n8n-nodes-base.openAi",
  "parameters": {
    "operation": "analyze",
    "prompt": "Based on this Instagram profile bio and recent posts, what audience demographics and interests would this account attract? Bio: {{ $json.bio }}, Recent posts: {{ $json.recentPosts.map(p => p.caption).join(' | ') }}"
  }
}

Integration Examples

CRM Integration

Add qualified influencers to your CRM:
{
  "name": "Add to CRM",
  "type": "n8n-nodes-base.hubspot",
  "parameters": {
    "operation": "create",
    "resource": "contact",
    "data": {
      "firstname": "={{ $json.displayName.split(' ')[0] }}",
      "lastname": "={{ $json.displayName.split(' ').slice(1).join(' ') }}",
      "instagram_handle": "={{ $json.username }}",
      "follower_count": "={{ $json.followers }}",
      "engagement_rate": "={{ $json.engagementRate }}",
      "category": "={{ $json.category }}"
    }
  }
}

Content Calendar

Build content calendar based on competitor analysis:
{
  "name": "Generate Content Ideas",
  "type": "n8n-nodes-base.openAi", 
  "parameters": {
    "operation": "generate",
    "prompt": "Based on these high-performing Instagram posts, generate 5 content ideas for our brand: {{ JSON.stringify($json.topPosts) }}"
  }
}

Report Generation

Create Instagram analytics reports:
{
  "name": "Generate Report",
  "type": "n8n-nodes-base.googleDocs",
  "parameters": {
    "operation": "create",
    "title": "Instagram Analysis Report - {{ new Date().toLocaleDateString() }}",
    "content": `
      # Instagram Analysis Report
      
      ## Top Performers
      {{ $json.topInfluencers.map(inf => \`- \${inf.username}: \${inf.followers} followers, \${inf.engagementRate}% engagement\`).join('\\n') }}
      
      ## Trending Hashtags
      {{ $json.trendingHashtags.map(tag => \`- \${tag.hashtag} (\${tag.count} uses)\`).join('\\n') }}
      
      ## Recommendations
      {{ $json.recommendations }}
    `
  }
}

Performance Optimization

Bulk Operations

Process multiple accounts efficiently:
{
  "name": "Batch Process Users",
  "type": "n8n-nodes-base.splitInBatches",
  "parameters": {
    "batchSize": 10,
    "options": {
      "reset": false
    }
  }
}

Data Caching

Cache profile data to reduce API calls:
// Simple caching mechanism
{
  "name": "Cache Profile Data",
  "type": "n8n-nodes-base.function",
  "parameters": {
    "functionCode": `
      const cacheKey = \`profile_\${items[0].json.username}\`;
      const cached = $('Cache').last()?.json?.[cacheKey];
      
      if (cached && Date.now() - cached.timestamp < 3600000) { // 1 hour cache
        return [{ json: cached.data }];
      }
      
      // Store in cache for next time
      const cacheData = {
        [cacheKey]: {
          data: items[0].json,
          timestamp: Date.now()
        }
      };
      
      return [
        { json: items[0].json },
        { json: cacheData, pairedItem: { item: 0, input: 0 } }
      ];
    `
  }
}

Best Practices

Ethical Data Collection

  • Respect user privacy and Instagram’s terms of service
  • Only collect publicly available data
  • Implement proper rate limiting
  • Store data securely and delete when no longer needed

Performance Tips

  • Use batch processing for large datasets
  • Implement caching for frequently accessed profiles
  • Add appropriate delays between requests
  • Monitor your API usage to stay within limits

Next Steps

I