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
Find Influencers
Search for Instagram users in your niche with high engagement rates.
Analyze Profiles
Get detailed profile information including follower count, engagement, and content themes.
Content Analysis
Analyze recent posts to ensure brand alignment and authentic engagement.
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:
Hashtag Monitoring - Track branded hashtags and campaigns
Mention Detection - Find posts mentioning your brand handle
User-Generated Content - Discover customers posting about your products
Competitor Analysis - Monitor competitor social media activity
Engagement Tracking - Measure campaign performance and reach
Content Strategy
Optimize your content strategy based on competitor analysis:
Top Performers - Find highest-performing posts in your niche
Hashtag Analysis - Identify trending and effective hashtags
Posting Patterns - Analyze optimal posting times and frequency
Content Types - Determine which content formats perform best
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 } }];
`
}
}
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 private
Solution:
Skip private accounts in bulk operations
Focus on public profiles for analysis
Maintain a list of accessible accounts
Error: 404 - User not found
Solution:
User may have changed username or deleted account
Update your user database regularly
Handle missing users gracefully in workflows
Error: 429 - Too many requests
Solution:
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 }}
`
}
}
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
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