Cold-Winning-Schließ-Workflow

Fortgeschritten

Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 15 Nodes. Hauptsächlich werden Code, Gmail, Slack, Filter, Hubspot und andere Nodes verwendet. Automatisches Schließen von HubSpot-Kaltakquise-Deals basierend auf Gmail-Feedback und Slack-Benachrichtigungen

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • Slack Bot Token oder Webhook URL
  • HubSpot API Key
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "meta": {
    "instanceId": "INSTANCE_ID_PLACEHOLDER",
    "templateCredsSetupCompleted": false
  },
  "name": "Cold Deal Closure Workflow",
  "tags": [],
  "nodes": [
    {
      "id": "99a95283-6245-4d88-ae58-07aaef8ddf14",
      "name": "Zeitplan-Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -304,
        -16
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "35be2b12-2b12-42ee-aa01-df7c49daf6d4",
      "name": "Get HubSpot Deals",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        -80,
        -16
      ],
      "parameters": {
        "filters": {
          "propertiesCollection": {
            "propertiesValues": {
              "properties": [
                "dealname",
                "hs_lastmodifieddate",
                "notes_last_updated",
                "notes_last_contacted"
              ],
              "propertyMode": "valueOnly"
            }
          }
        },
        "resource": "deal",
        "operation": "getAll",
        "returnAll": true,
        "authentication": "appToken"
      },
      "credentials": {
        "hubspotAppToken": {
          "id": "YOUR_HUBSPOT_CREDENTIAL_ID",
          "name": "HubSpot account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "ff92028e-afa9-4ed2-b123-aa2619f612dd",
      "name": "Extract Deal Fields",
      "type": "n8n-nodes-base.code",
      "position": [
        144,
        -16
      ],
      "parameters": {
        "jsCode": "return items.map(item => {\n  const props = item.json.properties || {};\n\n  return {\n    json: {\n      dealId: item.json.dealId || '',\n      dealname: props.dealname?.value || '',\n      lastmodifieddate: props.hs_lastmodifieddate?.value || '',\n      notes_last_updated: props.notes_last_updated?.value || '',\n      notes_last_contacted: props.notes_last_contacted?.value || ''\n    }\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce",
      "name": "Filter Cold Leads (21+ Tage)",
      "type": "n8n-nodes-base.filter",
      "position": [
        368,
        -16
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1",
              "operator": {
                "type": "number",
                "operation": "lt"
              },
              "leftValue": "={{ $json.lastmodifieddate.toNumber() }}",
              "rightValue": "={{ Date.now() - 21 * 24 * 60 * 60 * 1000 }}"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "f3e64724-432c-4354-a115-61185fb3d23e",
      "name": "Update Deal to Closed Lost",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        592,
        -16
      ],
      "parameters": {
        "dealId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.dealId }}"
        },
        "resource": "deal",
        "operation": "update",
        "updateFields": {
          "stage": "closedlost"
        },
        "authentication": "appToken"
      },
      "credentials": {
        "hubspotAppToken": {
          "id": "YOUR_HUBSPOT_CREDENTIAL_ID",
          "name": "HubSpot account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "4d51776d-1c40-435a-989f-660f4546b401",
      "name": "Fetch Deal Associations",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        800,
        -16
      ],
      "parameters": {
        "url": "=https://api.hubapi.com/crm/v3/objects/deals/{{ $json.dealId }}?associations=contacts",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_HUBSPOT_ACCESS_TOKEN"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2d48cf93-9066-482b-9c7d-0b317ff99406",
      "name": "Extract Contact IDs",
      "type": "n8n-nodes-base.code",
      "position": [
        1008,
        -16
      ],
      "parameters": {
        "jsCode": "// Extract contact IDs from deals data\nconst dealsData = $input.all();\nconst contactIds = [];\n\ndealsData.forEach(item => {\n  const deal = item.json;\n  if (deal.associations && deal.associations.contacts && deal.associations.contacts.results) {\n    deal.associations.contacts.results.forEach(contact => {\n      contactIds.push({\n        contactId: contact.id,\n        dealId: deal.id,\n        dealName: deal.properties.dealname\n      });\n    });\n  }\n});\n\nreturn contactIds;"
      },
      "typeVersion": 2
    },
    {
      "id": "955cad66-4b5e-45b0-9c82-78f27ed78823",
      "name": "Get Contact Details",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1216,
        -16
      ],
      "parameters": {
        "contactId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.contactId }}"
        },
        "operation": "get",
        "authentication": "appToken",
        "additionalFields": {
          "propertiesCollection": {
            "propertiesValues": {
              "properties": [
                "email",
                "firstname",
                "lastname",
                "hs_full_name_or_email"
              ]
            }
          }
        }
      },
      "credentials": {
        "hubspotAppToken": {
          "id": "YOUR_HUBSPOT_CREDENTIAL_ID",
          "name": "HubSpot account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "0ef1bd2f-8986-42eb-b09f-3e3c09ed3403",
      "name": "Extract Contact E-Mail",
      "type": "n8n-nodes-base.code",
      "position": [
        1424,
        -16
      ],
      "parameters": {
        "jsCode": "// Code Node (JavaScript)\n\nreturn items.map(item => {\n  let email = null;\n\n  // try to safely access the email field\n  if (item.json?.properties?.email?.value) {\n    email = item.json.properties.email.value;\n  }\n\n  return {\n    json: {\n      email\n    }\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "ea48344a-33e0-442d-9b15-24708f6376f4",
      "name": "Send Gmail Feedback Request",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1648,
        -16
      ],
      "webhookId": "WEBHOOK_ID_PLACEHOLDER",
      "parameters": {
        "sendTo": "=your-email@example.com",
        "message": "=Hi {{ $('Get Contact Details').item.json.properties.firstname.value }},<br><br>\n\nI hope you're doing well.<br><br>\n\nThank you once again for considering [Your Company] for your project. While I understand you've decided to move in a different direction, I truly appreciate the time and effort you spent engaging with us.<br><br>\n\nWe'd Love Your Feedback<br>\nIf you're open to it, I'd be grateful for any thoughts you'd like to share about your decision—anything that could help us improve going forward.<br><br>\n\nOpen Door for the Future<br>\nShould your needs evolve in the future, I'd be happy to reconnect and support you in any way we can.<br><br>\n\nWishing you all the best with your project and continued success ahead.<br><br>\n\nWarm regards,<br><br>\n[Your Company]<br>\n",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Thank You — We'd Value Your Feedback"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "YOUR_GMAIL_CREDENTIAL_ID",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "da6063b5-6c22-4312-960a-276b9a8a90dd",
      "name": "Send Slack Notification",
      "type": "n8n-nodes-base.slack",
      "position": [
        1856,
        -16
      ],
      "webhookId": "WEBHOOK_ID_PLACEHOLDER",
      "parameters": {
        "text": "=Deals which are moved to Closed Lost: {{ $('Extract Contact IDs').item.json.dealId }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_SLACK_CHANNEL_ID",
          "cachedResultName": "general"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "YOUR_SLACK_CREDENTIAL_ID",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "00280018-e849-44a3-a90a-e4b41e3d3fb4",
      "name": "Haftnotiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -336
      ],
      "parameters": {
        "color": 4,
        "width": 640,
        "height": 624,
        "content": "## Trigger & Deal Fetching\n\n*Schedule Trigger: Starts the workflow on a defined interval (e.g., daily, weekly).\n\nGet HubSpot Deals: Pulls all deals from HubSpot, retrieving key fields like dealname, hs_lastmodifieddate, notes_last_updated, and notes_last_contacted.\n\nExtract Deal Fields: Cleans up and restructures the deal data into a consistent format (dealId, dealname, timestamps).*"
      },
      "typeVersion": 1
    },
    {
      "id": "26416831-06bb-45ef-983a-44c74160ae87",
      "name": "Haftnotiz1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        304,
        -336
      ],
      "parameters": {
        "color": 2,
        "width": 432,
        "height": 624,
        "content": "## Lead Qualification (Cold Deals)\n\n*Filter Cold Leads (21+ days): Uses lastmodifieddate and compares it against Date.now() - 21 days.\n\nKeeps only deals untouched for 21+ days.\n\nUpdate Deal → Closed Lost: Automatically updates those stale deals in HubSpot, marking them as Closed Lost.*"
      },
      "typeVersion": 1
    },
    {
      "id": "9bf5bb30-24d1-4f31-a07b-dd781175e066",
      "name": "Haftnotiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        -336
      ],
      "parameters": {
        "color": 6,
        "width": 832,
        "height": 624,
        "content": "## Deal → Contact Mapping\n\n*Fetch Deal Associations: Calls HubSpot API to get contacts linked to the filtered deals.\n\nExtract Contact IDs: Parses the association response to pull out contactId, dealId, and dealName.\n\nGet Contact Details: Retrieves enriched details of each contact (e.g., email, firstname, lastname).\n\nExtract Contact Email: Simplifies the response, keeping only the email (and ensuring it's safely extracted).*"
      },
      "typeVersion": 1
    },
    {
      "id": "cedf1213-f134-4ddd-a96c-764d1320193e",
      "name": "Haftnotiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1600,
        -336
      ],
      "parameters": {
        "color": 3,
        "width": 384,
        "height": 624,
        "content": "## Follow-up & Notifications\n\n*Send Gmail Feedback Request:\n\nSends a polite follow-up email thanking the lead and asking for feedback.\n\nUses personalized fields like firstname in the message.\n\nSend Slack Notification:\n\nPosts a message to a Slack channel (e.g., #general) to alert the team of deals moved to Closed Lost.*"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "TEMPLATE_VERSION_ID",
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "35be2b12-2b12-42ee-aa01-df7c49daf6d4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "35be2b12-2b12-42ee-aa01-df7c49daf6d4": {
      "main": [
        [
          {
            "node": "ff92028e-afa9-4ed2-b123-aa2619f612dd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2d48cf93-9066-482b-9c7d-0b317ff99406": {
      "main": [
        [
          {
            "node": "955cad66-4b5e-45b0-9c82-78f27ed78823",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ff92028e-afa9-4ed2-b123-aa2619f612dd": {
      "main": [
        [
          {
            "node": "5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "955cad66-4b5e-45b0-9c82-78f27ed78823": {
      "main": [
        [
          {
            "node": "Extract Contact Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Contact Email": {
      "main": [
        [
          {
            "node": "ea48344a-33e0-442d-9b15-24708f6376f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4d51776d-1c40-435a-989f-660f4546b401": {
      "main": [
        [
          {
            "node": "2d48cf93-9066-482b-9c7d-0b317ff99406",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f3e64724-432c-4354-a115-61185fb3d23e": {
      "main": [
        [
          {
            "node": "4d51776d-1c40-435a-989f-660f4546b401",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ea48344a-33e0-442d-9b15-24708f6376f4": {
      "main": [
        [
          {
            "node": "da6063b5-6c22-4312-960a-276b9a8a90dd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5f50f06b-dc6a-45eb-b8b5-17b3f092f7ce": {
      "main": [
        [
          {
            "node": "f3e64724-432c-4354-a115-61185fb3d23e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
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 - Content-Erstellung, 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 Nodes15
Kategorie2
Node-Typen8
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