AutomationFlowsSlack & Telegram › Automate Sales Pipeline with Hubspot Crm, Scrapegraphai & Google Sheets…

Automate Sales Pipeline with Hubspot Crm, Scrapegraphai & Google Sheets…

Original n8n title: Automate Sales Pipeline with Hubspot Crm, Scrapegraphai & Google Sheets Dashboard

Byvinci-king-01 @vinci-king-01 on n8n.io

Sales managers and team leads Business development representatives Marketing teams managing lead generation CRM administrators and sales operations Account executives and sales representatives Sales enablement professionals Revenue operations (RevOps) teams

Cron / scheduled trigger★★★★☆ complexity22 nodesN8N Nodes ScrapegraphaiHubSpotSend EmailSlackGoogle Sheets
Slack & Telegram Trigger: Cron / scheduled Nodes: 22 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #6432 — we link there as the canonical source.

This workflow follows the Google Sheets → Slack recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Sales Pipeline Automation Dashboard",
  "tags": [
    {
      "id": "sales-automation",
      "name": "Sales Automation",
      "createdAt": "2024-01-15T10:00:00.000Z",
      "updatedAt": "2024-01-15T10:00:00.000Z"
    }
  ],
  "nodes": [
    {
      "id": "sales-pipeline-trigger",
      "name": "Automated Lead Monitor Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        400,
        800
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 2
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "crm-webhook-trigger",
      "name": "CRM New Lead Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        400,
        600
      ],
      "parameters": {
        "path": "new-lead-webhook",
        "options": {
          "noResponseBody": false
        },
        "httpMethod": "POST"
      },
      "typeVersion": 1.1
    },
    {
      "id": "crm-leads-scraper",
      "name": "AI CRM Leads Scraper",
      "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
      "position": [
        800,
        500
      ],
      "parameters": {
        "userPrompt": "Extract new leads from this CRM dashboard. Focus on lead information, contact details, and source data. Use this schema for response: { \"request_id\": \"unique_id\", \"status\": \"completed\", \"platform\": \"CRM System\", \"leads\": [{ \"lead_id\": \"LEAD-12345\", \"first_name\": \"John\", \"last_name\": \"Smith\", \"email\": \"user@example.com\", \"phone\": \"+1-555-0123\", \"company_name\": \"Acme Corp\", \"job_title\": \"Marketing Director\", \"lead_source\": \"Website Form\", \"campaign_source\": \"Google Ads\", \"lead_score\": null, \"status\": \"New\", \"created_date\": \"2024-01-15T10:30:00Z\", \"last_activity\": \"2024-01-15T10:30:00Z\", \"industry\": null, \"company_size\": null, \"annual_revenue\": null, \"website\": \"https://acmecorp.com\", \"linkedin_profile\": null, \"notes\": \"Interested in enterprise solution\", \"tags\": [\"enterprise\", \"marketing\"], \"assigned_sales_rep\": null, \"priority\": \"Medium\" }] }",
        "websiteUrl": "https://your-crm.com/leads/dashboard?status=new"
      },
      "credentials": {
        "scrapegraphAIApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "company-enrichment-scraper",
      "name": "AI Company Enrichment Scraper",
      "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
      "position": [
        800,
        700
      ],
      "parameters": {
        "userPrompt": "Extract detailed company information from this LinkedIn company page for sales intelligence. Focus on company size, industry, recent news, and key personnel. Use this schema: { \"request_id\": \"unique_id\", \"status\": \"completed\", \"platform\": \"LinkedIn\", \"company_data\": { \"company_name\": \"Acme Corp\", \"industry\": \"Technology\", \"company_size\": \"201-500 employees\", \"headquarters\": \"San Francisco, CA\", \"founded\": \"2010\", \"website\": \"https://acmecorp.com\", \"description\": \"Leading provider of innovative solutions\", \"specialties\": [\"Software\", \"AI\", \"Machine Learning\"], \"recent_posts\": [{ \"title\": \"Company expansion announcement\", \"date\": \"2024-01-10T00:00:00Z\", \"engagement\": 125 }], \"key_personnel\": [{ \"name\": \"Jane CEO\", \"title\": \"Chief Executive Officer\", \"linkedin_url\": \"https://linkedin.com/in/janeceo\" }], \"company_updates\": [\"Recently raised Series B funding\", \"Expanding to European market\"], \"tech_stack\": [\"Salesforce\", \"HubSpot\", \"Slack\"], \"competitors\": [\"Competitor1\", \"Competitor2\"] } }",
        "websiteUrl": "={{ 'https://www.linkedin.com/company/' + $json.company_name.toLowerCase().replace(/[^a-z0-9]/g, '-') }}"
      },
      "credentials": {
        "scrapegraphAIApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "financial-data-scraper",
      "name": "AI Financial Data Scraper",
      "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
      "position": [
        800,
        900
      ],
      "parameters": {
        "userPrompt": "Extract funding and financial information from this Crunchbase company profile for lead qualification. Use this schema: { \"request_id\": \"unique_id\", \"status\": \"completed\", \"platform\": \"Crunchbase\", \"financial_data\": { \"company_name\": \"Acme Corp\", \"total_funding\": \"$50M\", \"last_funding_round\": \"Series B\", \"last_funding_date\": \"2023-06-15T00:00:00Z\", \"funding_amount\": \"$25M\", \"valuation\": \"$200M\", \"investors\": [\"VC Fund 1\", \"Angel Investor\"], \"employee_count\": 350, \"growth_stage\": \"Growth\", \"revenue_estimate\": \"$10M-50M\", \"funding_history\": [{ \"round\": \"Series A\", \"amount\": \"$10M\", \"date\": \"2021-03-01\" }], \"acquisition_history\": [], \"ipo_status\": \"Private\", \"contact_info\": { \"email\": \"user@example.com\", \"phone\": \"+1-555-ACME\" } } }",
        "websiteUrl": "={{ 'https://www.crunchbase.com/organization/' + $json.company_name.toLowerCase().replace(/[^a-z0-9]/g, '-') }}"
      },
      "credentials": {
        "scrapegraphAIApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "lead-intelligence-processor",
      "name": "Lead Intelligence Processor",
      "type": "n8n-nodes-base.code",
      "position": [
        1200,
        700
      ],
      "parameters": {
        "jsCode": "// Advanced Sales Pipeline Automation & Lead Intelligence Processing\nconst inputData = $input.all();\nconst processedLeads = [];\n\n// Configuration for lead scoring and qualification\nconst salesConfig = {\n  leadScoringWeights: {\n    company_size: {\n      '1-10 employees': 10,\n      '11-50 employees': 25,\n      '51-200 employees': 40,\n      '201-500 employees': 60,\n      '501-1000 employees': 80,\n      '1000+ employees': 100\n    },\n    industry_fit: {\n      'Technology': 90,\n      'Software': 95,\n      'Financial Services': 85,\n      'Healthcare': 80,\n      'Manufacturing': 70,\n      'Retail': 60,\n      'Education': 50,\n      'Non-profit': 20\n    },\n    funding_stage: {\n      'Seed': 30,\n      'Series A': 50,\n      'Series B': 70,\n      'Series C+': 85,\n      'IPO': 90,\n      'Profitable': 95\n    },\n    lead_source: {\n      'Website Form': 60,\n      'Demo Request': 90,\n      'Webinar': 70,\n      'Content Download': 40,\n      'Referral': 85,\n      'Cold Outreach': 20,\n      'Trade Show': 75,\n      'Partner': 80\n    },\n    job_title: {\n      'CEO': 95, 'CTO': 90, 'VP': 85, 'Director': 75,\n      'Manager': 60, 'Coordinator': 40, 'Specialist': 50,\n      'Analyst': 45, 'Assistant': 25\n    }\n  },\n  idealCustomerProfile: {\n    min_employees: 50,\n    target_industries: ['Technology', 'Software', 'Financial Services'],\n    min_funding: 5000000, // $5M\n    target_titles: ['CEO', 'CTO', 'VP', 'Director'],\n    priority_sources: ['Demo Request', 'Referral', 'Website Form']\n  },\n  automationTriggers: {\n    high_score_threshold: 70,\n    enterprise_threshold: 85,\n    immediate_follow_up_threshold: 90\n  }\n};\n\n// Advanced lead scoring algorithm\nfunction calculateLeadScore(lead, companyData, financialData) {\n  let totalScore = 0;\n  const scoringDetails = [];\n  \n  // Company size scoring\n  const companySize = companyData?.company_size || lead.company_size || 'Unknown';\n  const companySizeScore = salesConfig.leadScoringWeights.company_size[companySize] || 15;\n  totalScore += companySizeScore;\n  scoringDetails.push({ factor: 'Company Size', value: companySize, score: companySizeScore });\n  \n  // Industry fit scoring\n  const industry = companyData?.industry || lead.industry || 'Unknown';\n  const industryScore = salesConfig.leadScoringWeights.industry_fit[industry] || 30;\n  totalScore += industryScore;\n  scoringDetails.push({ factor: 'Industry Fit', value: industry, score: industryScore });\n  \n  // Funding stage scoring\n  const fundingStage = financialData?.last_funding_round || 'Unknown';\n  const fundingScore = salesConfig.leadScoringWeights.funding_stage[fundingStage] || 25;\n  totalScore += fundingScore;\n  scoringDetails.push({ factor: 'Funding Stage', value: fundingStage, score: fundingScore });\n  \n  // Lead source scoring\n  const leadSource = lead.lead_source || 'Unknown';\n  const sourceScore = salesConfig.leadScoringWeights.lead_source[leadSource] || 30;\n  totalScore += sourceScore;\n  scoringDetails.push({ factor: 'Lead Source', value: leadSource, score: sourceScore });\n  \n  // Job title scoring\n  const jobTitle = lead.job_title || '';\n  let titleScore = 30; // default\n  Object.entries(salesConfig.leadScoringWeights.job_title).forEach(([title, score]) => {\n    if (jobTitle.toLowerCase().includes(title.toLowerCase())) {\n      titleScore = Math.max(titleScore, score);\n    }\n  });\n  totalScore += titleScore;\n  scoringDetails.push({ factor: 'Job Title', value: jobTitle, score: titleScore });\n  \n  // Engagement and intent signals\n  let engagementScore = 0;\n  if (lead.lead_source === 'Demo Request') engagementScore += 20;\n  if (lead.notes && lead.notes.toLowerCase().includes('enterprise')) engagementScore += 15;\n  if (lead.notes && lead.notes.toLowerCase().includes('urgent')) engagementScore += 10;\n  if (lead.tags && lead.tags.includes('high-intent')) engagementScore += 15;\n  \n  totalScore += engagementScore;\n  scoringDetails.push({ factor: 'Engagement Signals', value: 'Multiple factors', score: engagementScore });\n  \n  // Company traction scoring\n  let tractionScore = 0;\n  if (financialData?.total_funding) {\n    const fundingAmount = parseFloat(financialData.total_funding.replace(/[^0-9.]/g, '')) * 1000000;\n    if (fundingAmount > 50000000) tractionScore += 25;\n    else if (fundingAmount > 10000000) tractionScore += 20;\n    else if (fundingAmount > 5000000) tractionScore += 15;\n    else if (fundingAmount > 1000000) tractionScore += 10;\n  }\n  \n  if (companyData?.recent_posts && companyData.recent_posts.length > 0) {\n    tractionScore += 10; // Active on social media\n  }\n  \n  totalScore += tractionScore;\n  scoringDetails.push({ factor: 'Company Traction', value: 'Funding + Activity', score: tractionScore });\n  \n  return {\n    total_score: Math.min(totalScore, 100), // Cap at 100\n    scoring_details: scoringDetails,\n    score_breakdown: {\n      company_size: companySizeScore,\n      industry_fit: industryScore,\n      funding_stage: fundingScore,\n      lead_source: sourceScore,\n      job_title: titleScore,\n      engagement: engagementScore,\n      traction: tractionScore\n    }\n  };\n}\n\n// Lead qualification and categorization\nfunction qualifyLead(lead, leadScore, companyData, financialData) {\n  const qualification = {\n    grade: 'C', // Default\n    category: 'Standard',\n    priority: 'Low',\n    fit_assessment: [],\n    red_flags: [],\n    opportunity_indicators: []\n  };\n  \n  // Grade assignment based on score\n  if (leadScore.total_score >= 85) qualification.grade = 'A+';\n  else if (leadScore.total_score >= 75) qualification.grade = 'A';\n  else if (leadScore.total_score >= 65) qualification.grade = 'B+';\n  else if (leadScore.total_score >= 55) qualification.grade = 'B';\n  else if (leadScore.total_score >= 45) qualification.grade = 'C+';\n  \n  // Category and priority assignment\n  if (leadScore.total_score >= salesConfig.automationTriggers.enterprise_threshold) {\n    qualification.category = 'Enterprise';\n    qualification.priority = 'Critical';\n  } else if (leadScore.total_score >= salesConfig.automationTriggers.high_score_threshold) {\n    qualification.category = 'High-Value';\n    qualification.priority = 'High';\n  } else if (leadScore.total_score >= 50) {\n    qualification.category = 'Qualified';\n    qualification.priority = 'Medium';\n  } else {\n    qualification.category = 'Nurture';\n    qualification.priority = 'Low';\n  }\n  \n  // Fit assessment\n  if (companyData?.company_size && companyData.company_size.includes('200+')) {\n    qualification.fit_assessment.push('Target company size');\n  }\n  \n  if (salesConfig.idealCustomerProfile.target_industries.includes(companyData?.industry)) {\n    qualification.fit_assessment.push('Target industry match');\n  }\n  \n  if (financialData?.last_funding_round && ['Series B', 'Series C+', 'IPO'].includes(financialData.last_funding_round)) {\n    qualification.fit_assessment.push('Well-funded company');\n  }\n  \n  // Red flags detection\n  if (companyData?.company_size && companyData.company_size.includes('1-10')) {\n    qualification.red_flags.push('Very small company');\n  }\n  \n  if (lead.email && lead.email.includes('gmail.com')) {\n    qualification.red_flags.push('Personal email address');\n  }\n  \n  if (!companyData?.website && !lead.website) {\n    qualification.red_flags.push('No company website');\n  }\n  \n  // Opportunity indicators\n  if (lead.lead_source === 'Demo Request') {\n    qualification.opportunity_indicators.push('Requested product demo');\n  }\n  \n  if (lead.notes && lead.notes.toLowerCase().includes('budget')) {\n    qualification.opportunity_indicators.push('Mentioned budget');\n  }\n  \n  if (companyData?.recent_posts && companyData.recent_posts.some(post => \n    post.title.toLowerCase().includes('hiring') || post.title.toLowerCase().includes('expansion'))) {\n    qualification.opportunity_indicators.push('Company in growth phase');\n  }\n  \n  return qualification;\n}\n\n// Sales automation recommendations\nfunction generateSalesActions(lead, qualification, leadScore) {\n  const actions = {\n    immediate_actions: [],\n    follow_up_sequence: [],\n    sales_rep_assignment: 'Auto-assign',\n    meeting_priority: 'Standard',\n    email_template: 'standard_intro',\n    calendar_booking_type: 'discovery_call'\n  };\n  \n  // Immediate actions based on score and qualification\n  if (leadScore.total_score >= salesConfig.automationTriggers.immediate_follow_up_threshold) {\n    actions.immediate_actions.push('Send immediate personal email');\n    actions.immediate_actions.push('Schedule same-day call');\n    actions.sales_rep_assignment = 'Senior AE';\n    actions.meeting_priority = 'Urgent';\n    actions.email_template = 'high_value_intro';\n  } else if (leadScore.total_score >= salesConfig.automationTriggers.enterprise_threshold) {\n    actions.immediate_actions.push('Add to priority sequence');\n    actions.immediate_actions.push('Research company background');\n    actions.sales_rep_assignment = 'Enterprise AE';\n    actions.meeting_priority = 'High';\n    actions.email_template = 'enterprise_intro';\n  } else if (leadScore.total_score >= salesConfig.automationTriggers.high_score_threshold) {\n    actions.immediate_actions.push('Add to qualified lead sequence');\n    actions.sales_rep_assignment = 'Standard AE';\n    actions.email_template = 'qualified_intro';\n  } else {\n    actions.immediate_actions.push('Add to nurture sequence');\n    actions.sales_rep_assignment = 'Junior AE';\n    actions.email_template = 'nurture_intro';\n  }\n  \n  // Follow-up sequence generation\n  if (qualification.category === 'Enterprise') {\n    actions.follow_up_sequence = [\n      'Day 1: Personal welcome email + calendar invite',\n      'Day 2: Follow-up call attempt',\n      'Day 3: Executive summary email',\n      'Day 5: Case study sharing',\n      'Day 7: Executive meeting proposal'\n    ];\n  } else if (qualification.category === 'High-Value') {\n    actions.follow_up_sequence = [\n      'Day 1: Welcome email with demo offer',\n      'Day 3: Follow-up call',\n      'Day 5: Product demo scheduling',\n      'Day 10: ROI calculator sharing'\n    ];\n  } else {\n    actions.follow_up_sequence = [\n      'Day 1: Welcome email',\n      'Day 7: Educational content',\n      'Day 14: Industry insights',\n      'Day 21: Product webinar invitation'\n    ];\n  }\n  \n  return actions;\n}\n\n// Main processing logic\nfor (const data of inputData) {\n  try {\n    const lead = data.leads?.[0] || data;\n    const companyData = data.company_data || {};\n    const financialData = data.financial_data || {};\n    \n    // Calculate lead score\n    const leadScore = calculateLeadScore(lead, companyData, financialData);\n    \n    // Qualify lead\n    const qualification = qualifyLead(lead, leadScore, companyData, financialData);\n    \n    // Generate sales actions\n    const salesActions = generateSalesActions(lead, qualification, leadScore);\n    \n    // Create comprehensive lead record\n    const processedLead = {\n      ...lead,\n      lead_score: leadScore.total_score,\n      scoring_details: leadScore.scoring_details,\n      score_breakdown: leadScore.score_breakdown,\n      qualification: qualification,\n      sales_actions: salesActions,\n      processing_timestamp: new Date().toISOString(),\n      enriched_data: {\n        company: companyData,\n        financial: financialData\n      }\n    };\n    \n    processedLeads.push(processedLead);\n  } catch (error) {\n    console.error('Error processing lead:', error);\n  }\n}\n\nreturn processedLeads;"
      },
      "typeVersion": 2
    },
    {
      "id": "lead-categorization-splitter",
      "name": "Lead Categorization Splitter",
      "type": "n8n-nodes-base.if",
      "position": [
        1400,
        700
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "enterprise-leads",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.qualification.category }}",
              "rightValue": "Enterprise"
            },
            {
              "id": "high-value-leads",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.qualification.category }}",
              "rightValue": "High-Value"
            },
            {
              "id": "qualified-leads",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.qualification.category }}",
              "rightValue": "Qualified"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "crm-contact-creator",
      "name": "CRM Contact Creator",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1600,
        600
      ],
      "parameters": {
        "resource": "contact",
        "operation": "create",
        "additionalFields": {
          "email": "={{ $json.email }}",
          "phone": "={{ $json.phone }}",
          "status": "Qualified Lead",
          "company": "={{ $json.company_name }}",
          "jobTitle": "={{ $json.job_title }}",
          "lastName": "={{ $json.last_name }}",
          "firstName": "={{ $json.first_name }}",
          "leadScore": "={{ $json.lead_score }}",
          "leadSource": "={{ $json.lead_source }}",
          "customFields": {
            "red_flags": "={{ JSON.stringify($json.qualification.red_flags) }}",
            "lead_grade": "={{ $json.qualification.grade }}",
            "lead_category": "={{ $json.qualification.category }}",
            "lead_priority": "={{ $json.qualification.priority }}",
            "email_template": "={{ $json.sales_actions.email_template }}",
            "fit_assessment": "={{ JSON.stringify($json.qualification.fit_assessment) }}",
            "scoring_details": "={{ JSON.stringify($json.scoring_details) }}",
            "meeting_priority": "={{ $json.sales_actions.meeting_priority }}",
            "immediate_actions": "={{ JSON.stringify($json.sales_actions.immediate_actions) }}",
            "follow_up_sequence": "={{ JSON.stringify($json.sales_actions.follow_up_sequence) }}",
            "sales_rep_assignment": "={{ $json.sales_actions.sales_rep_assignment }}",
            "enriched_company_data": "={{ JSON.stringify($json.enriched_data.company) }}",
            "opportunity_indicators": "={{ JSON.stringify($json.qualification.opportunity_indicators) }}",
            "enriched_financial_data": "={{ JSON.stringify($json.enriched_data.financial) }}"
          }
        }
      },
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "crm-deal-creator",
      "name": "CRM Deal Creator",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1600,
        800
      ],
      "parameters": {
        "resource": "deal",
        "operation": "create",
        "additionalFields": {
          "amount": "={{ $json.enriched_data.financial.revenue_estimate || '50000' }}",
          "dealname": "={{ $json.company_name + ' - ' + $json.job_title + ' Deal' }}",
          "closedate": "={{ new Date(Date.now() + 90 * 24 * 60 * 60 * 1000).toISOString().split('T')[0] }}",
          "dealstage": "Qualification",
          "customFields": {
            "industry": "={{ $json.enriched_data.company.industry || 'Unknown' }}",
            "lead_grade": "={{ $json.qualification.grade }}",
            "lead_score": "={{ $json.lead_score }}",
            "deal_source": "={{ $json.lead_source }}",
            "company_size": "={{ $json.enriched_data.company.company_size || 'Unknown' }}",
            "deal_priority": "={{ $json.qualification.priority }}",
            "funding_stage": "={{ $json.enriched_data.financial.last_funding_round || 'Unknown' }}",
            "lead_category": "={{ $json.qualification.category }}",
            "expected_value": "={{ $json.enriched_data.financial.revenue_estimate || '50000' }}",
            "assigned_sales_rep": "={{ $json.sales_actions.sales_rep_assignment }}"
          }
        }
      },
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "welcome-email-sender",
      "name": "Welcome Email Sender",
      "type": "n8n-nodes-base.sendEmail",
      "position": [
        1800,
        700
      ],
      "parameters": {
        "message": "={{ '<h2>Welcome ' + $json.first_name + '!</h2><p>Thank you for your interest in our solutions. Based on your profile at ' + $json.company_name + ', we believe we can help you achieve your goals.</p><p><strong>Next Steps:</strong></p><ul>' + $json.sales_actions.immediate_actions.map(action => '<li>' + action + '</li>').join('') + '</ul><p>We look forward to connecting with you!</p>' }}",
        "subject": "={{ 'Welcome ' + $json.first_name + ' - Next Steps for ' + $json.company_name }}",
        "toEmail": "={{ $json.email }}",
        "emailType": "html",
        "additionalFields": {
          "replyTo": "user@example.com",
          "fromName": "Sales Team"
        }
      },
      "credentials": {
        "sendEmail": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "sales-task-YOUR_OPENAI_KEY_HERE",
      "name": "Sales Task Creator",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1800,
        900
      ],
      "parameters": {
        "resource": "task",
        "operation": "create",
        "additionalFields": {
          "status": "Not Started",
          "dueDate": "={{ new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString() }}",
          "subject": "={{ 'Follow up with ' + $json.first_name + ' ' + $json.last_name + ' from ' + $json.company_name }}",
          "priority": "={{ $json.qualification.priority === 'Critical' ? 'High' : $json.qualification.priority }}",
          "description": "={{ 'Lead Score: ' + $json.lead_score + '\\nGrade: ' + $json.qualification.grade + '\\nCategory: ' + $json.qualification.category + '\\nImmediate Actions: ' + $json.sales_actions.immediate_actions.join(', ') + '\\nFollow-up Sequence: ' + $json.sales_actions.follow_up_sequence.join('\\n') }}",
          "customFields": {
            "deal_value": "={{ $json.enriched_data.financial.revenue_estimate || '50000' }}",
            "lead_grade": "={{ $json.qualification.grade }}",
            "lead_score": "={{ $json.lead_score }}",
            "assigned_sales_rep": "={{ $json.sales_actions.sales_rep_assignment }}"
          }
        }
      },
      "credentials": {
        "hubspotApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "slack-notification-sender",
      "name": "Slack Notification Sender",
      "type": "n8n-nodes-base.slack",
      "position": [
        2000,
        700
      ],
      "parameters": {
        "text": "={{ '\ud83d\udea8 NEW HIGH-VALUE LEAD: ' + $json.first_name + ' ' + $json.last_name + ' from ' + $json.company_name + '\\n\ud83d\udcca Lead Score: ' + $json.lead_score + ' (' + $json.qualification.grade + ')\\n\ud83c\udfaf Category: ' + $json.qualification.category + '\\n\ud83d\udcb0 Estimated Value: ' + ($json.enriched_data.financial.revenue_estimate || 'Unknown') + '\\n\ud83d\udc64 Assigned to: ' + $json.sales_actions.sales_rep_assignment + '\\n\u26a1 Priority: ' + $json.qualification.priority }}",
        "channel": "sales-alerts",
        "otherOptions": {
          "username": "Sales Pipeline Bot",
          "icon_emoji": ":rocket:"
        }
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dashboard-logger",
      "name": "Dashboard Logger",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2000,
        900
      ],
      "parameters": {
        "options": {
          "headerRow": true
        },
        "operation": "append",
        "sheetName": "Processed Leads",
        "documentId": "sales-pipeline-dashboard",
        "valuesToSend": {
          "matchingColumns": [
            {
              "value": "={{ new Date().toISOString() }}",
              "column": "Timestamp"
            },
            {
              "value": "={{ $json.lead_id }}",
              "column": "Lead ID"
            },
            {
              "value": "={{ $json.first_name + ' ' + $json.last_name }}",
              "column": "Name"
            },
            {
              "value": "={{ $json.company_name }}",
              "column": "Company"
            },
            {
              "value": "={{ $json.job_title }}",
              "column": "Job Title"
            },
            {
              "value": "={{ $json.email }}",
              "column": "Email"
            },
            {
              "value": "={{ $json.lead_score }}",
              "column": "Lead Score"
            },
            {
              "value": "={{ $json.qualification.grade }}",
              "column": "Grade"
            },
            {
              "value": "={{ $json.qualification.category }}",
              "column": "Category"
            },
            {
              "value": "={{ $json.qualification.priority }}",
              "column": "Priority"
            },
            {
              "value": "={{ $json.lead_source }}",
              "column": "Lead Source"
            },
            {
              "value": "={{ $json.sales_actions.sales_rep_assignment }}",
              "column": "Assigned Rep"
            },
            {
              "value": "={{ $json.enriched_data.company.company_size || 'Unknown' }}",
              "column": "Company Size"
            },
            {
              "value": "={{ $json.enriched_data.company.industry || 'Unknown' }}",
              "column": "Industry"
            },
            {
              "value": "={{ $json.enriched_data.financial.last_funding_round || 'Unknown' }}",
              "column": "Funding Stage"
            },
            {
              "value": "={{ $json.enriched_data.financial.revenue_estimate || 'Unknown' }}",
              "column": "Estimated Value"
            },
            {
              "value": "={{ $json.sales_actions.immediate_actions.join('; ') }}",
              "column": "Immediate Actions"
            },
            {
              "value": "={{ $json.qualification.red_flags.join('; ') }}",
              "column": "Red Flags"
            },
            {
              "value": "={{ $json.qualification.opportunity_indicators.join('; ') }}",
              "column": "Opportunity Indicators"
            }
          ]
        },
        "valueToMatchOn": "",
        "columnToMatchOn": ""
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "overview-sticky-note",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        100
      ],
      "parameters": {
        "color": 0,
        "width": 600,
        "height": 400,
        "content": "# \ud83c\udfaf Sales Pipeline Automation Overview\n\nThis comprehensive workflow automates the entire lead processing pipeline from initial capture to CRM integration and team notifications.\n\n## Key Components\n1. **Dual Trigger System** - Scheduled monitoring + real-time webhooks\n2. **AI-Powered Data Enrichment** - LinkedIn & Crunchbase integration\n3. **Advanced Lead Scoring** - 0-100 point algorithm with multiple factors\n4. **Smart Routing & CRM Integration** - Automated contact/deal creation\n5. **Intelligent Follow-up** - Personalized email sequences\n6. **Team Collaboration** - Slack notifications & task assignment\n7. **Analytics & Reporting** - Google Sheets dashboard\n\n## Benefits\n- 90% reduction in manual lead processing time\n- Consistent lead qualification across all sources\n- Immediate response to high-value prospects\n- Complete audit trail and performance analytics"
      },
      "typeVersion": 1
    },
    {
      "id": "triggers-sticky-note",
      "name": "Lead Monitoring System",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        450
      ],
      "parameters": {
        "color": 4,
        "width": 500,
        "height": 350,
        "content": "# \u23f1\ufe0f Automated Lead Monitoring\n\nDual trigger system ensures no leads are missed:\n\n## Schedule Trigger\n- **Frequency**: Every 2 hours (configurable)\n- **Purpose**: Systematic CRM scanning for new leads\n- **Best for**: Batch processing and backup monitoring\n\n## Webhook Trigger\n- **Type**: Real-time HTTP POST endpoint\n- **Purpose**: Instant processing of new lead notifications\n- **Best for**: Immediate response to high-priority leads\n\n## Configuration Tips\n- Set schedule frequency based on lead volume\n- Monitor webhook reliability and add fallback logic\n- Use different time zones if operating globally\n- Test both triggers regularly to ensure reliability"
      },
      "typeVersion": 1
    },
    {
      "id": "scraper-sticky-note",
      "name": "CRM Data Extraction",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        450
      ],
      "parameters": {
        "color": 5,
        "width": 500,
        "height": 350,
        "content": "# \ud83e\udd16 AI-Powered Data Extraction\n\nScrapeGraph AI intelligently extracts structured lead data from your CRM dashboard using natural language processing.\n\n## How It Works\n- **Input**: CRM dashboard URL with new leads\n- **Processing**: AI analyzes page content and extracts relevant data\n- **Output**: Structured JSON with lead information\n\n## Key Features\n- Natural language prompts for data extraction\n- Handles dynamic web content and JavaScript\n- Flexible schema definition for custom fields\n- Error handling for missing or malformed data\n\n## Configuration\n- Update the website URL to match your CRM\n- Customize the extraction schema for your data fields\n- Add ScrapeGraph AI API credentials\n- Test with sample pages to verify extraction accuracy"
      },
      "typeVersion": 1
    },
    {
      "id": "enrichment-sticky-note",
      "name": "Data Enrichment System",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        850
      ],
      "parameters": {
        "color": 5,
        "width": 500,
        "height": 350,
        "content": "# \ud83c\udfe2 Company Intelligence Enrichment\n\nAutomatically enriches lead data with comprehensive company information from LinkedIn and financial data from Crunchbase.\n\n## LinkedIn Enrichment\n- Company size and industry classification\n- Recent news and company updates\n- Key personnel and decision makers\n- Technology stack and competitive landscape\n- Social media activity and engagement metrics\n\n## Crunchbase Financial Data\n- Funding rounds and total investment\n- Company valuation and growth stage\n- Investor information and partnerships\n- Revenue estimates and employee count\n- Acquisition history and IPO status\n\n## Benefits\n- Enhanced lead qualification accuracy\n- Better sales rep assignment decisions\n- Personalized outreach opportunities\n- Risk assessment through red flag detection"
      },
      "typeVersion": 1
    },
    {
      "id": "scoring-sticky-note",
      "name": "Lead Intelligence Processing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1080,
        450
      ],
      "parameters": {
        "color": 1,
        "width": 550,
        "height": 450,
        "content": "# \ud83e\udde0 Advanced Lead Scoring Algorithm\n\nSophisticated JavaScript processor that calculates lead scores based on multiple weighted factors.\n\n## Scoring Factors (0-100 points)\n- **Company Size**: 10-100 points based on employee count\n- **Industry Fit**: 20-95 points for target industry alignment\n- **Funding Stage**: 30-95 points based on investment rounds\n- **Lead Source**: 20-90 points for source quality (demo > referral > form)\n- **Job Title**: 25-95 points for decision-making authority\n- **Engagement Signals**: 0-50 points for intent indicators\n- **Company Traction**: 0-35 points for growth signals\n\n## Lead Grading System\n- **A+ (85-100)**: Enterprise priority, immediate follow-up\n- **A (75-84)**: High-value leads, priority sequence\n- **B+ (65-74)**: Qualified prospects, standard process\n- **B (55-64)**: Good prospects, nurture sequence\n- **C+ (45-54)**: Marginal leads, long-term nurture\n- **C (0-44)**: Low priority, minimal follow-up\n\n## Automation Triggers\n- **90+ Score**: Same-day personal outreach\n- **85+ Score**: Enterprise AE assignment\n- **70+ Score**: Priority follow-up sequence"
      },
      "typeVersion": 1
    },
    {
      "id": "routing-sticky-note",
      "name": "Lead Categorization & Routing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        450
      ],
      "parameters": {
        "color": 3,
        "width": 500,
        "height": 350,
        "content": "# \ud83d\udd00 Smart Lead Routing\n\nIntelligent conditional logic routes qualified leads through automated action sequences based on their scores and categories.\n\n## Routing Logic\n- **Enterprise (85+)**: Critical priority path\n- **High-Value (70-84)**: Expedited processing\n- **Qualified (50-69)**: Standard workflow\n- **Below 50**: Filtered out or nurture sequence\n\n## Quality Gates\n- Red flag detection prevents low-quality leads\n- Opportunity indicators boost lead priority\n- Fit assessment validates ideal customer profile\n- Multiple validation checks ensure data quality\n\n## Benefits\n- Prevents sales team overload with low-quality leads\n- Ensures high-value prospects get immediate attention\n- Maintains consistent lead qualification standards\n- Optimizes sales rep time allocation"
      },
      "typeVersion": 1
    },
    {
      "id": "crm-sticky-note",
      "name": "CRM & Sales Automation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1480,
        450
      ],
      "parameters": {
        "color": 6,
        "width": 550,
        "height": 400,
        "content": "# \ud83d\udcbc CRM Integration & Automation\n\nSeamlessly integrates with HubSpot CRM to create enriched contact records and sales opportunities.\n\n## Contact Creation\n- Complete lead profile with enriched data\n- Custom fields for scoring and intelligence\n- Automatic lead source and campaign attribution\n- Sales rep assignment based on lead category\n\n## Deal Generation\n- Automatic opportunity creation with estimated value\n- Deal stage set to qualification phase\n- Priority and category tags for pipeline management\n- 90-day close date estimation\n\n## Task Management\n- Automated follow-up task creation\n- Priority assignment based on lead score\n- Detailed task descriptions with action items\n- Sales rep assignment and due date scheduling\n\n## Email Automation\n- Personalized welcome emails with dynamic content\n- Template selection based on lead category\n- Immediate actions and next steps included\n- Professional formatting with company branding"
      },
      "typeVersion": 1
    },
    {
      "id": "collaboration-sticky-note",
      "name": "Team Notifications & Analytics",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1880,
        450
      ],
      "parameters": {
        "color": 7,
        "width": 550,
        "height": 400,
        "content": "# \ud83d\udd14 Team Collaboration & Analytics\n\nReal-time notifications and comprehensive reporting keep the entire sales team informed and aligned.\n\n## Slack Integration\n- Instant notifications for high-value leads\n- Lead score, category, and assignment details\n- Estimated deal value and priority indicators\n- Direct links to CRM records for quick access\n\n## Analytics Dashboard\n- Google Sheets integration for comprehensive reporting\n- Lead scoring trends and conversion metrics\n- Sales rep performance and assignment tracking\n- Red flag analysis and opportunity indicators\n- Historical data for trend analysis\n\n## Reporting Features\n- Real-time lead processing logs\n- Performance metrics by source and category\n- Scoring distribution and qualification rates\n- Follow-up completion and conversion tracking\n\n## Benefits\n- Complete visibility into lead pipeline\n- Data-driven sales process optimization\n- Team accountability and performance tracking\n- Historical analysis for continuous improvement"
      },
      "typeVersion": 1
    },
    {
      "id": "config-sticky-note",
      "name": "Setup & Configuration Guide",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1080,
        100
      ],
      "parameters": {
        "color": 0,
        "width": 550,
        "height": 400,
        "content": "# \u2699\ufe0f Configuration Requirements\n\n## Required API Credentials\n- **ScrapeGraph AI**: API key for web scraping\n- **HubSpot**: OAuth2 for CRM integration\n- **Email Service**: SMTP or service provider credentials\n- **Slack**: Bot token for team notifications\n- **Google Sheets**: OAuth2 for analytics dashboard\n\n## URL Configuration\n- Update CRM dashboard URLs to match your system\n- Configure webhook endpoints for real-time triggers\n- Set LinkedIn company page URL patterns\n- Configure Crunchbase organization URLs\n\n## Customization Options\n- Modify lead scoring weights in processor code\n- Adjust automation thresholds for different priorities\n- Customize email templates and follow-up sequences\n- Configure sales rep assignment rules\n\n## Testing Checklist\n- Verify all API connections and credentials\n- Test webhook endpoints with sample data\n- Validate data extraction schemas\n- Check CRM field mappings and custom properties\n- Test email delivery and Slack notifications"
      },
      "typeVersion": 1
    }
  ],
  "settings": {
    "executionOrder": "v1"
  },
  "updatedAt": "2024-01-15T10:00:00.000Z",
  "versionId": "1",
  "staticData": null,
  "connections": {
    "AI CRM Leads Scraper": {
      "main": [
        [
          {
            "node": "AI Company Enrichment Scraper",
            "type": "main",
            "index": 0
          },
          {
            "node": "AI Financial Data Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Financial Data Scraper": {
      "main": [
        [
          {
            "node": "Lead Intelligence Processor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lead Intelligence Processor": {
      "main": [
        [
          {
            "node": "Lead Categorization Splitter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CRM New Lead Webhook Trigger": {
      "main": [
        [
          {
            "node": "AI CRM Leads Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lead Categorization Splitter": {
      "main": [
        [
          {
            "node": "CRM Contact Creator",
            "type": "main",
            "index": 0
          },
          {
            "node": "CRM Deal Creator",
            "type": "main",
            "index": 0
          },
          {
            "node": "Welcome Email Sender",
            "type": "main",
            "index": 0
          },
          {
            "node": "Sales Task Creator",
            "type": "main",
            "index": 0
          },
          {
            "node": "Slack Notification Sender",
            "type": "main",
            "index": 0
          },
          {
            "node": "Dashboard Logger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Company Enrichment Scraper": {
      "main": [
        [
          {
            "node": "Lead Intelligence Processor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Automated Lead Monitor Trigger": {
      "main": [
        [
          {
            "node": "AI CRM Leads Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "triggerCount": 2
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Sales managers and team leads Business development representatives Marketing teams managing lead generation CRM administrators and sales operations Account executives and sales representatives Sales enablement professionals Revenue operations (RevOps) teams

Source: https://n8n.io/workflows/6432/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

N8N Nodes Scrapegraphai, HTTP Request, Google Sheets +2
Slack & Telegram

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

N8N Nodes Scrapegraphai, Google Sheets, Slack
Slack & Telegram

Social media managers and community managers Marketing teams monitoring brand reputation PR professionals tracking public sentiment Customer service teams identifying trending issues Business analysts

N8N Nodes Scrapegraphai, Google Sheets, Slack
Slack & Telegram

This workflow continuously monitors the TikTok Ads Library for new creatives from specific advertisers or keyword searches, scrapes them via Apify, logs them into Google Sheets, and sends concise noti

Google Sheets, Slack, Telegram +1
Slack & Telegram

Simplify financial oversight with this automated n8n workflow. Triggered daily, it fetches cash flow and expense data from a Google Sheet, analyzes inflows and outflows, validates records, and generat

HTTP Request, Google Sheets, Email Send +3