15 - LeadFlow Automatisierung

Fortgeschritten

Dies ist ein AI Summarization, Multimodal AI-Bereich Automatisierungsworkflow mit 14 Nodes. Hauptsächlich werden If, Set, Code, Slack, Hubspot und andere Nodes verwendet. Automatisierte Gmail-Lead-Nachbereitung mit OpenAI GPT-4O, HubSpot, Slack und Google Sheets

Voraussetzungen
  • Slack Bot Token oder Webhook URL
  • HubSpot API Key
  • Google-Konto + Gmail API-Anmeldedaten
  • Google Sheets API-Anmeldedaten
  • OpenAI API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "REMOVED_FOR_PRIVACY",
  "meta": {
    "instanceId": "REMOVED_FOR_PRIVACY",
    "templateCredsSetupCompleted": true
  },
  "name": "15 - LeadFlow Automation",
  "tags": [],
  "nodes": [
    {
      "id": "91039bef-b0cf-4aaa-b5d7-8151f3fe5bf4",
      "name": "📧 Gmail: Neue Lead-Antwort",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -80,
        -160
      ],
      "parameters": {
        "filters": {
          "labelIds": [
            "YOUR_GMAIL_LABEL_ID"
          ]
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "YOUR_GMAIL_CREDENTIAL_ID",
          "name": "Gmail Account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "def6d1d6-c2cc-4b63-b387-7e38cc8e19b1",
      "name": "🔧 Gmail-Daten normalisieren",
      "type": "n8n-nodes-base.set",
      "position": [
        360,
        -160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "normalize-gmail",
              "name": "leadEmail",
              "type": "string",
              "value": "={{ $json.From }}"
            },
            {
              "id": "normalize-gmail-subject",
              "name": "subject",
              "type": "string",
              "value": "={{ $json.Subject }}"
            },
            {
              "id": "normalize-gmail-message",
              "name": "message",
              "type": "string",
              "value": "={{ $json.snippet }}"
            },
            {
              "id": "normalize-gmail-source",
              "name": "source",
              "type": "string",
              "value": "Gmail"
            },
            {
              "id": "normalize-gmail-timestamp",
              "name": "receivedAt",
              "type": "string",
              "value": "={{ $json.internalDate }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "b1d38a73-0376-433a-82da-a7a04d3d5da7",
      "name": "📋 KI-Analyseergebnisse parsen",
      "type": "n8n-nodes-base.code",
      "position": [
        956,
        -160
      ],
      "parameters": {
        "jsCode": "let aiResponse = $json.output;\n\n// Remove triple backticks and possible \"json\" label\naiResponse = aiResponse.replace(/```json|```/g, '').trim();\n\nlet analysis;\n\ntry {\n  analysis = JSON.parse(aiResponse);\n} catch (error) {\n  // Fallback parsing if JSON is malformed\n  analysis = {\n    sentiment: 'Neutral',\n    intent: 'Needs Info',\n    urgency: 'Medium',\n    nextAction: 'Email',\n    summary: 'Could not parse AI response',\n    priority: 'Warm'\n  };\n}\n\n// Get the original lead data from Normalize Gmail node\nconst leadData = $node['🔧 Normalize Gmail Data'].json;\n\n// Combine everything\nconst result = {\n  ...leadData,\n  ...analysis,\n  analysisDate: new Date().toISOString(),\n  needsFollowUp: analysis.nextAction !== 'No Action',\n  isHighPriority: analysis.priority === 'Hot' || analysis.urgency === 'High'\n};\n\nreturn [{ json: result }];"
      },
      "typeVersion": 2
    },
    {
      "id": "b92abdcc-33b5-4785-b1c4-84c210112dcf",
      "name": "📝 HubSpot: Follow-up-Aufgabe erstellen",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1396,
        -360
      ],
      "parameters": {
        "type": "task",
        "metadata": {
          "body": "={{ $json.message }}",
          "subject": "={{ $json.subject }}",
          "forObjectType": "CONTACT"
        },
        "resource": "engagement",
        "authentication": "appToken",
        "additionalFields": {}
      },
      "credentials": {
        "hubspotAppToken": {
          "id": "YOUR_HUBSPOT_CREDENTIAL_ID",
          "name": "HubSpot Account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "74068c78-2ea1-4447-987a-8d40088483d4",
      "name": "💬 Slack: Vertriebsteam benachrichtigen",
      "type": "n8n-nodes-base.slack",
      "position": [
        1396,
        40
      ],
      "webhookId": "YOUR_SLACK_WEBHOOK_ID",
      "parameters": {
        "text": "=Summary: {{ $json.summary }}\nEmail: {{ $json.leadEmail }}\nPriority: {{ $json.priority }}\nUrgency: {{ $json.urgency }}\nDate: {{ $json.analysisDate }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SLACK_CHANNEL_ID",
          "cachedResultName": "general"
        },
        "otherOptions": {
          "mrkdwn": false
        }
      },
      "credentials": {
        "slackApi": {
          "id": "YOUR_SLACK_CREDENTIAL_ID",
          "name": "Slack Account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ae8454de-6504-4947-8571-87bd4bc0e0b0",
      "name": "📊 In Google Sheets protokollieren",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1396,
        -160
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $json.analysisDate }}",
            "Email": "={{ $json.leadEmail }}",
            "Intent ": "={{ $json.intent }}",
            "Message": "={{ $json.message }}",
            "Subject": "={{ $json.subject }}",
            "Summary": "={{ $json.summary }}",
            "Urgency": "={{ $json.urgency }}",
            "Priority": "={{ $json.priority }}",
            "Sentiment": "={{ $json.sentiment }}",
            "nextAction": "={{ $json.nextAction }}"
          },
          "schema": [
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Subject",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Subject",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Message",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Message",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Sentiment",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Sentiment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Intent ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Intent ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Urgency",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Urgency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "nextAction",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "nextAction",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Summary",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Priority",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Priority",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "YOUR_GOOGLE_SHEETS_URL",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_GOOGLE_SHEETS_ID",
          "cachedResultUrl": "YOUR_GOOGLE_SHEETS_URL",
          "cachedResultName": "Follow Up"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets Account"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "6b10e13b-d8b0-42e2-ad8a-704a7202148f",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        668,
        60
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "name": "OpenAI Account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ad3e3fb6-2e91-41c8-8082-30fe37202a71",
      "name": "🔀 Prüfen ob Daten existieren",
      "type": "n8n-nodes-base.if",
      "position": [
        140,
        -160
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "condition-1",
              "operator": {
                "type": "object",
                "operation": "exists",
                "rightType": "any"
              },
              "leftValue": "={{ $node['📧 Gmail: New Lead Response'].json }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "88cd5104-9389-4664-8e03-3adee0c408a5",
      "name": "🔍 Follow-up erforderlich?",
      "type": "n8n-nodes-base.if",
      "position": [
        1176,
        -160
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b2831020-9725-454b-a3dc-0b6465587288",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.needsFollowUp }}",
              "rightValue": {}
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2",
      "name": "🧠 Lead-Antwort analysieren (KI)",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        580,
        -160
      ],
      "parameters": {
        "text": "=Analyze this lead response and provide:\n\n1. Sentiment: (Positive/Neutral/Negative)\n2. Intent: (Interested/Not Interested/Needs Info/Ready to Buy/Objection)\n3. Urgency: (High/Medium/Low)\n4. Next Action: (Call/Email/Demo/Quote/No Action)\n5. Summary: Brief 1-2 sentence summary\n6. Priority: (Hot/Warm/Cold)\n\nLead Email: {{ $json.leadEmail }}\nSubject: {{ $json.subject }}\nMessage: {{ $json.message }}\nRespond in JSON format with keys: sentiment, intent, urgency, nextAction, summary, priority",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "b970147b-c301-49e4-924d-535e7cf3a01e",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -120,
        -500
      ],
      "parameters": {
        "color": 5,
        "width": 640,
        "height": 680,
        "content": "## Nodes:\n\n**📧 Gmail: New Lead Response\n\n🔀 Check if Data Exists\n\n🔧 Normalize Gmail Data**\n\n*Captures new lead responses from Gmail with a specific label every minute. Verifies the presence of data and standardizes incoming fields (email, subject, message, timestamp, etc.) for consistent processing across the workflow.*"
      },
      "typeVersion": 1
    },
    {
      "id": "885d848a-de98-48bb-8fc1-dab28cc20570",
      "name": "Haftnotiz1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        -500
      ],
      "parameters": {
        "color": 3,
        "width": 580,
        "height": 680,
        "content": "## Nodes:\n\n**🧠 Analyze Lead Response (AI)\n\nOpenAI Chat Model\n\n📋 Parse AI Analysis Results**\n\n*Utilizes OpenAI to analyze the lead's message for sentiment, intent, urgency, next action, and priority. The response is parsed and merged with original email data. Adds calculated flags (needsFollowUp, isHighPriority) to streamline follow-up logic.*"
      },
      "typeVersion": 1
    },
    {
      "id": "90a8e89d-42fe-498e-950e-c9e1a6eb6878",
      "name": "Haftnotiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1140,
        -500
      ],
      "parameters": {
        "width": 160,
        "height": 680,
        "content": "## Node:\n\n**🔍 Needs Follow-Up?**\n\n*Evaluates if the AI-recommended next action requires follow-up. If so, triggers all follow-up actions like CRM task creation, sales notification, and data logging.*"
      },
      "typeVersion": 1
    },
    {
      "id": "fbd6f660-c7e3-4e8e-ad7f-a8ca871b89dc",
      "name": "Haftnotiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        -760
      ],
      "parameters": {
        "color": 4,
        "width": 300,
        "height": 1000,
        "content": "## Nodes:\n\n**📝 HubSpot: Create Follow-up Task\n\n💬 Slack: Notify Sales Team\n\n📊 Log to Google Sheets**\n\n*Once a lead needs follow-up, the workflow:\n\nCreates a HubSpot task for sales tracking\n\nSends a Slack alert with lead insights\n\nLogs analysis to Google Sheets for tracking and review*"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "REMOVED_FOR_PRIVACY",
  "connections": {
    "6b10e13b-d8b0-42e2-ad8a-704a7202148f": {
      "ai_languageModel": [
        [
          {
            "node": "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "88cd5104-9389-4664-8e03-3adee0c408a5": {
      "main": [
        [
          {
            "node": "b92abdcc-33b5-4785-b1c4-84c210112dcf",
            "type": "main",
            "index": 0
          },
          {
            "node": "74068c78-2ea1-4447-987a-8d40088483d4",
            "type": "main",
            "index": 0
          },
          {
            "node": "ae8454de-6504-4947-8571-87bd4bc0e0b0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ad3e3fb6-2e91-41c8-8082-30fe37202a71": {
      "main": [
        [
          {
            "node": "def6d1d6-c2cc-4b63-b387-7e38cc8e19b1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "def6d1d6-c2cc-4b63-b387-7e38cc8e19b1": {
      "main": [
        [
          {
            "node": "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "74068c78-2ea1-4447-987a-8d40088483d4": {
      "main": [
        []
      ]
    },
    "91039bef-b0cf-4aaa-b5d7-8151f3fe5bf4": {
      "main": [
        [
          {
            "node": "ad3e3fb6-2e91-41c8-8082-30fe37202a71",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b1d38a73-0376-433a-82da-a7a04d3d5da7": {
      "main": [
        [
          {
            "node": "88cd5104-9389-4664-8e03-3adee0c408a5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ad81e8cb-6e5d-4b3a-8b1e-5a00853ed3c2": {
      "main": [
        [
          {
            "node": "b1d38a73-0376-433a-82da-a7a04d3d5da7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b92abdcc-33b5-4785-b1c4-84c210112dcf": {
      "main": [
        []
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - KI-Zusammenfassung, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes14
Kategorie2
Node-Typen10
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
Avkash Kakdiya

Avkash Kakdiya

@itechnotion

🚀 Founder of iTechNotion — we build custom AI-powered automation workflows for startups, agencies, and founders. 💡 Specializing in agentic AI systems, content automation, sales funnels, and digital workers. 🔧 14+ years in tech | Building scalable no-code/low-code solutions using n8n, OpenAI, and other API-first tools. 📬 Let’s automate what slows you down.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34