8
n8n 中文网amn8n.com

使用Bright Data和LLMs自动化大规模超个性化外联

高级

这是一个Sales, AI, Marketing领域的自动化工作流,包含 21 个节点。主要使用 If, Set, Wait, HttpRequest, GoogleSheets 等节点,结合人工智能技术实现智能自动化。 通过Bright Data和大语言模型实现大规模超个性化外联自动化

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • Anthropic API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "5aaf4236c70e34e423fbdb2c7b754d19253a933bb1476d548f75848a01e473cf",
    "templateId": "3561"
  },
  "nodes": [
    {
      "id": "f3641141-a880-4400-bad7-909558848c20",
      "name": "当点击\"测试工作流\"时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        2260,
        820
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7b1ddbd1-f918-4ef9-a05e-2c02e6de75df",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        580
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2698,
        "content": "======================================="
      },
      "typeVersion": 1
    },
    {
      "id": "215cd515-149b-41b1-adbe-fa203cbc9b5d",
      "name": "获取要丰富数据的行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2540,
        820
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1g8Dum0tfZ1nQdd3b6sLhZX2aMu6FzwoVvD0EAXMpPx8/edit#gid=0",
          "cachedResultName": "input"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1g8Dum0tfZ1nQdd3b6sLhZX2aMu6FzwoVvD0EAXMpPx8",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1g8Dum0tfZ1nQdd3b6sLhZX2aMu6FzwoVvD0EAXMpPx8/edit?usp=drivesdk",
          "cachedResultName": "NoFluff-N8N-Sheet-Template-Hyper Personalization"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "gq9mwBL5a74eYjfd",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "f140e851-6409-4169-b5af-28ab6f16d99c",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3220,
        680
      ],
      "parameters": {
        "width": 1420,
        "height": 460,
        "content": "个人数据"
      },
      "typeVersion": 1
    },
    {
      "id": "8878ae56-0772-498a-b153-b628222f6688",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2220,
        680
      ],
      "parameters": {
        "width": 266.12865147126786,
        "height": 627.5654650079845,
        "content": "手动运行工作流或激活按计划运行"
      },
      "typeVersion": 1
    },
    {
      "id": "df3f1f83-1092-40fe-bc5d-301e9a118601",
      "name": "## 试试看!",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2500,
        460
      ],
      "parameters": {
        "width": 194.6864335083109,
        "height": 525.6560478822986,
        "content": "在此工作流中,我使用 Google Sheets 存储结果。"
      },
      "typeVersion": 1
    },
    {
      "id": "1c294196-206a-4add-8d47-8558ba99515d",
      "name": "## 1. 创建新的自定义 OpenAI 凭据",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        240
      ],
      "parameters": {
        "color": 4,
        "width": 1280,
        "height": 320,
        "content": "======================================="
      },
      "typeVersion": 1
    },
    {
      "id": "3491b2bf-83a0-4966-9ff5-9c7c55f316e0",
      "name": "# 生成图片并保存",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        4800,
        1240
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-3-5-haiku-20241022",
          "cachedResultName": "Claude 3.5 Haiku"
        },
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "66b79bfc-3447-4b42-9617-308e490079bb",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4720,
        880
      ],
      "parameters": {
        "width": 1120,
        "height": 580,
        "content": "破冰器"
      },
      "typeVersion": 1
    },
    {
      "id": "7557e53f-b898-4831-a52e-be9eeb0f4964",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2940,
        560
      ],
      "parameters": {
        "color": 4,
        "width": 2980,
        "height": 1000,
        "content": "循环"
      },
      "typeVersion": 1
    },
    {
      "id": "0119ee4c-bc70-4aef-84e0-881cdea57aa9",
      "name": "基础 LLM 链 - 破冰器",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        4920,
        900
      ],
      "parameters": {
        "text": "=Help me with writing a witty Ice breaker to try to persuade  {{ $json.name }} from{{ $('BrightData_Get_Linkedin').item.json.city }}. His About section in his Linkedin profile says:{{ $('BrightData_Get_Linkedin').item.json.about }}. \nHe also had a recent post about:{{ $('BrightData_Get_Linkedin').item.json.posts[0].title }}\n\nMake it 4 lines maximum. Focus more on his recent post, not the about. Just to make it feel personalized yet respectful and not creepy.\n\nWRITE THE ICE BREAKER Straight away. Dont write \"here's a draft\" or any other text before your actual response.",
        "promptType": "define"
      },
      "retryOnFail": true,
      "typeVersion": 1.6
    },
    {
      "id": "e3965132-4d21-4252-ab26-525128d79d29",
      "name": "BrightData_获取_Linkedin",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4120,
        740
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "format",
              "value": "json"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <BRIGHT_DATA_API_KEY>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0e55b67e-7ddb-4431-8250-59be59c6c557",
      "name": "调整_输入_用于_循环",
      "type": "n8n-nodes-base.set",
      "position": [
        2740,
        820
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fcc97354-b9f6-4459-a004-46e87902c77c",
              "name": "person_input",
              "type": "string",
              "value": "={{ $json.Linkedin_URL_Person }}"
            },
            {
              "id": "e5415c49-5204-45b1-a0e9-814157127b12",
              "name": "row_number",
              "type": "number",
              "value": "={{ $json.row_number }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "0cc85426-64f7-41f8-bd9a-215aaaad3299",
      "name": "HTTP_请求_发布_请求_BrightData",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3300,
        740
      ],
      "parameters": {
        "url": "https://api.brightdata.com/datasets/v3/trigger",
        "method": "POST",
        "options": {},
        "jsonBody": "=[\n  {\n    \"url\": \"{{ $json.person_input }}\"\n  }\n]",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "dataset_id",
              "value": "gd_l1viktl72bvl7bjuj0"
            },
            {
              "name": "include_errors",
              "value": "true"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <BRIGHT_DATA_API_KEY>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "851b23e0-6a1b-4a47-95e9-d2f769243a57",
      "name": "等待_API_调用_结果",
      "type": "n8n-nodes-base.wait",
      "position": [
        3500,
        740
      ],
      "webhookId": "8005a2b3-2195-479e-badb-d90e4240e699",
      "parameters": {
        "amount": 10
      },
      "executeOnce": false,
      "typeVersion": 1.1
    },
    {
      "id": "294a7c03-2268-4d7a-b4e7-a52faa78d929",
      "name": "API_调用_快照_进度",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3660,
        840
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer <Bright_Data_API_KEY>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d568403b-c323-4798-b7e5-e4a89dfe7830",
      "name": "条件判断-检查_API_调用_状态",
      "type": "n8n-nodes-base.if",
      "position": [
        3860,
        900
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "7932282b-71bb-4bbb-ab73-4978e554de7e",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "running"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b44b5f4b-8aef-4ea3-bbd7-1e72548dda64",
      "name": "Google Sheets - 使用 API 数据更新行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4500,
        940
      ],
      "parameters": {
        "columns": {
          "value": {
            "city": "={{ $json.city }}",
            "name": "={{ $json.name }}",
            "about": "={{ $json.about }}",
            "row_number": "={{ $('Loop Over Items- All Prospects').item.json.row_number }}",
            "country_code": "={{ $json.country_code }}",
            "Linkedin_URL_Person": "={{ $json.input.url }}",
            "current_company.name": "={{ $json.current_company.name }}"
          },
          "schema": [
            {
              "id": "Linkedin_URL_Person",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Linkedin_URL_Person",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "city",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "city",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country_code",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "country_code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Position",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Position",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "about",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "about",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "current_company.name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "current_company.name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Post 1",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Post 1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Post 2",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Post 2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Post 3",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Post 3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ice Breaker 1",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Ice Breaker 1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ice Breaker 2",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Ice Breaker 2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_jbr5zBllTy_pGbogfGSvyv1_0a77I8tU-Ai7BjTAw4/edit#gid=0",
          "cachedResultName": "input"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1_jbr5zBllTy_pGbogfGSvyv1_0a77I8tU-Ai7BjTAw4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_jbr5zBllTy_pGbogfGSvyv1_0a77I8tU-Ai7BjTAw4/edit?usp=drivesdk",
          "cachedResultName": "NoFluff-N8N-Sheet-Template"
        }
      },
      "typeVersion": 4.3,
      "alwaysOutputData": true
    },
    {
      "id": "081f9e1d-6325-4645-bb0c-368a8ac3be99",
      "name": "Google Sheets - 使用破冰器更新行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        5400,
        1340
      ],
      "parameters": {
        "columns": {
          "value": {
            "row_number": "={{ $('Loop Over Items- All Prospects').item.json.row_number }}",
            "Ice Breaker 1": "={{ $json.text }}"
          },
          "schema": [
            {
              "id": "Linkedin_URL_Person",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Linkedin_URL_Person",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "city",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "city",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country_code",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "country_code",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Position",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Position",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "about",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "about",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "current_company.name",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "current_company.name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Post 1",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Post 1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Post 2",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Post 2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Post 3",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Post 3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ice Breaker 1",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Ice Breaker 1",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Ice Breaker 2",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Ice Breaker 2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_jbr5zBllTy_pGbogfGSvyv1_0a77I8tU-Ai7BjTAw4/edit#gid=0",
          "cachedResultName": "input"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1_jbr5zBllTy_pGbogfGSvyv1_0a77I8tU-Ai7BjTAw4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_jbr5zBllTy_pGbogfGSvyv1_0a77I8tU-Ai7BjTAw4/edit?usp=drivesdk",
          "cachedResultName": "NoFluff-N8N-Sheet-Template"
        }
      },
      "typeVersion": 4.3,
      "alwaysOutputData": true
    },
    {
      "id": "7709c869-5283-4760-b929-fde27167f040",
      "name": "按特定计划运行工作流",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        2260,
        1000
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "84e08531-b548-43f2-a17a-b2809f833d32",
      "name": "遍历项目 - 所有潜在客户",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2980,
        720
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    }
  ],
  "pinData": {},
  "connections": {
    "Get rows to enrich": {
      "main": [
        [
          {
            "node": "Adjust_input_for_loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain- Ice Breaker",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Adjust_input_for_loop": {
      "main": [
        [
          {
            "node": "Loop Over Items- All Prospects",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "BrightData_Get_Linkedin": {
      "main": [
        [
          {
            "node": "Google Sheets - Update Row with data From API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait_For_API_Call_Results": {
      "main": [
        [
          {
            "node": "API_Call_Snapshot_Progress",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "API_Call_Snapshot_Progress": {
      "main": [
        [
          {
            "node": "IF-Checking_Status_API_Call",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF-Checking_Status_API_Call": {
      "main": [
        [
          {
            "node": "Wait_For_API_Call_Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "BrightData_Get_Linkedin",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain- Ice Breaker": {
      "main": [
        [
          {
            "node": "Google Sheets - Update Row with Ice Breaker",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \"Test workflow\"": {
      "main": [
        [
          {
            "node": "Get rows to enrich",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items- All Prospects": {
      "main": [
        [],
        [
          {
            "node": "HTTP_Request_Post_Request_BrightData",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run Workflow on a certain Schedule": {
      "main": [
        [
          {
            "node": "Get rows to enrich",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP_Request_Post_Request_BrightData": {
      "main": [
        [
          {
            "node": "Wait_For_API_Call_Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Update Row with Ice Breaker": {
      "main": [
        [
          {
            "node": "Loop Over Items- All Prospects",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Update Row with data From API": {
      "main": [
        [
          {
            "node": "Basic LLM Chain- Ice Breaker",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 销售, 人工智能, 营销

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量21
分类3
节点类型11
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Yaron Been

Yaron Been

@yaron-nofluff

Building AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host

外部链接
在 n8n.io 查看

分享此工作流