{
  "workflow": {
    "id": 6641,
    "name": "Instagram influencer content monitor with ScrapeGraphAI analysis and ROI tracking",
    "views": 1411,
    "recentViews": 0,
    "totalViews": 1411,
    "createdAt": "2025-07-29T14:00:33.266Z",
    "description": "# Influencer Content Monitor with ScrapeGraphAI Analysis and ROI Tracking\n\n## 🎯 Target Audience\n- Marketing managers and brand managers\n- Influencer marketing agencies\n- Social media managers\n- Digital marketing teams\n- Brand partnerships coordinators\n- Marketing analysts and strategists\n- Campaign managers\n- ROI and performance analysts\n\n## 🚀 Problem Statement\nManual monitoring of influencer campaigns is time-consuming and often misses critical performance insights, brand mentions, and ROI calculations. This template solves the challenge of automatically tracking influencer content, analyzing engagement metrics, detecting brand mentions, and calculating campaign ROI using AI-powered analysis and automated workflows.\n\n## 🔧 How it Works\n\nThis workflow automatically monitors influencer profiles and content using ScrapeGraphAI for intelligent analysis, tracks brand mentions and sponsored content, calculates performance metrics, and provides comprehensive ROI analysis for marketing campaigns.\n\n### Key Components\n\n1. **Daily Schedule Trigger** - Runs automatically every day at 9:00 AM to monitor influencer campaigns\n2. **ScrapeGraphAI - Influencer Profiles** - Uses AI to extract profile data and recent posts from Instagram\n3. **Content Analyzer** - Analyzes post content for engagement rates and quality scoring\n4. **Brand Mention Detector** - Identifies brand mentions and sponsored content indicators\n5. **Campaign Performance Tracker** - Tracks campaign metrics and KPIs\n6. **Marketing ROI Calculator** - Calculates return on investment for campaigns\n\n## 📊 Data Analysis Specifications\n\nThe template analyzes and tracks the following metrics:\n\n| Metric Category | Data Points | Description | Example |\n|----------------|-------------|-------------|---------|\n| **Profile Data** | Username, Followers, Following, Posts Count, Bio, Verification Status | Basic influencer profile information | \"@influencer\", \"100K followers\", \"Verified\" |\n| **Post Analysis** | Post URL, Caption, Likes, Comments, Date, Hashtags, Mentions | Individual post performance data | \"5,000 likes\", \"150 comments\" |\n| **Engagement Metrics** | Engagement Rate, Content Quality Score, Performance Tier | Calculated performance indicators | \"3.2% engagement rate\", \"High performance\" |\n| **Brand Detection** | Brand Mentions, Sponsored Content, Mention Count | Brand collaboration tracking | \"Nike mentioned\", \"Sponsored post detected\" |\n| **Campaign Performance** | Total Reach, Total Engagement, Average Engagement, Performance Score | Overall campaign effectiveness | \"50K total reach\", \"85.5 performance score\" |\n| **ROI Analysis** | Total Investment, Estimated Value, ROI Percentage, Cost per Engagement | Financial performance metrics | \"$2,500 investment\", \"125% ROI\" |\n\n## 🛠️ Setup Instructions\n\n**Estimated setup time: 20-25 minutes**\n\n### Prerequisites\n- n8n instance with community nodes enabled\n- ScrapeGraphAI API account and credentials\n- Instagram accounts to monitor (influencer usernames)\n- Campaign budget and cost data for ROI calculations\n\n### Step-by-Step Configuration\n\n#### 1. Install Community Nodes\n```bash\n# Install required community nodes\nnpm install n8n-nodes-scrapegraphai\n```\n\n#### 2. Configure ScrapeGraphAI Credentials\n- Navigate to Credentials in your n8n instance\n- Add new ScrapeGraphAI API credentials\n- Enter your API key from ScrapeGraphAI dashboard\n- Test the connection to ensure it's working\n\n#### 3. Set up Schedule Trigger\n- Configure the daily schedule (default: 9:00 AM UTC)\n- Adjust timezone to match your business hours\n- Set appropriate frequency for your monitoring needs\n\n#### 4. Configure Influencer Monitoring\n- Update the `websiteUrl` parameter with target influencer usernames\n- Customize the user prompt to extract specific profile data\n- Set up monitoring for multiple influencers if needed\n- Configure brand keywords for mention detection\n\n#### 5. Customize Brand Detection\n- Update brand keywords in the Brand Mention Detector node\n- Add sponsored content indicators (#ad, #sponsored, etc.)\n- Configure brand mention sensitivity levels\n- Set up competitor brand monitoring\n\n#### 6. Configure ROI Calculations\n- Update cost estimates in the Marketing ROI Calculator\n- Set value per engagement and reach metrics\n- Configure campaign management costs\n- Adjust ROI calculation parameters\n\n#### 7. Test and Validate\n- Run the workflow manually with test data\n- Verify all analysis steps complete successfully\n- Check data accuracy and calculation precision\n- Validate ROI calculations with actual campaign data\n\n## 🔄 Workflow Customization Options\n\n### Modify Monitoring Parameters\n- Adjust monitoring frequency (hourly, daily, weekly)\n- Add more social media platforms (TikTok, YouTube, etc.)\n- Customize engagement rate calculations\n- Modify content quality scoring algorithms\n\n### Extend Brand Detection\n- Add more sophisticated brand mention detection\n- Implement sentiment analysis for brand mentions\n- Include competitor brand monitoring\n- Add automated alert systems for brand mentions\n\n### Customize Performance Tracking\n- Modify performance tier thresholds\n- Add more detailed engagement metrics\n- Implement trend analysis and forecasting\n- Include audience demographic analysis\n\n### Output Customization\n- Add integration with marketing dashboards\n- Implement automated reporting systems\n- Create alert systems for performance drops\n- Add campaign comparison features\n\n## 📈 Use Cases\n\n- **Influencer Campaign Monitoring**: Track performance of influencer partnerships\n- **Brand Mention Detection**: Monitor brand mentions across influencer content\n- **ROI Analysis**: Calculate return on investment for marketing campaigns\n- **Competitive Intelligence**: Monitor competitor brand mentions\n- **Performance Optimization**: Identify top-performing content and influencers\n- **Campaign Reporting**: Generate automated reports for stakeholders\n\n## 🚨 Important Notes\n\n- Respect Instagram's terms of service and rate limits\n- Implement appropriate delays between requests to avoid rate limiting\n- Regularly review and update brand keywords and detection parameters\n- Monitor API usage to manage costs effectively\n- Keep your credentials secure and rotate them regularly\n- Consider data privacy and compliance requirements\n- Ensure accurate cost data for ROI calculations\n\n## 🔧 Troubleshooting\n\n**Common Issues:**\n- ScrapeGraphAI connection errors: Verify API key and account status\n- Instagram access issues: Check account accessibility and rate limits\n- Brand detection false positives: Adjust keyword sensitivity\n- ROI calculation errors: Verify cost and value parameters\n- Schedule trigger failures: Check timezone and cron expression\n- Data parsing errors: Review the Code node's JavaScript logic\n\n**Support Resources:**\n- ScrapeGraphAI documentation and API reference\n- n8n community forums for workflow assistance\n- Instagram API documentation and best practices\n- Influencer marketing analytics best practices\n- ROI calculation methodologies and standards\n",
    "workflow": {
      "id": "VhEwspDqzu7ssFVE",
      "meta": {
        "instanceId": "f4b0efaa33080e7774e0d9285c40c7abcd2c6f7cf1a8b901fa7106170dd4cda3",
        "templateCredsSetupCompleted": true
      },
      "name": "My workflow 2",
      "tags": [
        {
          "id": "DxXGubfBzRKh6L8T",
          "name": "Revenue Optimization",
          "createdAt": "2025-07-25T16:24:30.370Z",
          "updatedAt": "2025-07-25T16:24:30.370Z"
        },
        {
          "id": "IxkcJ2IpYIxivoHV",
          "name": "Content Strategy",
          "createdAt": "2025-07-25T12:57:37.677Z",
          "updatedAt": "2025-07-25T12:57:37.677Z"
        },
        {
          "id": "PAKIJ2Mm9EvRcR3u",
          "name": "Trend Monitoring",
          "createdAt": "2025-07-25T12:57:37.670Z",
          "updatedAt": "2025-07-25T12:57:37.670Z"
        },
        {
          "id": "YtfXmaZk44MYedPO",
          "name": "Dynamic Pricing",
          "createdAt": "2025-07-25T16:24:30.369Z",
          "updatedAt": "2025-07-25T16:24:30.369Z"
        },
        {
          "id": "wJ30mjhtrposO8Qt",
          "name": "Simple RAG",
          "createdAt": "2025-07-28T12:55:14.424Z",
          "updatedAt": "2025-07-28T12:55:14.424Z"
        }
      ],
      "nodes": [
        {
          "id": "78600a1a-24f3-4383-a46c-cfedfdb8dc5d",
          "name": "Daily Schedule Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            -768,
            128
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "field": "cronExpression",
                  "expression": "0 9 * * *"
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "3cbdaef1-0878-4dac-8bb1-c5d075d68b79",
          "name": "ScrapeGraphAI - Influencer Profiles",
          "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
          "position": [
            -400,
            288
          ],
          "parameters": {
            "userPrompt": "Extract influencer profile data and recent posts. Use this schema: { \"profile\": { \"username\": \"@influencer\", \"followers\": \"100K\", \"following\": \"500\", \"posts_count\": \"1,234\", \"bio\": \"Lifestyle blogger\", \"verified\": true }, \"recent_posts\": [{ \"post_url\": \"https://instagram.com/p/...\", \"caption\": \"Post caption text\", \"likes\": \"5,000\", \"comments\": \"150\", \"date\": \"2024-01-15\", \"hashtags\": [\"#lifestyle\", \"#brand\"], \"mentions\": [\"@brandname\"] }] }",
            "websiteUrl": "https://www.instagram.com/{{ $json.influencer_username }}"
          },
          "typeVersion": 1
        },
        {
          "id": "1554c1d6-cd26-4cfe-8272-ac02d9041701",
          "name": "Content Analyzer",
          "type": "n8n-nodes-base.code",
          "position": [
            -64,
            240
          ],
          "parameters": {
            "jsCode": "// Content Analyzer - Analyzes post content for engagement and quality\nconst inputData = $input.all()[0].json;\nconst profile = inputData.result.profile || {};\nconst posts = inputData.result.recent_posts || [];\n\nfunction analyzeContent(posts) {\n  return posts.map(post => {\n    const likes = parseInt(post.likes?.replace(/[^0-9]/g, '') || '0');\n    const comments = parseInt(post.comments?.replace(/[^0-9]/g, '') || '0');\n    const engagementRate = likes > 0 ? ((likes + comments) / likes * 100).toFixed(2) : 0;\n    \n    // Content quality scoring based on caption length, hashtags, mentions\n    const captionScore = post.caption ? Math.min(post.caption.length / 100, 10) : 0;\n    const hashtagScore = post.hashtags ? Math.min(post.hashtags.length * 2, 10) : 0;\n    const mentionScore = post.mentions ? post.mentions.length * 5 : 0;\n    const qualityScore = (captionScore + hashtagScore + mentionScore) / 3;\n    \n    return {\n      ...post,\n      engagement_rate: `${engagementRate}%`,\n      content_quality_score: qualityScore.toFixed(1),\n      performance_tier: engagementRate > 5 ? 'High' : engagementRate > 2 ? 'Medium' : 'Low'\n    };\n  });\n}\n\nconst analyzedPosts = analyzeContent(posts);\nconst avgEngagement = analyzedPosts.length > 0 ? \n  (analyzedPosts.reduce((sum, post) => sum + parseFloat(post.engagement_rate), 0) / analyzedPosts.length).toFixed(2) : 0;\n\nreturn [{\n  json: {\n    profile,\n    analyzed_posts: analyzedPosts,\n    analytics: {\n      total_posts: posts.length,\n      average_engagement: `${avgEngagement}%`,\n      high_performing_posts: analyzedPosts.filter(p => p.performance_tier === 'High').length,\n      analysis_date: new Date().toISOString()\n    }\n  }\n}];"
          },
          "typeVersion": 2
        },
        {
          "id": "e006e58a-fd2d-4b93-a8c7-51d0e490fb6f",
          "name": "Brand Mention Detector",
          "type": "n8n-nodes-base.code",
          "position": [
            288,
            256
          ],
          "parameters": {
            "jsCode": "// Brand Mention Detector - Identifies brand mentions and sponsored content\nconst inputData = $input.all()[0].json;\nconst posts = inputData.analyzed_posts || [];\nconst profile = inputData.profile || {};\n\n// Define brand keywords to monitor\nconst brandKeywords = [\n  'nike', 'adidas', 'coca-cola', 'pepsi', 'apple', 'samsung',\n  'sponsored', '#ad', '#sponsored', '#partnership', '#collab'\n];\n\nfunction detectBrandMentions(posts) {\n  return posts.map(post => {\n    const caption = (post.caption || '').toLowerCase();\n    const hashtags = (post.hashtags || []).map(tag => tag.toLowerCase());\n    const mentions = post.mentions || [];\n    \n    // Detect brand mentions in caption\n    const brandMentionsInCaption = brandKeywords.filter(brand => \n      caption.includes(brand.toLowerCase())\n    );\n    \n    // Detect sponsored content indicators\n    const sponsoredIndicators = ['#ad', '#sponsored', '#partnership', '#collab'];\n    const isSponsored = sponsoredIndicators.some(indicator => \n      caption.includes(indicator) || hashtags.includes(indicator)\n    );\n    \n    // Extract mentioned brands from @ mentions\n    const mentionedBrands = mentions.filter(mention => \n      brandKeywords.some(brand => mention.toLowerCase().includes(brand))\n    );\n    \n    return {\n      ...post,\n      brand_mentions: brandMentionsInCaption,\n      mentioned_brands: mentionedBrands,\n      is_sponsored_content: isSponsored,\n      brand_mention_count: brandMentionsInCaption.length + mentionedBrands.length\n    };\n  });\n}\n\nconst postsWithBrands = detectBrandMentions(posts);\nconst sponsoredPosts = postsWithBrands.filter(post => post.is_sponsored_content);\nconst totalBrandMentions = postsWithBrands.reduce((sum, post) => sum + post.brand_mention_count, 0);\n\nreturn [{\n  json: {\n    profile,\n    analyzed_posts: postsWithBrands,\n    brand_analytics: {\n      total_brand_mentions: totalBrandMentions,\n      sponsored_posts_count: sponsoredPosts.length,\n      sponsored_content_ratio: posts.length > 0 ? (sponsoredPosts.length / posts.length * 100).toFixed(1) + '%' : '0%',\n      top_mentioned_brands: [...new Set(postsWithBrands.flatMap(post => post.brand_mentions))],\n      detection_date: new Date().toISOString()\n    }\n  }\n}];"
          },
          "typeVersion": 2
        },
        {
          "id": "307a73f8-1c13-407b-971b-59b7de61bd59",
          "name": "Campaign Performance Tracker",
          "type": "n8n-nodes-base.code",
          "position": [
            640,
            240
          ],
          "parameters": {
            "jsCode": "// Campaign Performance Tracker - Tracks campaign metrics and KPIs\nconst inputData = $input.all()[0].json;\nconst posts = inputData.analyzed_posts || [];\nconst profile = inputData.profile || {};\nconst brandAnalytics = inputData.brand_analytics || {};\n\nfunction trackCampaignPerformance(posts, profile) {\n  const sponsoredPosts = posts.filter(post => post.is_sponsored_content);\n  \n  // Calculate campaign metrics\n  const totalReach = parseInt(profile.followers?.replace(/[^0-9]/g, '') || '0');\n  const totalEngagement = posts.reduce((sum, post) => {\n    const likes = parseInt(post.likes?.replace(/[^0-9]/g, '') || '0');\n    const comments = parseInt(post.comments?.replace(/[^0-9]/g, '') || '0');\n    return sum + likes + comments;\n  }, 0);\n  \n  const sponsoredEngagement = sponsoredPosts.reduce((sum, post) => {\n    const likes = parseInt(post.likes?.replace(/[^0-9]/g, '') || '0');\n    const comments = parseInt(post.comments?.replace(/[^0-9]/g, '') || '0');\n    return sum + likes + comments;\n  }, 0);\n  \n  // Performance metrics\n  const avgEngagementPerPost = posts.length > 0 ? (totalEngagement / posts.length).toFixed(0) : 0;\n  const sponsoredAvgEngagement = sponsoredPosts.length > 0 ? (sponsoredEngagement / sponsoredPosts.length).toFixed(0) : 0;\n  const engagementRate = totalReach > 0 ? (totalEngagement / totalReach * 100).toFixed(2) : 0;\n  \n  // Campaign performance score (0-100)\n  const performanceScore = Math.min(\n    (parseFloat(engagementRate) * 10) + \n    (sponsoredPosts.length * 5) + \n    (brandAnalytics.total_brand_mentions * 2), \n    100\n  ).toFixed(1);\n  \n  return {\n    campaign_metrics: {\n      total_posts: posts.length,\n      sponsored_posts: sponsoredPosts.length,\n      total_reach: totalReach.toLocaleString(),\n      total_engagement: totalEngagement.toLocaleString(),\n      avg_engagement_per_post: avgEngagementPerPost,\n      sponsored_avg_engagement: sponsoredAvgEngagement,\n      overall_engagement_rate: `${engagementRate}%`,\n      campaign_performance_score: performanceScore\n    },\n    top_performing_campaigns: sponsoredPosts\n      .sort((a, b) => parseInt(b.likes) - parseInt(a.likes))\n      .slice(0, 3)\n      .map(post => ({\n        post_url: post.post_url,\n        brand_mentions: post.brand_mentions,\n        engagement: `${post.likes} likes, ${post.comments} comments`,\n        performance_tier: post.performance_tier\n      }))\n  };\n}\n\nconst campaignData = trackCampaignPerformance(posts, profile);\n\nreturn [{\n  json: {\n    profile,\n    analyzed_posts: posts,\n    brand_analytics: brandAnalytics,\n    ...campaignData,\n    tracking_date: new Date().toISOString()\n  }\n}];"
          },
          "typeVersion": 2
        },
        {
          "id": "20dd7a96-c6cb-4924-ba7e-2a8d7f0f1b99",
          "name": "Marketing ROI Calculator",
          "type": "n8n-nodes-base.code",
          "position": [
            976,
            208
          ],
          "parameters": {
            "jsCode": "// Marketing ROI Calculator - Calculates return on investment for campaigns\nconst inputData = $input.all()[0].json;\nconst campaignMetrics = inputData.campaign_metrics || {};\nconst profile = inputData.profile || {};\nconst sponsoredPosts = inputData.analyzed_posts?.filter(post => post.is_sponsored_content) || [];\n\n// Estimated costs and values (these would typically come from your campaign data)\nconst estimatedCosts = {\n  cost_per_sponsored_post: 500, // Average cost per sponsored post\n  campaign_management_cost: 200, // Monthly management cost\n  content_creation_cost: 100 // Per post content creation\n};\n\nfunction calculateROI(metrics, posts, costs) {\n  // Calculate total investment\n  const totalSponsoredPosts = parseInt(metrics.sponsored_posts || 0);\n  const contentCosts = totalSponsoredPosts * costs.cost_per_sponsored_post;\n  const managementCosts = costs.campaign_management_cost;\n  const creationCosts = totalSponsoredPosts * costs.content_creation_cost;\n  const totalInvestment = contentCosts + managementCosts + creationCosts;\n  \n  // Calculate estimated value/return\n  const totalEngagement = parseInt(metrics.total_engagement?.replace(/[^0-9]/g, '') || '0');\n  const reach = parseInt(metrics.total_reach?.replace(/[^0-9]/g, '') || '0');\n  \n  // Estimated value calculations\n  const valuePerEngagement = 0.05; // $0.05 per engagement\n  const valuePerReach = 0.001; // $0.001 per reach\n  const engagementValue = totalEngagement * valuePerEngagement;\n  const reachValue = reach * valuePerReach;\n  const totalEstimatedValue = engagementValue + reachValue;\n  \n  // ROI calculation\n  const roi = totalInvestment > 0 ? ((totalEstimatedValue - totalInvestment) / totalInvestment * 100).toFixed(1) : 0;\n  const costPerEngagement = totalEngagement > 0 ? (totalInvestment / totalEngagement).toFixed(2) : 0;\n  const costPerReach = reach > 0 ? (totalInvestment / reach * 1000).toFixed(2) : 0; // CPM\n  \n  return {\n    roi_analysis: {\n      total_investment: `$${totalInvestment.toLocaleString()}`,\n      estimated_value: `$${totalEstimatedValue.toLocaleString()}`,\n      roi_percentage: `${roi}%`,\n      cost_per_engagement: `$${costPerEngagement}`,\n      cost_per_thousand_reach: `$${costPerReach}`,\n      investment_efficiency: roi > 0 ? 'Positive' : 'Needs Optimization',\n      payback_period: roi > 0 ? 'Immediate' : 'Extended'\n    },\n    cost_breakdown: {\n      sponsored_content_costs: `$${contentCosts.toLocaleString()}`,\n      campaign_management_costs: `$${managementCosts.toLocaleString()}`,\n      content_creation_costs: `$${creationCosts.toLocaleString()}`,\n      total_costs: `$${totalInvestment.toLocaleString()}`\n    },\n    recommendations: [\n      roi > 50 ? \"Excellent ROI - Scale up campaigns\" : \n      roi > 0 ? \"Positive ROI - Continue with optimizations\" : \n      \"Negative ROI - Review targeting and content strategy\",\n      totalSponsoredPosts > 0 ? `Focus on top-performing content types` : \"Increase sponsored content volume\",\n      parseFloat(costPerEngagement) > 1 ? \"Optimize for lower cost per engagement\" : \"Good cost efficiency\"\n    ]\n  };\n}\n\nconst roiData = calculateROI(campaignMetrics, sponsoredPosts, estimatedCosts);\n\n// Create final report\nconst finalReport = {\n  influencer_profile: {\n    username: profile.username,\n    followers: profile.followers,\n    verification_status: profile.verified ? 'Verified' : 'Not Verified'\n  },\n  campaign_summary: campaignMetrics,\n  ...roiData,\n  report_generated: new Date().toISOString(),\n  next_review_date: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString() // 7 days from now\n};\n\nreturn [{\n  json: finalReport\n}];"
          },
          "typeVersion": 2
        },
        {
          "id": "29cc090f-82f1-4160-bbdf-72175bdcea72",
          "name": "Trigger Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -880,
            -336
          ],
          "parameters": {
            "color": 4,
            "width": 350,
            "height": 784,
            "content": "# Step 1: Daily Schedule Trigger ⏰\n\nAutomatically runs the workflow every day at 9:00 AM to monitor influencer campaigns.\n\n## Configuration Options\n- **Frequency**: Daily at 9:00 AM\n- **Timezone**: UTC (adjust as needed)\n- **Weekends**: Included (can be modified)\n\n## Use Cases\n- Daily campaign monitoring\n- Regular performance tracking\n- Automated reporting schedule"
          },
          "typeVersion": 1
        },
        {
          "id": "a1b3ad21-861e-4005-bee2-235853c1ddb5",
          "name": "Scraper Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -528,
            -336
          ],
          "parameters": {
            "color": 5,
            "width": 350,
            "height": 784,
            "content": "# Step 2: ScrapeGraphAI - Influencer Profiles 🤖\n\nScrapes influencer social media profiles to extract key data and recent posts.\n\n## What it extracts\n- Profile statistics (followers, posts)\n- Recent post content and engagement\n- Bio information and verification status\n- Post captions, hashtags, and mentions\n\n## Supported Platforms\n- Instagram profiles\n- TikTok accounts\n- YouTube channels"
          },
          "typeVersion": 1
        },
        {
          "id": "ebeea18f-631c-42ee-bdf4-a377fa7a93e8",
          "name": "Analyzer Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -176,
            -336
          ],
          "parameters": {
            "color": 6,
            "width": 350,
            "height": 784,
            "content": "# Step 3: Content Analyzer 📊\n\nAnalyzes scraped content for engagement metrics and quality scoring.\n\n## Analysis Features\n- **Engagement Rate**: Likes + comments ratio\n- **Content Quality Score**: Based on caption, hashtags\n- **Performance Tiers**: High/Medium/Low classification\n- **Average Metrics**: Across all posts\n\n## Output\n- Detailed post analytics\n- Performance benchmarks\n- Content recommendations"
          },
          "typeVersion": 1
        },
        {
          "id": "012494c9-de52-4dbb-b083-63e8944ffc09",
          "name": "Brand Detector Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            176,
            -336
          ],
          "parameters": {
            "color": 7,
            "width": 350,
            "height": 784,
            "content": "# Step 4: Brand Mention Detector 🏷️\n\nIdentifies brand mentions and sponsored content across influencer posts.\n\n## Detection Capabilities\n- **Brand Keywords**: Nike, Adidas, Apple, etc.\n- **Sponsored Indicators**: #ad, #sponsored, #partnership\n- **@ Mentions**: Brand account mentions\n- **Hashtag Analysis**: Brand-related tags\n\n## Metrics Tracked\n- Total brand mentions\n- Sponsored content ratio\n- Top mentioned brands"
          },
          "typeVersion": 1
        },
        {
          "id": "850a0774-631b-42a6-95cd-67d970ac3f54",
          "name": "Performance Tracker Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            528,
            -336
          ],
          "parameters": {
            "width": 350,
            "height": 784,
            "content": "# Step 5: Campaign Performance Tracker 📈\n\nTracks and analyzes overall campaign performance metrics.\n\n## Key Metrics\n- **Reach**: Total follower count\n- **Engagement**: Total likes + comments\n- **Campaign Score**: 0-100 performance rating\n- **Top Campaigns**: Best performing sponsored posts\n\n## Performance Analysis\n- Sponsored vs organic content comparison\n- Engagement rate calculations\n- Campaign effectiveness scoring"
          },
          "typeVersion": 1
        },
        {
          "id": "cd8888cf-691a-43ae-8642-6b405d91b6ab",
          "name": "ROI Calculator Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            880,
            -336
          ],
          "parameters": {
            "color": 2,
            "width": 350,
            "height": 784,
            "content": "# Step 6: Marketing ROI Calculator 💰\n\nCalculates return on investment for influencer marketing campaigns.\n\n## ROI Calculations\n- **Total Investment**: Content + management + creation costs\n- **Estimated Value**: Based on engagement and reach\n- **ROI Percentage**: (Value - Investment) / Investment\n- **Cost Efficiency**: Cost per engagement/reach\n\n## Business Intelligence\n- Investment recommendations\n- Performance optimization suggestions\n- Campaign scaling insights"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "99ba7a8d-2728-4a46-a766-a6aa6abf738c",
      "connections": {
        "Content Analyzer": {
          "main": [
            [
              {
                "node": "Brand Mention Detector",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Brand Mention Detector": {
          "main": [
            [
              {
                "node": "Campaign Performance Tracker",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Daily Schedule Trigger": {
          "main": [
            [
              {
                "node": "ScrapeGraphAI - Influencer Profiles",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Campaign Performance Tracker": {
          "main": [
            [
              {
                "node": "Marketing ROI Calculator",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "ScrapeGraphAI - Influencer Profiles": {
          "main": [
            [
              {
                "node": "Content Analyzer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 12,
      "nodeTypes": {
        "n8n-nodes-base.code": {
          "count": 4
        },
        "n8n-nodes-base.stickyNote": {
          "count": 6
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "n8n-nodes-scrapegraphai.scrapegraphAi": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "vinci-king-01",
      "username": "vinci-king-01",
      "bio": "",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/marco-vinciguerra-7ba365242/"
      ],
      "avatar": "https://gravatar.com/avatar/d939eeef03a5fcb5df08bee8196f12ccb248c38209487414e419032004f0c014?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 32,
        "name": "Market Research"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}