8
n8n 中文网amn8n.com

我的工作流

高级

这是一个Lead Nurturing, AI Chatbot领域的自动化工作流,包含 23 个节点。主要使用 Set, GoogleDocs, GoogleDrive, Agent, OpenAi 等节点。 通过GPT-4、Google文档和Mermaid图表自动化个性化Upwork提案

前置要求
  • Google Drive API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "7a58a3f07a0fc2e793cb37fe49f8ad79d79b1752ef823a6ac87ff5a79f5b1fc9",
    "templateCredsSetupCompleted": true
  },
  "name": "我的工作流",
  "tags": [
    {
      "id": "ayzol4JLAXjiRLWi",
      "name": "N8N Course",
      "createdAt": "2025-07-19T07:19:09.524Z",
      "updatedAt": "2025-07-19T07:19:09.524Z"
    }
  ],
  "nodes": [
    {
      "id": "e0f69efd-213f-4abe-8b26-539e0e9d8c84",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        -1280
      ],
      "parameters": {
        "width": 400,
        "height": 220,
        "content": "## 🎯 步骤 1:申请文案生成"
      },
      "typeVersion": 1
    },
    {
      "id": "e3608166-2d07-4c00-b81c-d13fa29c0adf",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1392,
        -928
      ],
      "parameters": {
        "width": 420,
        "height": 220,
        "content": "## 📄 步骤 2:Google 文档提案创建"
      },
      "typeVersion": 1
    },
    {
      "id": "5f7fda54-b0d8-47f4-aa9f-1759ea72c71e",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1392,
        -624
      ],
      "parameters": {
        "width": 400,
        "height": 220,
        "content": "## 📊 步骤 3:Mermaid 图表生成"
      },
      "typeVersion": 1
    },
    {
      "id": "25a64031-cbc9-4834-9178-632adcf00068",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        -288
      ],
      "parameters": {
        "width": 420,
        "height": 240,
        "content": "## 🤖 步骤 4:AI 代理编排"
      },
      "typeVersion": 1
    },
    {
      "id": "e4785c2b-3495-4b71-9686-d2aff69dee87",
      "name": "执行工作流触发器",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -688,
        -1264
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "bb96534c-0a94-49a7-ad54-55c4da1ccec1",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -240,
        -1264
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {
          "temperature": 0.7
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a helpful, intelligent Upwork application writer."
            },
            {
              "content": "=I'm an automation specialist applying to jobs on freelance platforms.\n\nYour task is to take as input an Upwork job description and return as output a customized proposal.\n\nHigh-performing proposals are typically templated as follows:\n\n```\nHi, I do {thing} all the time. Am so confident I'm the right fit for you that I just created a workflow diagram + a demo of your {thing} in no-code: $$$\n\nAbout me: I'm a {relevantJobDescription} that has done {coolRelevantThing}. Of note, {otherCoolTieIn}.\n\nHappy to do this for you anytime—just respond to this proposal (else I don't get a chat window). \n\nThank you!\n```\n\nOutput your results in JSON using this format:\n\n{\"proposal\":\"Your proposal\"}\n\nRules:\n- $$$ is what we're using to replace links later on, so leave that untouched.\n- Write in a casual, spartan tone of voice.\n- Don't use emojis or flowery language.\n- If there's a name included somewhere in the description, add it after \"Hi\"\n\nSome facts about me for the personalization: {{ $json.aboutMe }}\n"
            },
            {
              "content": "={\"jobDescription\":\"{{ $('Execute Workflow Trigger').item.json.query }}\"}"
            }
          ]
        },
        "jsonOutput": true
      },
      "typeVersion": 1.6
    },
    {
      "id": "461851c0-1d89-4b28-9ce1-c1600b6fbde0",
      "name": "设置变量",
      "type": "n8n-nodes-base.set",
      "position": [
        -464,
        -1264
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e980c92c-07d9-400e-b40c-a8fbdbe8bbcb",
              "name": "aboutMe",
              "type": "string",
              "value": "I'm an AI and automation freelancer that builds outreach systems, CRM systems, project management systems, no-code systems, and integrations.|Some notable things I've done:- End to end project management for a $1M/yr copywriting agency- Outbound acquisition system that grew a content company from $10K/mo to $92K/mo in 12 mo- Monday.com CRM and PM for a recruiting company doing >$1M/yr- Automated content generation system for an SEO agency doing >$10M/yr- ClickUp CRM build for a marketing company doing $1M/yr- I run a Make.com community that does $100,000/mo- I run a YouTube channel about automation with over 50,000 subscribers- Email outreach system for a $MM San Diego real estate brokerage that closed $150K revenue in the first three days- Email outreach systems for a $200K/mo ecommerce dog treat company"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c20b2871-175e-44da-a136-8e8ea0dce583",
      "name": "编辑字段",
      "type": "n8n-nodes-base.set",
      "position": [
        112,
        -1264
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "468a03c7-1537-435a-9f98-ce7c58a51c8b",
              "name": "response",
              "type": "string",
              "value": "={{ $json.message.content.proposal }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e0e8f7ea-b778-4b29-9e8e-fcbf0b9c8b99",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -96,
        -880
      ],
      "parameters": {
        "name": "={{ $json.message.content.titleOfSystem }}",
        "fileId": {
          "__rl": true,
          "mode": "list",
          "value": "1rUO3VaO2yDGO5wf0Zz72gaG7e__wjXY26PJkX8h-Y00",
          "cachedResultUrl": "https://docs.google.com/document/d/1rUO3VaO2yDGO5wf0Zz72gaG7e__wjXY26PJkX8h-Y00/edit?usp=drivesdk",
          "cachedResultName": "Google Docs Upwork Proposal Template"
        },
        "options": {},
        "operation": "copy"
      },
      "typeVersion": 3
    },
    {
      "id": "30ce122f-7d72-4778-baf9-0a523322a914",
      "name": "Google Drive1",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        128,
        -880
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "share",
        "permissionsUi": {
          "permissionsValues": {
            "role": "reader",
            "type": "anyone"
          }
        }
      },
      "typeVersion": 3
    },
    {
      "id": "d427a4a0-1171-4110-8973-470962397917",
      "name": "Google Docs",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        352,
        -880
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "{{titleOfSystem}}",
              "action": "replaceAll",
              "replaceText": "={{ $('OpenAI1').item.json.message.content.titleOfSystem }}"
            },
            {
              "text": "{{briefExplanationOfSystem}}",
              "action": "replaceAll",
              "replaceText": "={{ $('OpenAI1').item.json.message.content.briefExplanationOfSystem }}"
            },
            {
              "text": "{{specificPartOfTheirRequest}}",
              "action": "replaceAll",
              "replaceText": "={{ $('OpenAI1').item.json.message.content.specificPartOfTheirRequest }}"
            },
            {
              "text": "{{stepByStepBulletPoints}}",
              "action": "replaceAll",
              "replaceText": "={{ $('OpenAI1').item.json.message.content.stepByStepBulletPoints }}"
            },
            {
              "text": "{{leftToRightFlowWithArrows}}",
              "action": "replaceAll",
              "replaceText": "={{ $('OpenAI1').item.json.message.content.leftToRightFlowWithArrows }}"
            },
            {
              "text": "{{aboutMeBulletPoints}}",
              "action": "replaceAll",
              "replaceText": "={{ $('OpenAI1').item.json.message.content.aboutMeBulletPoints }}"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $('Google Drive').item.json.id }}"
      },
      "typeVersion": 2
    },
    {
      "id": "5b7eda57-c96d-4b8d-b2ee-9c21a8092db5",
      "name": "OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -480,
        -880
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {
          "temperature": 0.7
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a helpful, intelligent proposal writer."
            },
            {
              "content": "=I'm an automation specialist applying to jobs on freelance platforms.\n\nYour task is to take as input an Upwork job description and return as output JSON for a customized proposal (which I'll upload to Google Docs).\n\nHigh-performing proposals are typically templated as follows:\n\n```\n# {titleOfSystem} \n## {briefExplanationOfSystem}\n\nHi. As mentioned, I’m so confident I’m the right fit for this I went ahead and created a proposal for you, including a step-by-step of how I’d do it.\n\nI’ve done the below many times and working with {specificPartOfTheirRequest} is actually one of my favorite things to do. Talk about serendipity!\n\nAnyway, here’s how we'll build {paraphrasedSystem}:\n{stepByStepBulletPoints}\n\nSo basically, {leftToRightFlowWithArrows}.\n\nA little about me:\n{aboutMeBulletPoints}\n\nTo be upfront: my goal is to work with you on a long-term retainer, since I find it aligns incentives and lets me help clients better. So I'd treat everything we do together as foundational, and help you build systems that drive revenue/maximize cost savings. \n\nI am really confident I can blow this out of the park for you, so if this sounds like something you're into, just respond to my proposal on Upwork & we'll take it from there. \n\nThank you for your time!\n```\n\nOutput your results in JSON using this format:\n\n{\n  \"titleOfSystem\": \"\",\n  \"briefExplanationOfSystem\": \"\",\n  \"specificPartOfTheirRequest\": \"\",\n  \"stepByStepBulletPoints\": \"\",\n  \"leftToRightFlowWithArrows\": \"\",\n  \"aboutMeBulletPoints\": \"\",\n}\n\nRules:\n- Write in a casual, spartan tone of voice.\n- Don't use emojis or flowery language.\n- If there's a name included somewhere in the description, add it for personalization purposes.\n- Return \"stepByStepBulletPoints\" and \"aboutMeBulletPoints\" as strings, and delimit each bullet point with a \\n and make sure it includes a -\n- In \"aboutMeBulletPoints\", prefer to mention social proof that includes $ and numbers.\n- For \"leftToRightFlowWithArrows\", write a simplified left to right flow delimited by \"->\" strings. For instance, we receive a new email -> we add that to the CRM -> we send an email to the new lead.\n- Use first-person \"I\" language, like \"I'd streamline...\" for bullet points etc.\n\n\nSome facts about me for the personalization: {{ $json.aboutMe }}\n"
            },
            {
              "content": "={\"jobDescription\":\"{{ $('Execute Workflow Trigger').item.json.query }}\"}"
            }
          ]
        },
        "jsonOutput": true
      },
      "typeVersion": 1.6
    },
    {
      "id": "9e9475c8-54f6-4481-8b43-ec39f92a55ea",
      "name": "设置变量1",
      "type": "n8n-nodes-base.set",
      "position": [
        -672,
        -880
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e980c92c-07d9-400e-b40c-a8fbdbe8bbcb",
              "name": "aboutMe",
              "type": "string",
              "value": "I'm an AI and automation freelancer that builds outreach systems, CRM systems, project management systems, no-code systems, and integrations.|Some notable things I've done:- End to end project management for a $1M/yr copywriting agency- Outbound acquisition system that grew a content company from $10K/mo to $92K/mo in 12 mo- Monday.com CRM and PM for a recruiting company doing >$1M/yr- Automated content generation system for an SEO agency doing >$10M/yr- ClickUp CRM build for a marketing company doing $1M/yr- I run a Make.com community that does $100,000/mo- I run a YouTube channel about automation with over 50,000 subscribers- Email outreach system for a $MM San Diego real estate brokerage that closed $150K revenue in the first three days- Email outreach systems for a $200K/mo ecommerce dog treat company"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "051b9854-8f2d-412e-8dbf-3987f2ce2f6d",
      "name": "编辑字段1",
      "type": "n8n-nodes-base.set",
      "position": [
        560,
        -880
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "74b2ef09-da1d-4fe0-b6ea-242f25edf5e8",
              "name": "urlOfProposal",
              "type": "string",
              "value": "=https://docs.google.com/document/d/{{ $json.documentId }}/edit"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "930efce4-7e42-4b5b-b583-3ffc46f90e11",
      "name": "OpenAI2",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -688,
        -608
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {
          "temperature": 0.7
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a helpful, intelligent Mermaid.js code writer."
            },
            {
              "content": "=Your task is to take as input an Upwork job description and return as output a Mermaid diagram that I can visualize using a subsequent Mermaid.js tool.\n\nOutput your results in plaintext using Mermaid code formatting. Don't output anything but the Mermaid diagram code.\n\nHere's an example of what your output should look like:\n\ngraph TD;\n    A-->B;\n    A-->C;\n    B-->D;\n    C-->D;\n\nRules:\n- You only output flowcharts. Nothing else. No sequence diagrams, no Gantt charts—only flowcharts.\n- Do not output any accessory formatting information, like ```mermaid.\n- Your first character should be g."
            },
            {
              "content": "={{ $json.query }}"
            }
          ]
        }
      },
      "typeVersion": 1.6
    },
    {
      "id": "0ee67283-602a-48d7-98cc-609156ba3384",
      "name": "编辑字段2",
      "type": "n8n-nodes-base.set",
      "position": [
        -336,
        -608
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d47590b5-3683-4afe-bc27-a25fb94a32d5",
              "name": "mermaidCode",
              "type": "string",
              "value": "={{ $json.message.content }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b4b6f907-c24f-49de-aefa-8d608d1e027b",
      "name": "当收到聊天消息时",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -560,
        -288
      ],
      "webhookId": "89921f10-c333-4854-977f-57d621cb6350",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "68a46c9e-4ee3-454d-9c27-1c5e281724a7",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -336,
        -288
      ],
      "parameters": {
        "options": {
          "systemMessage": "You're a helpful, intelligent Upwork assistant. Your task is to receive an Upwork job description and then use it to generate assets, like Mermaid diagrams, Google Docs, and Upwork application bodies. \n\nWhen you receive an Upwork job description, you *must* generate a Mermaid diagram, a Google Doc proposal, and an Upwork application. You must then replace the $$$ with the Google Doc proposal link.\n\nOutput the Google Doc proposal link in plaintext, like link: https://www..."
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "f6dff3af-6183-4144-b145-051e12c21868",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -656,
        16
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "48f145b4-6357-454a-bae6-1ca1e0666baf",
      "name": "窗口缓冲记忆",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -496,
        16
      ],
      "parameters": {
        "contextWindowLength": 10
      },
      "typeVersion": 1.2
    },
    {
      "id": "9504c8d4-63c5-4260-9d20-7fd08030e561",
      "name": "生成申请文案",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        48,
        16
      ],
      "parameters": {
        "name": "generate_upwork_application_copy",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "HOncCvVmxtQKVDy5",
          "cachedResultName": "Live Build Upwork Agent: Generate Application Copy"
        },
        "description": "调用此工具生成 Upwork 申请文案。输入将是 Upwork 工作描述,输出将是来自该工具的 Upwork 申请文案字符串。"
      },
      "typeVersion": 1.2
    },
    {
      "id": "7ac89d7e-0f0a-4872-ba9e-457d27f01353",
      "name": "生成 Google 文档提案",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        -128,
        16
      ],
      "parameters": {
        "name": "generate_google_doc_proposal",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "95AZvQ50eHm2pFVA",
          "cachedResultName": "Live Build Upwork Agent: Generate Google Doc Proposal"
        },
        "description": "调用此工具为 Upwork 工作生成 Google 文档提案。输入应为 Upwork 职位发布的字符串,输出将是可用于填充模板的提案 URL。",
        "responsePropertyName": "urlOfProposal"
      },
      "typeVersion": 1.2
    },
    {
      "id": "cb0dac4a-6495-44b5-ba3e-1d6bebcb5ecf",
      "name": "生成 Mermaid.js",
      "type": "@n8n/n8n-nodes-langchain.toolWorkflow",
      "position": [
        -320,
        16
      ],
      "parameters": {
        "name": "generate_mermaid_diagram",
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "bqM8byTJULziq4qT",
          "cachedResultName": "Live Build Upwork Agent: Generate Mermaid Code"
        },
        "description": "调用此工具生成 Mermaid.js 图表代码。输入将是 Upwork 工作描述,输出将是 mermaid 图表代码。",
        "responsePropertyName": "mermaidCode"
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "",
  "connections": {
    "OpenAI": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI1": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI2": {
      "main": [
        [
          {
            "node": "Edit Fields2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Docs": {
      "main": [
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive": {
      "main": [
        [
          {
            "node": "Google Drive1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Variable": {
      "main": [
        [
          {
            "node": "OpenAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive1": {
      "main": [
        [
          {
            "node": "Google Docs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Variable1": {
      "main": [
        [
          {
            "node": "OpenAI1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Generate Mermaid.js": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Window Buffer Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Execute Workflow Trigger": {
      "main": [
        [
          {
            "node": "Set Variable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Application Copy": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Google Doc Proposal": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 客户培育, AI 聊天机器人

需要付费吗?

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

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

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

作者
Nick Saraev

Nick Saraev

@nicksaraev

Hi 👋 I'm Nick. I make money with automation & teach others how they can too. If you have any questions about my templates or about my n8n builds, feel free to ask and I'll happily respond in the comments. Thanks for reading!

外部链接
在 n8n.io 查看

分享此工作流