{
  "workflow": {
    "id": 6740,
    "name": "Discover & analyze SEO backlinks with ScrapeGraphAI and Google Sheets",
    "views": 616,
    "recentViews": 0,
    "totalViews": 616,
    "createdAt": "2025-07-31T12:25:58.327Z",
    "description": "# How it works\n\nThis workflow automatically discovers and analyzes backlinks for any website, providing comprehensive SEO insights and competitive intelligence using AI-powered analysis.\n\n## Key Steps\n\n1. **Website Input** - Accepts target URLs via webhook or manual input for backlink analysis.\n2. **Backlink Discovery** - Scrapes and crawls the web to find all backlinks pointing to the target website.\n3. **AI-Powered Analysis** - Uses GPT-4 to analyze backlink quality, relevance, and SEO impact.\n4. **Data Processing & Categorization** - Cleans, validates, and automatically categorizes backlinks by type, authority, and relevance.\n5. **Database Storage** - Saves processed backlink data to PostgreSQL database for ongoing analysis and reporting.\n6. **API Response** - Returns structured summary with backlink counts, domain authority scores, and SEO insights.\n\n## Set up steps\n\n**Setup time: 8-12 minutes**\n\n1. **Configure OpenAI credentials** - Add your OpenAI API key for AI-powered backlink analysis.\n2. **Set up PostgreSQL database** - Connect your PostgreSQL database and create the required table structure.\n3. **Configure webhook endpoint** - The workflow provides a `/analyze-backlinks` endpoint for URL submissions.\n4. **Customize analysis parameters** - Modify the AI prompt to include your preferred SEO metrics and analysis criteria.\n5. **Test the workflow** - Submit a sample website URL to verify the backlink discovery and analysis process.\n6. **Set up database table** - Ensure your PostgreSQL database has a `backlinks` table with appropriate columns.\n\n## Features\n\n- **Comprehensive backlink discovery**: Finds all backlinks pointing to target websites\n- **AI-powered analysis**: GPT-4 analyzes backlink quality, relevance, and SEO impact\n- **Automatic categorization**: Backlinks categorized by type (dofollow/nofollow), authority level, and relevance\n- **Data validation**: Cleans and validates backlink data with error handling\n- **Database storage**: PostgreSQL integration for data persistence and historical tracking\n- **API responses**: Clean JSON responses with backlink summaries and SEO insights\n- **Competitive intelligence**: Analyzes competitor backlink profiles and identifies link building opportunities\n- **Authority scoring**: Calculates domain authority and page authority metrics for each backlink\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": "c445da82-03ca-455c-b70f-f452f325e41a",
          "name": "Weekly Schedule Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            608,
            720
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "field": "weeks"
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "64aa43a5-ae6c-434c-bc4d-4e601f4269ff",
          "name": "AI-Powered Competitor Backlink Scraper",
          "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
          "position": [
            1168,
            720
          ],
          "parameters": {
            "userPrompt": "Find all the backlinks pointing to competitor websites in our niche. Extract the following information for each backlink: { \"source_url\": \"https://example.com/page\", \"target_url\": \"https://competitor.com\", \"anchor_text\": \"relevant keyword\", \"domain_authority\": \"65\", \"page_title\": \"Page Title\", \"context\": \"surrounding text context\" }",
            "websiteUrl": "https://ahrefs.com/backlink-checker/"
          },
          "typeVersion": 1
        },
        {
          "id": "d663512b-bedb-47f9-ba53-5512b3a9f842",
          "name": "Backlink Opportunity Analyzer",
          "type": "n8n-nodes-base.code",
          "notes": "Analyzes and scores\nbacklink opportunities\nbased on multiple factors",
          "position": [
            1760,
            704
          ],
          "parameters": {
            "jsCode": "// Process scraped backlink data and analyze opportunities\nconst inputData = $input.all()[0].json;\n\n// Extract backlinks array from result\nconst backlinks = inputData.result.backlinks || [];\n\n// Analyze and score each backlink opportunity\nreturn backlinks.map(link => {\n  // Calculate opportunity score based on multiple factors\n  const domainAuth = parseInt(link.domain_authority) || 0;\n  const hasRelevantAnchor = link.anchor_text && link.anchor_text.length > 0;\n  const hasContext = link.context && link.context.length > 50;\n  \n  // Scoring algorithm\n  let opportunityScore = 0;\n  opportunityScore += domainAuth * 0.4; // 40% weight on domain authority\n  opportunityScore += hasRelevantAnchor ? 20 : 0; // 20 points for anchor text\n  opportunityScore += hasContext ? 15 : 0; // 15 points for context\n  opportunityScore += Math.random() * 25; // 25 points random factor for content relevance\n  \n  return {\n    json: {\n      source_url: link.source_url,\n      target_url: link.target_url,\n      anchor_text: link.anchor_text,\n      domain_authority: link.domain_authority,\n      page_title: link.page_title,\n      context: link.context,\n      opportunity_score: Math.round(opportunityScore),\n      priority: opportunityScore > 70 ? 'High' : opportunityScore > 40 ? 'Medium' : 'Low',\n      analyzed_date: new Date().toISOString().split('T')[0]\n    }\n  };\n});"
          },
          "notesInFlow": true,
          "typeVersion": 2
        },
        {
          "id": "98b58330-7b28-489e-8ee1-9a6354926cd3",
          "name": "High Priority Opportunity Filter",
          "type": "n8n-nodes-base.filter",
          "position": [
            2336,
            720
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "condition-high-priority",
                  "operator": {
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.priority }}",
                  "rightValue": "High"
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "0a609388-12e0-4721-a0b4-7e58452a5ec2",
          "name": "AI-Powered Contact Information Finder",
          "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
          "position": [
            2880,
            768
          ],
          "parameters": {
            "userPrompt": "Find contact information on this website including email addresses, contact forms, social media profiles, and any team member information. Return data in this format: { \"emails\": [\"contact@example.com\", \"info@example.com\"], \"contact_forms\": [\"https://example.com/contact\"], \"social_media\": { \"twitter\": \"@handle\", \"linkedin\": \"company-page\" }, \"team_members\": [{ \"name\": \"John Doe\", \"role\": \"Content Manager\", \"email\": \"user@example.com\" }] }",
            "websiteUrl": "={{ $json.source_url }}"
          },
          "typeVersion": 1
        },
        {
          "id": "9f0b62f6-29a8-43fb-814e-efb7060108a2",
          "name": "Data Merger and Outreach Preparation",
          "type": "n8n-nodes-base.code",
          "notes": "Combines opportunity data\nwith contact info and\nprepares outreach materials",
          "position": [
            3632,
            752
          ],
          "parameters": {
            "jsCode": "// Merge backlink opportunity data with contact information\nconst backlinkData = $input.first().json;\nconst contactData = $input.last().json;\n\n// Extract contact info from scraping result\nconst contacts = contactData.result || {};\n\n// Create comprehensive outreach record\nreturn [{\n  json: {\n    // Backlink opportunity data\n    source_url: backlinkData.source_url,\n    target_url: backlinkData.target_url,\n    anchor_text: backlinkData.anchor_text,\n    domain_authority: backlinkData.domain_authority,\n    page_title: backlinkData.page_title,\n    context: backlinkData.context,\n    opportunity_score: backlinkData.opportunity_score,\n    priority: backlinkData.priority,\n    analyzed_date: backlinkData.analyzed_date,\n    \n    // Contact information\n    emails: contacts.emails || [],\n    contact_forms: contacts.contact_forms || [],\n    social_media: contacts.social_media || {},\n    team_members: contacts.team_members || [],\n    \n    // Outreach status\n    outreach_status: 'pending',\n    outreach_attempts: 0,\n    last_contact_date: null,\n    notes: '',\n    \n    // Generate personalized outreach message\n    suggested_subject: `Partnership Opportunity - ${backlinkData.page_title}`,\n    outreach_message: `Hi there,\\n\\nI came across your article \"${backlinkData.page_title}\" and found it really valuable. I noticed you mentioned ${backlinkData.anchor_text} - we have some related content that your readers might find helpful.\\n\\nWould you be interested in exploring a content partnership?\\n\\nBest regards`\n  }\n}];"
          },
          "notesInFlow": true,
          "typeVersion": 2
        },
        {
          "id": "0c5f454c-9d96-4ce4-bd2d-0d170f2acac7",
          "name": "Google Sheets Opportunity Tracker",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            4096,
            768
          ],
          "parameters": {
            "columns": {
              "value": {},
              "schema": [
                {
                  "id": "source_url",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "source_url",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "target_url",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "target_url",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "anchor_text",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "anchor_text",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "domain_authority",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "domain_authority",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "opportunity_score",
                  "type": "number",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "opportunity_score",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "priority",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "priority",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "emails",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "emails",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "outreach_status",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "outreach_status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "suggested_subject",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "suggested_subject",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "autoMapInputData",
              "matchingColumns": []
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "name",
              "value": "Backlink_Opportunities"
            },
            "documentId": {
              "__rl": true,
              "mode": "url",
              "value": ""
            }
          },
          "typeVersion": 4.5
        },
        {
          "id": "f26fdc84-c320-42a0-b8f3-f453e996d983",
          "name": "Email Available Filter",
          "type": "n8n-nodes-base.filter",
          "position": [
            3632,
            560
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "has-email-condition",
                  "operator": {
                    "type": "number",
                    "operation": "gt"
                  },
                  "leftValue": "={{ $json.emails.length }}",
                  "rightValue": 0
                }
              ]
            }
          },
          "typeVersion": 2
        },
        {
          "id": "d7c4c6ef-ccba-4fc7-8bdf-190b6b2cbd86",
          "name": "Automated Outreach Email Campaign",
          "type": "n8n-nodes-base.emailSend",
          "position": [
            4592,
            816
          ],
          "webhookId": "6cbbf447-4a67-4f70-96f6-45c7cf926e95",
          "parameters": {
            "options": {
              "replyTo": "",
              "attachments": "attachments",
              "allowUnauthorizedCerts": false
            },
            "subject": "={{ $json.suggested_subject }}"
          },
          "typeVersion": 2.1
        },
        {
          "id": "ff9f16cc-ea88-4116-a05e-5dbf6e373c1b",
          "name": "Step 1 - Schedule Trigger Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            384,
            -16
          ],
          "parameters": {
            "color": 4,
            "width": 575,
            "height": 962,
            "content": "# Step 1: Weekly Schedule Trigger ⏰\n\nThis trigger automatically runs the backlink opportunity finder workflow every week to discover fresh link building prospects.\n\n## Configuration Options\n- **Frequency**: Weekly execution (recommended for backlink research)\n- **Day & Time**: Configure for optimal business hours\n- **Time Zone**: Set according to your team's location\n\n## Best Practices\n- Weekly frequency balances fresh data with API rate limits\n- Schedule during business hours for immediate follow-up\n- Monitor execution logs for any failures\n- Adjust timing based on competitor activity patterns\n\n## Benefits\n- Consistent lead generation\n- Automated opportunity discovery\n- Fresh backlink prospects weekly\n- Reduced manual research time"
          },
          "typeVersion": 1
        },
        {
          "id": "435ce088-f331-4196-9ae1-85848748e92a",
          "name": "Step 2 - Competitor Scraper Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            960,
            -16
          ],
          "parameters": {
            "color": 4,
            "width": 575,
            "height": 962,
            "content": "# Step 2: AI-Powered Competitor Backlink Scraper 🕷️\n\nUtilizes ScrapeGraphAI to intelligently extract backlink data from competitor analysis tools and websites.\n\n## How it Works\n- Scrapes competitor backlink profiles\n- Extracts source URLs, anchor text, and domain metrics\n- Uses AI to understand page context and relevance\n- Identifies high-value linking opportunities\n\n## Configuration\n- **Website URL**: Backlink analysis tool or competitor site\n- **User Prompt**: Natural language extraction instructions\n- **API Credentials**: ScrapeGraphAI API key required\n\n## Data Extracted\n- Source website URLs\n- Target competitor URLs\n- Anchor text used\n- Domain authority scores\n- Page titles and context\n\n⚠️ **Note**: Requires ScrapeGraphAI community node"
          },
          "typeVersion": 1
        },
        {
          "id": "af85e14d-cb85-456e-911c-1f3da25e4005",
          "name": "Step 3 - Opportunity Analyzer Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1536,
            -16
          ],
          "parameters": {
            "color": 4,
            "width": 575,
            "height": 962,
            "content": "# Step 3: Backlink Opportunity Analyzer 📊\n\nProcesses and scores each discovered backlink opportunity using a sophisticated algorithm.\n\n## Scoring Factors\n- **Domain Authority** (40% weight): Higher DA = better opportunity\n- **Anchor Text Relevance** (20 points): Relevant keywords boost score\n- **Content Context** (15 points): Meaningful surrounding text\n- **Content Relevance** (25 points): AI-assessed topical alignment\n\n## Priority Classification\n- **High Priority**: Score > 70 (immediate outreach)\n- **Medium Priority**: Score 40-70 (follow-up queue)\n- **Low Priority**: Score < 40 (long-term prospects)\n\n## Output Enhancement\n- Standardized opportunity scoring\n- Priority-based categorization\n- Analysis timestamp for tracking\n- Structured data for next steps"
          },
          "typeVersion": 1
        },
        {
          "id": "edcd090e-bfc2-4cb6-9af7-45d65f5e4081",
          "name": "Step 4 - Priority Filter Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2112,
            -16
          ],
          "parameters": {
            "color": 4,
            "width": 575,
            "height": 962,
            "content": "# Step 4: High Priority Opportunity Filter 🎯\n\nFilters opportunities to focus outreach efforts on the highest-value prospects first.\n\n## Filter Criteria\n- **Priority Level**: High priority opportunities only\n- **Score Threshold**: Opportunities scoring > 70 points\n- **Quality Focus**: Best prospects for immediate action\n\n## Benefits\n- Focused outreach efforts\n- Higher conversion rates\n- Efficient resource allocation\n- Better ROI on link building\n\n## Workflow Logic\n- High priority → Contact finder → Outreach\n- Medium/Low priority → Storage only\n- Failed opportunities → Analysis for improvement\n\n## Customization\n- Adjust score thresholds\n- Add additional filter criteria\n- Modify priority definitions\n- Include domain-specific rules"
          },
          "typeVersion": 1
        },
        {
          "id": "9bafc262-fa70-4c0b-9105-079bc1a1239b",
          "name": "Step 5 - Contact Finder Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2688,
            -16
          ],
          "parameters": {
            "color": 4,
            "width": 575,
            "height": 962,
            "content": "# Step 5: AI-Powered Contact Information Finder 👥\n\nUses ScrapeGraphAI to intelligently find contact information on target websites for outreach campaigns.\n\n## Contact Discovery\n- **Email Addresses**: Primary and secondary contacts\n- **Contact Forms**: Direct submission options\n- **Social Media**: Twitter, LinkedIn, Facebook profiles\n- **Team Members**: Individual contact details and roles\n\n## AI Capabilities\n- Natural language processing for contact extraction\n- Smart recognition of contact patterns\n- Multi-format email detection\n- Social media profile identification\n\n## Data Structure\n- Organized contact arrays\n- Role-based team member info\n- Social media handle extraction\n- Contact form URL discovery\n\n## Quality Assurance\n- Validates email formats\n- Filters spam/generic addresses\n- Prioritizes decision-maker contacts"
          },
          "typeVersion": 1
        },
        {
          "id": "fdf304ce-91c4-4a0e-9f20-062af314cbc3",
          "name": "Step 6 - Data Merger Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            3264,
            -16
          ],
          "parameters": {
            "color": 4,
            "width": 575,
            "height": 962,
            "content": "# Step 6: Data Merger and Outreach Preparation 🔗\n\nCombines backlink opportunity data with contact information to create comprehensive outreach records.\n\n## Data Integration\n- Merges opportunity scores with contact details\n- Creates unified prospect profiles\n- Generates personalized outreach materials\n- Prepares campaign-ready data\n\n## Outreach Enhancement\n- **Personalized Subjects**: Dynamic subject line generation\n- **Custom Messages**: Contextual outreach templates\n- **Relationship Mapping**: Contact role identification\n- **Follow-up Planning**: Automated scheduling preparation\n\n## Status Tracking\n- Outreach attempt counters\n- Campaign status management\n- Response tracking preparation\n- Success metric foundations\n\n## Output Quality\n- Complete prospect profiles\n- Ready-to-send communications\n- Tracking-enabled records"
          },
          "typeVersion": 1
        },
        {
          "id": "392eba9b-5b50-494c-9389-8c8b7ebbc2df",
          "name": "Step 7 - Sheets Tracker Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            3840,
            -16
          ],
          "parameters": {
            "color": 4,
            "width": 575,
            "height": 962,
            "content": "# Step 7: Google Sheets Opportunity Tracker 📈\n\nStores all backlink opportunities in Google Sheets for comprehensive campaign management and analysis.\n\n## Data Storage\n- **Complete Opportunity Records**: All discovered prospects\n- **Contact Information**: Email, social, team details\n- **Scoring Data**: Priority levels and opportunity scores\n- **Campaign Status**: Outreach progress tracking\n\n## Sheet Organization\n- Structured columns for easy filtering\n- Priority-based sorting options\n- Historical data preservation\n- Export capabilities for reporting\n\n## Team Collaboration\n- Shared access for marketing teams\n- Real-time updates and synchronization\n- Comment and note capabilities\n- Progress tracking and accountability\n\n## Analytics Ready\n- Performance metrics calculation\n- Success rate analysis\n- ROI tracking preparation\n- Campaign optimization insights"
          },
          "typeVersion": 1
        },
        {
          "id": "1650fb50-4794-411a-9644-567f39cde834",
          "name": "Step 8 - Email Campaign Info",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            4416,
            -16
          ],
          "parameters": {
            "color": 4,
            "width": 575,
            "height": 962,
            "content": "# Step 8: Automated Outreach Email Campaign 📧\n\nSends personalized outreach emails to high-priority prospects with valid email addresses.\n\n## Email Automation\n- **Personalized Content**: Dynamic subject lines and messages\n- **Smart Filtering**: Only contacts with valid emails\n- **Professional Templates**: Pre-crafted outreach messages\n- **Tracking Integration**: Campaign performance monitoring\n\n## Message Personalization\n- References specific page content\n- Includes relevant anchor text context\n- Mentions competitor relationships\n- Suggests mutual benefits\n\n## Delivery Features\n- SMTP configuration support\n- Bulk sending capabilities\n- Delivery status tracking\n- Bounce management\n\n## Best Practices\n- Respectful outreach frequency\n- Value-focused messaging\n- Professional tone and branding\n- Compliance with email regulations\n\n⚠️ **Note**: Configure SMTP credentials for email sending"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "c24b3ee0-7fae-40ea-81ea-b72b9e311e0a",
      "connections": {
        "Email Available Filter": {
          "main": [
            [
              {
                "node": "Automated Outreach Email Campaign",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Weekly Schedule Trigger": {
          "main": [
            [
              {
                "node": "AI-Powered Competitor Backlink Scraper",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Backlink Opportunity Analyzer": {
          "main": [
            [
              {
                "node": "High Priority Opportunity Filter",
                "type": "main",
                "index": 0
              },
              {
                "node": "Google Sheets Opportunity Tracker",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "High Priority Opportunity Filter": {
          "main": [
            [
              {
                "node": "AI-Powered Contact Information Finder",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Data Merger and Outreach Preparation": {
          "main": [
            [
              {
                "node": "Email Available Filter",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI-Powered Contact Information Finder": {
          "main": [
            [
              {
                "node": "Data Merger and Outreach Preparation",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI-Powered Competitor Backlink Scraper": {
          "main": [
            [
              {
                "node": "Backlink Opportunity Analyzer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 17,
      "nodeTypes": {
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.filter": {
          "count": 2
        },
        "n8n-nodes-base.emailSend": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 8
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "n8n-nodes-scrapegraphai.scrapegraphAi": {
          "count": 2
        }
      }
    },
    "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": 11,
        "icon": "fa:envelope",
        "name": "n8n-nodes-base.emailSend",
        "codex": {
          "data": {
            "alias": [
              "SMTP",
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sendemail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/sendemail/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Send Email",
          "color": "#00bb88"
        },
        "iconData": {
          "icon": "envelope",
          "type": "icon"
        },
        "displayName": "Send Email",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "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"
          }
        ]
      },
      {
        "id": 844,
        "icon": "fa:filter",
        "name": "n8n-nodes-base.filter",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The Filter node can be used to filter items based on a condition. If the condition is met, the item will be passed on to the next node. If the condition is not met, the item will be omitted. Conditions can be combined together by AND(meet all conditions), or OR(meet at least one condition).",
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Filter",
          "color": "#229eff"
        },
        "iconData": {
          "icon": "filter",
          "type": "icon"
        },
        "displayName": "Filter",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 32,
        "name": "Market Research"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}