AI提案生成系统
中级
这是一个AI, Marketing领域的自动化工作流,包含 15 个节点。主要使用 Gmail, FormTrigger, GoogleDrive, HttpRequest, GoogleSlides 等节点,结合人工智能技术实现智能自动化。 AI高级提案生成器:集成OpenAI、Google Slides和PandaDoc
前置要求
- •Google 账号和 Gmail API 凭证
- •Google Drive API 凭证
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "x6UbWXr0iMgy1TEB",
"meta": {
"instanceId": "d7661a849ead114a9aa6d9ceaf4160465aeb79532a35bde62160c840ffba9fc8"
},
"name": "AI 提案生成系统",
"tags": [
{
"id": "l8MPK4ZirgwFWMno",
"name": "N8N Course",
"createdAt": "2025-01-23T18:12:52.273Z",
"updatedAt": "2025-01-23T18:12:52.273Z"
}
],
"nodes": [
{
"id": "sticky-note-1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
-200
],
"parameters": {
"width": 350,
"height": 160,
"content": "## 🚀 步骤 1:销售通话表单"
},
"typeVersion": 1
},
{
"id": "sticky-note-2",
"type": "n8n-nodes-base.stickyNote",
"position": [
120,
-280
],
"parameters": {
"width": 380,
"height": 180,
"content": "## 🧠 步骤 2:AI 内容生成"
},
"typeVersion": 1
},
{
"id": "sticky-note-3",
"type": "n8n-nodes-base.stickyNote",
"position": [
450,
-300
],
"parameters": {
"width": 400,
"height": 200,
"content": "## 📄 步骤 3:文档生成"
},
"typeVersion": 1
},
{
"id": "sticky-note-4",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
-200
],
"parameters": {
"width": 350,
"height": 160,
"content": "## ⚡ 工作流优势"
},
"typeVersion": 1
},
{
"id": "65eec1e0-5e75-4544-b1d2-ee686d419edd",
"name": "替换文本",
"type": "n8n-nodes-base.googleSlides",
"position": [
700,
0
],
"parameters": {
"textUi": {
"textValues": [
{
"text": "{{proposalTitle}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.proposalTitle }}"
},
{
"text": "{{descriptionName}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.descriptionName }}"
},
{
"text": "{{oneParagraphProblemSummary}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.oneParagraphProblemSummary }}"
},
{
"text": "{{solutionHeadingOne}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.solutionHeadingOne }}"
},
{
"text": "{{solutionHeadingTwo}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.solutionHeadingTwo }}"
},
{
"text": "{{solutionHeadingThree}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.solutionHeadingThree }}"
},
{
"text": "{{solutionDescriptionOne}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.solutionDescriptionOne }}"
},
{
"text": "{{solutionDescriptionTwo}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.solutionDescriptionTwo }}"
},
{
"text": "{{solutionDescriptionThree}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.solutionDescriptionThree }}"
},
{
"text": "{{shortScopeTitleOne}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.shortScopeTitleOne }}"
},
{
"text": "{{shortScopeTitleTwo}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.shortScopeTitleTwo }}"
},
{
"text": "{{shortScopeTitleThree}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.shortScopeTitleThree }}"
},
{
"text": "{{shortScopeDescriptionOne}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.shortScopeDescriptionOne }}"
},
{
"text": "{{shortScopeDescriptionTwo}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.shortScopeDescriptionTwo }}"
},
{
"text": "{{shortScopeDescriptionThree}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.shortScopeDescriptionThree }}"
},
{
"text": "{{milestoneOneDay}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.milestoneOneDay }}"
},
{
"text": "{{milestoneTwoDay}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.milestoneTwoDay }}"
},
{
"text": "{{milestoneThreeDay}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.milestoneThreeDay }}"
},
{
"text": "{{milestoneFourDay}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.milestoneFourDay }}"
},
{
"text": "{{milestoneDescriptionOne}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.milestoneDescriptionOne }}"
},
{
"text": "{{milestoneDescriptionTwo}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.milestoneDescriptionTwo }}"
},
{
"text": "{{milestoneDescriptionThree}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.milestoneDescriptionThree }}"
},
{
"text": "{{milestoneDescriptionFour}}",
"replaceText": "={{ $('OpenAI').item.json.message.content.milestoneDescriptionFour }}"
},
{
"text": "{{cost}}",
"replaceText": "$1,850"
}
]
},
"options": {},
"operation": "replaceText",
"presentationId": "={{ $json.id }}"
},
"credentials": {
"googleSlidesOAuth2Api": {
"id": "ie4yCWIQ8AYXFVxa",
"name": "YouTube"
}
},
"typeVersion": 2
},
{
"id": "618c4452-06f4-4f95-8777-a6e6f204bf33",
"name": "OpenAI",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
160,
0
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You are a helpful, intelligent writing assistant."
},
{
"content": "Your task is to generate a proposal using input data from a form. This proposal should be highly customized, specific, and high-quality, considering we're going to be sending it immediately after you're done.\n\nContext: we are an automation/no-code agency that develops systems revolving around growth, revenue ops, etc.\n\nThe proposal template we're using has many fields. You must return these fields in one JSON object.\n\nUse this format:\n\n{\n \"proposalTitle\": \"\",\n \"descriptionName\": \"\",\n \"oneParagraphProblemSummary\": \"\",\n \"solutionHeadingOne\": \"\",\n \"solutionDescriptionOne\": \"\",\n \"solutionHeadingTwo\": \"\",\n \"solutionDescriptionTwo\": \"\",\n \"solutionHeadingThree\": \"\",\n \"solutionDescriptionThree\":\"\",\n \"shortScopeTitleOne\": \"\",\n \"shortScopeTitleTwo\": \"\",\n \"shortScopeTitleThree\": \"\",\n \"shortScopeDescriptionOne\": \"\",\n \"shortScopeDescriptionTwo\": \"\",\n \"shortScopeDescriptionThree\": \"\",\n \"milestoneOneDay\": \"\",\n \"milestoneTwoDay\": \"\",\n \"milestoneThreeDay\": \"\",\n \"milestoneFourDay\": \"\",\n \"milestoneDescriptionOne\": \"\",\n \"milestoneDescriptionTwo\": \"\",\n \"milestoneDescriptionThree\": \"\",\n \"milestoneDescriptionFour\": \"\"\n}\n\nRules:\n1. Use a spartan, casual tone of voice.\n2. Be to-the-point but professional—assume you're writing to a sophisticated audience.\n3. Ensure that all fields are filled out. Do not miss a field or leave any variables empty.\n4. Keep things short. If a field contains the term \"Description\" it should be no more than fourteen words. For \"descriptionName\" do not use title case."
},
{
"content": "{\n \"companyName\":\"1SecondCopy\",\n \"problem\": \"they can't generate leads. everything is referral based rn.\",\n \"solution\": \"cold email lead gen system, client reactivation system, and best in class sales training for closing\",\n \"scope\": \"1k/day cold email infra, 30k email leads, 4 weekly zoom sessions for sales training\",\n \"currentDate\":\"Feb 4 2025\",\n \"howSoon\": \"two months\",\n \"depositCost\": \"$1,845\",\n}"
},
{
"role": "assistant",
"content": "{\n \"proposalTitle\": \"Lead Gen System for 1SecondCopy\n\",\n \"descriptionName\": \"A simple, scalable lead generation system built to help grow your content efforts & connect you with the right people.\n\",\n \"oneParagraphProblemSummary\": \"Right now, 1SecondCopy is struggling with an inability to generate qualified leads. The majority of your new clients are referral-based, which, while always nice to have, is not scalable nor is it reliable. Building an alternative strategy—one that allows you to take leads from cold -> close—is vital to the health and longevity of the company, and it’s what we’re going to help you with.\n\",\n \"solutionHeadingOne\": \"Cold Outbound Lead Gen\",\n \"solutionDescriptionOne\": \"We’ll put in place a robust cold-email-based system for you using best practices.\",\n \"solutionHeadingTwo\": \"Client Reactivation System\",\n \"solutionDescriptionTwo\": \"We’ll build a simple, but high-ROI reactivation system to let you extract value from pre-existing clients.\",\n \"solutionHeadingThree\": \"Best-In-Class Sales Training\",\n \"solutionDescriptionThree\": \"We’ll train your team with world-class setting & closing mechanisms.\",\n \"shortScopeTitleOne\": Cold email infrastructure that sends ~1K emails/day\",\n \"shortScopeTitleTwo\": \"30K high-quality scraped email leads (included)\",\n \"shortScopeTitleThree\": \"Four weekly one-hour sales training sessions over Zoom\",\n \"shortScopeDescriptionOne\": \"12 domains, 36 mailboxes, DNS optimization, and warmups included.\",\n \"shortScopeDescriptionTwo\": \"30,000 leads in your target market, delivered by CSV.\",\n \"shortScopeDescriptionThree\": \"We’ll take your sales team from 0->1.\",\n \"milestoneOneDay\": \"February 8th, 2025\",\n \"milestoneTwoDay\": \"February 28th, 2025\",\n \"milestoneThreeDay\": \"March 10th, 2025\",\n \"milestoneFourDay\":\"March 17th-April 1st, 2025\",\n \"milestoneDescriptionOne\": \"Cold email system done & ready for warmup.\",\n \"milestoneDescriptionTwo\": \"Cold email system fully warmed up & operational.\",\n \"milestoneDescriptionThree\": \"10,000 outbound emails sent; analysis & training #1.\"\n \"milestoneDescriptionFour\":\"One sales training per week alongside iteration & handoff.\"\n}"
},
{
"content": "={\n \"companyName\":\"{{ $json['Company Name'] }}\",\n \"problem\": \"{{ $json.Problem }}\",\n \"solution\": \"{{ $json.Solution}}\",\n \"scope\": \"{{ $json.Scope }}\",\n \"currentDate\":\"{{ $now.toLocaleString({ dateStyle: 'medium' }) }}\",\n \"howSoon\": \"{{ $json['How soon?'] }}\",\n \"depositCost\": \"{{ $json.Cost }}\",\n}"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "oLLACDYfGm4C4ouV",
"name": "YouTube "
}
},
"typeVersion": 1.6
},
{
"id": "850e7d84-2001-421f-a8a2-aa9aa64f06b9",
"name": "Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
500,
0
],
"parameters": {
"name": "={{ $json.message.content.proposalTitle }}",
"fileId": {
"__rl": true,
"mode": "id",
"value": "1fHzjDQtZouAwfv4kn5uvgpTWqwhTAlPrGkdtkbYBkNE"
},
"options": {
"copyRequiresWriterPermission": false
},
"operation": "copy"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "8R2NiLt8owCA0E2O",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "dda7e0fa-e8cc-40a8-8af5-9f22b70f4752",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
900,
0
],
"webhookId": "b989215e-e975-44a7-9dc7-fd51e7310cba",
"parameters": {
"sendTo": "={{ $('On form submission').item.json.Email }}",
"message": "=Hey Nick,\n\nThanks for the great call earlier. I had a moment after our chat to put together a detailed proposal for you—please take a look at your earliest convenience and let me know your thoughts.\n\nYou'll find it here: https://docs.google.com/presentation/d/{{ $json.presentationId }}/edit\n\nIf you have any questions, just shout. I've also sent over an invoice for the project (just to keep things convenient) and can get started anytime that's sorted.\n\nThanks,\nNick",
"options": {
"appendAttribution": false
},
"subject": "Re: Proposal for LeftClick",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "YqmvyP5s2u0IHOHB",
"name": "Gmail account 3"
}
},
"typeVersion": 2.1
},
{
"id": "2d9e8695-d112-40a7-810a-94f3b3919382",
"name": "表单提交时",
"type": "n8n-nodes-base.formTrigger",
"position": [
-20,
0
],
"webhookId": "24fd835d-9132-4faf-b715-755e75aee9be",
"parameters": {
"options": {
"appendAttribution": false
},
"formTitle": "Sales Call Logging Form",
"formFields": {
"values": [
{
"fieldLabel": "First Name",
"requiredField": true
},
{
"fieldLabel": "Last Name",
"requiredField": true
},
{
"fieldLabel": "Company Name",
"requiredField": true
},
{
"fieldType": "email",
"fieldLabel": "Email"
},
{
"fieldLabel": "Website",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Problem",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Solution",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Scope",
"requiredField": true
},
{
"fieldLabel": "Cost",
"requiredField": true
},
{
"fieldLabel": "How soon?",
"requiredField": true
}
]
},
"formDescription": "This form logs a sales call & automatically generates a proposal."
},
"typeVersion": 2.2
},
{
"id": "bc1bf3dd-7261-4f56-a71b-236fbde109ff",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
-100
],
"parameters": {
"width": 1220,
"height": 280,
"content": "## Google Slides AI 提案生成器"
},
"typeVersion": 1
},
{
"id": "d59a6b99-e112-424c-b6e5-3eeb92a1c784",
"name": "OpenAI1",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
160,
460
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"options": {},
"messages": {
"values": [
{
"role": "system",
"content": "You are a helpful, intelligent writing assistant."
},
{
"content": "=Your task is to generate a proposal using input data from a form. This proposal should be highly customized, specific, and high-quality, considering we're going to be sending it immediately after you're done.\n\nContext: we are an automation/no-code agency that develops systems revolving around growth, revenue ops, etc.\n\nThe proposal template we're using has many fields. You must return these fields in one JSON object.\n\nUse this format:\n\n{\n \"proposalTitle\": \"\",\n \"descriptionName\": \"\",\n \"problemTitle\": \"\",\n \"oneParagraphProblemSummary\": \"\",\n \"solutionTitle\": \"\",\n \"solutionText\": \"\",\n \"scopeOne\": \"\",\n \"scopeTwo\": \"\",\n \"scopeThree\": \"\",\n \"scopeFour\": \"\",\n \"scopeFive\": \"\",\n \"timelineOne\": \"\",\n \"timelineTwo\": \"\",\n \"timelineThree\": \"\",\n \"timelineFour\": \"\"\n}\n\nRules:\n1. Use a spartan, casual tone of voice.\n2. Be to-the-point but professional—assume you're writing to a sophisticated audience.\n3. Ensure that all fields are filled out. Do not miss a field or leave any variables empty.\n4. For oneParagraphProblemSummary and solutionText, make sure to number the responses (usually 3, make sure they're inside of the string)."
},
{
"content": "={\n \"companyName\":\"1SecondCopy\",\n \"problem\": \"they can't generate leads. everything is referral based rn.\",\n \"solution\": \"cold email lead gen system, client reactivation system, and best in class sales training for closing\",\n \"scope\": \"1k/day cold email infra, 30k email leads, 4 weekly zoom sessions for sales training\",\n \"currentDate\":\"Feb 4 2025\",\n \"howSoon\": \"two months\",\n \"depositCost\": \"$1,845\",\n}"
},
{
"role": "assistant",
"content": "={\n \"proposalTitle\": \"Lead Gen System for 1SecondCopy\n\",\n \"descriptionName\": \"A simple, scalable lead generation system built to help grow your content efforts & connect you with the right people.\n\",\n \"problemTitle\":\"Inability to generate leads\"\n \"oneParagraphProblemSummary\": \"Right now, 1SecondCopy is struggling with:\\n\\n 1. An inability to generate qualified leads.\\nThe majority of your new clients are referral-based, which, while always nice to have, is not scalable nor is it reliable. Building an alternative strategy—one that allows you to take leads from cold -> close—is vital to the health and longevity of the company, and it’s what we’re going to help you with.\\n\\n 2. No standardized followup mechanism.\\nWithout a way to follow up with leads, you're leaving the majority of the money that one of those leads could produce for you on the table.\n\",\n \"solutionTitle\": \"Sales & Lead Generation Solutions\",\n \"solutionText\": \"1. Cold Outbound Lead Gen\\nIn order to generate leads efficiently, we’ll put in place a robust cold-email-based system for you using best practices.\\n\\n2. Client Reactivation System\\nIn order to extract value from pre-existing clients, we’ll build a simple but high-ROI reactivation system.\\n\\n3. Best-In-Class Sales Training\\nIn order to improve conversion rates, we’ll train your team with world-class setting & closing mechanisms.\"\n \"scopeOne\":\"We'll create a database to store both videos and competitors.\",\n \"scopeTwo\":\"We'll create a simple form to quickly add competitors to your database.\",\n \"scopeThree\":\"We'll build a daily flow that automatically generates video outlines based on the scrapes.\",\n \"scopeFour\":\"We'll record documentation showing you how to manage and update the system.\",\n \"scopeFive\":\"We'll provide one, two-hour team training session to teach your company how to use the system.\",\n \"timelineOne\": \"Cold email system done & ready for warmup: February 8th, 2025\",\n \"timelineTwo\": \"Cold email system fully warmed up & operational: February 28th, 2025\",\n \"timelineThree\": \"10,000 outbound emails sent; analysis & training #1: March 10th, 2025\",\n \"timelineFour\":\"One sales training per week alongside iteration & handoff: March 17th-April 1st, 2025\",\n}"
},
{
"content": "={\n \"companyName\":\"{{ $json['Company Name'] }}\",\n \"problem\": \"{{ $json.Problem }}\",\n \"solution\": \"{{ $json.Solution}}\",\n \"scope\": \"{{ $json.Scope }}\",\n \"currentDate\":\"{{ $now.toLocaleString({ dateStyle: 'medium' }) }}\",\n \"howSoon\": \"{{ $json['How soon?'] }}\",\n \"depositCost\": \"{{ $json.Cost }}\",\n}"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "oLLACDYfGm4C4ouV",
"name": "YouTube "
}
},
"typeVersion": 1.6
},
{
"id": "66ec15ea-ba46-4aad-993a-e0b9cefde871",
"name": "Gmail1",
"type": "n8n-nodes-base.gmail",
"position": [
740,
460
],
"webhookId": "470caaaa-62ff-4468-973d-4b1082cfe57a",
"parameters": {
"sendTo": "={{ $('On form submission1').item.json.Email }}",
"message": "=Hey Nick,\n\nThanks for the great call earlier. I had a moment after our chat to put together a detailed proposal for you—please take a look at your earliest convenience and let me know your thoughts.\n\nYou'll find it here: https://docs.google.com/presentation/d/{{ $json.presentationId }}/edit\n\nIf you have any questions, just shout. I've also sent over an invoice for the project (just to keep things convenient) and can get started anytime that's sorted.\n\nThanks,\nNick",
"options": {
"appendAttribution": false
},
"subject": "Re: Proposal for LeftClick",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "YqmvyP5s2u0IHOHB",
"name": "Gmail account 3"
}
},
"typeVersion": 2.1
},
{
"id": "89833949-672b-4120-94fe-2f5b9b8b21de",
"name": "表单提交时1",
"type": "n8n-nodes-base.formTrigger",
"position": [
-20,
460
],
"webhookId": "f0e8d4a0-8002-4804-aa90-4566fef26283",
"parameters": {
"options": {
"appendAttribution": false
},
"formTitle": "Sales Call Logging Form",
"formFields": {
"values": [
{
"fieldLabel": "First Name",
"requiredField": true
},
{
"fieldLabel": "Last Name",
"requiredField": true
},
{
"fieldLabel": "Company Name",
"requiredField": true
},
{
"fieldType": "email",
"fieldLabel": "Email"
},
{
"fieldLabel": "Website",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Problem",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Solution",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Scope",
"requiredField": true
},
{
"fieldLabel": "Cost",
"requiredField": true
},
{
"fieldLabel": "How soon?",
"requiredField": true
}
]
},
"formDescription": "This form logs a sales call & automatically generates a proposal."
},
"typeVersion": 2.2
},
{
"id": "5cf9ca5e-2ffa-492f-899f-4668786dabbd",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
360
],
"parameters": {
"width": 1220,
"height": 280,
"content": "## PandaDoc AI 提案生成器"
},
"typeVersion": 1
},
{
"id": "6b8e90ef-c520-40b6-9ec6-a7d422763d8a",
"name": "HTTP 请求",
"type": "n8n-nodes-base.httpRequest",
"position": [
520,
460
],
"parameters": {
"url": "https://api.pandadoc.com/public/v1/documents/",
"method": "POST",
"options": {},
"jsonBody": "={\n \"name\": \"{{ $json.message.content.proposalTitle }}\",\n \"fields\": {\n \"Initials\": {\n \"value\": \"EI\"\n }\n },\n \"tokens\": [\n {\n \"name\": \"Client.Email\",\n \"value\": \"{{ $('On form submission1').item.json.Email }}\"\n },\n {\n \"name\": \"Sender.Email\",\n \"value\": \"nick@leftclick.ai\"\n },\n {\n \"name\": \"Client.Scope1\",\n \"value\": \"{{ $json.message.content.scopeOne }}\"\n },\n {\n \"name\": \"Client.Scope2\",\n \"value\": \"{{ $json.message.content.scopeTwo }}\"\n },\n {\n \"name\": \"Client.Scope3\",\n \"value\": \"{{ $json.message.content.scopeThree }}\"\n },\n {\n \"name\": \"Client.Scope4\",\n \"value\": \"{{ $json.message.content.scopeFour }}\"\n },\n {\n \"name\": \"Client.Scope5\",\n \"value\": \"{{ $json.message.content.scopeFive }}\"\n },\n {\n \"name\": \"Client.Company\",\n \"value\": \"{{ $('On form submission1').item.json['Company Name'] }}\"\n },\n {\n \"name\": \"Sender.Company\",\n \"value\": \"WorkflowLoop\"\n },\n {\n \"name\": \"Client.LastName\",\n \"value\": \"{{ $('On form submission1').item.json['Last Name'] }}\"\n },\n {\n \"name\": \"Sender.LastName\",\n \"value\": \"Saraev\"\n },\n {\n \"name\": \"Client.FirstName\",\n \"value\": \"{{ $('On form submission1').item.json['First Name'] }}\"\n },\n {\n \"name\": \"Client.Timeline1\",\n \"value\": \"{{ $json.message.content.timelineOne }}\"\n },\n {\n \"name\": \"Client.Timeline2\",\n \"value\": \"{{ $json.message.content.timelineTwo }}\"\n },\n {\n \"name\": \"Client.Timeline3\",\n \"value\": \"{{ $json.message.content.timelineThree }}\"\n },\n {\n \"name\": \"Client.Timeline4\",\n \"value\": \"{{ $json.message.content.timelineFour }}\"\n },\n {\n \"name\": \"Sender.FirstName\",\n \"value\": \"Nick\"\n },\n {\n \"name\": \"Client.ProblemText\",\n \"value\": \"{{ $json.message.content.oneParagraphProblemSummary }}\"\n },\n {\n \"name\": \"Client.ProblemTitle\",\n \"value\": \"{{ $json.message.content.problemTitle }}\"\n },\n {\n \"name\": \"Client.SolutionText\",\n \"value\": {{ JSON.stringify($json.message.content.solutionText) }}\n },\n {\n \"name\": \"Client.ProposalTitle\",\n \"value\": \"{{ $json.message.content.proposalTitle }}\"\n },\n {\n \"name\": \"Client.SolutionTitle\",\n \"value\": \"{{ $json.message.content.solutionTitle }}\"\n }\n ],\n \"metadata\": {},\n \"recipients\": [\n {\n \"email\": \"{{ $('On form submission1').item.json.Email }}\",\n \"role\": \"Client\"\n },\n {\n \"email\": \"nick@leftclick.ai\",\n \"company\": \"WorkflowLoop\",\n \"last_name\": \"Saraev\",\n \"first_name\": \"Nick\",\n \"role\": \"Sender\"\n }\n ],\n \"template_uuid\": \"yxge9HxfgWhvqKjFXwWEpS\",\n \"pricing_tables\": [\n {\n \"name\": \"Pricing Table 1\",\n \"options\": {\n \"currency\": \"USD\"\n },\n \"sections\": [\n {\n \"rows\": [\n {\n \"data\": {\n \"qty\": 1,\n \"name\": \"{{ $json.message.content.proposalTitle }}\",\n \"price\": {{ $('On form submission1').item.json.Cost.replace(\"$\",\"\").replace(\",\",\"\").toNumber() }}\n },\n \"options\": {\n \"optional\": false,\n \"qty_editable\": false,\n \"optional_selected\": false\n }\n }\n ],\n \"title\": \"Pricing Section\",\n \"default\": true\n }\n ]\n }\n ]\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "API-Key {yourApiKeyGoesHere}"
},
{
"name": "accept",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
}
],
"active": false,
"pinData": {
"On form submission1": [
{
"json": {
"Cost": "$3,525",
"Email": "nickolassaraev@gmail.com",
"Scope": "form you can fill out with competitors, that adds them to a db. once per day db is scraped and you get however many people are in the Sheet x however many vids they put out",
"Problem": "they're struggling making YouTube vids. Everything is really time intensive rn, mostly because they don't have scripts.",
"Website": "https://leftclick.ai",
"Solution": "AI script writing system, scrapes competitor youtube vids for ideas and rephrases best performing titles, then writes outlines",
"formMode": "test",
"How soon?": "two weeks",
"Last Name": "Saraev",
"First Name": "Peter",
"submittedAt": "2025-02-04T16:18:45.810-07:00",
"Company Name": "LeftCLick"
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "2452f9ed-c796-4e03-89c6-f7c735b77966",
"connections": {
"OpenAI": {
"main": [
[
{
"node": "Google Drive",
"type": "main",
"index": 0
}
]
]
},
"OpenAI1": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"Google Drive": {
"main": [
[
{
"node": "Replace Text",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Gmail1",
"type": "main",
"index": 0
}
]
]
},
"Replace Text": {
"main": [
[
{
"node": "Gmail",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[]
]
},
"On form submission1": {
"main": [
[
{
"node": "OpenAI1",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 人工智能, 营销
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
1. LinkedIn连接请求系统:触发PhantomBuster智能体
使用 Apollo、GPT-4、Apify 和 PhantomBuster 的个性化 LinkedIn 连接请求
Limit
Aggregate
Form Trigger
+4
12 节点Nick Saraev
人工智能
Apify抓取新Instagram Reels -> 转录 -> 添加到表格
使用Apify、GPT-4o和Perplexity自动化Instagram内容发现与再利用
Limit
Merge
Http Request
+4
16 节点Nick Saraev
人工智能
Facebook广告竞品创意分析与自动邮件报告
使用AI(GPT-4和Gemini)分析竞争对手Facebook广告并生成邮件报告
Set
Wait
Gmail
+13
31 节点SamirLiu
人工智能
使用AI、ElevenLabs和多平台发布创建和审批POV视频
使用AI、ElevenLabs和多平台发布创建和审批POV视频(TikTok/IG/YT)
If
Set
Code
+20
60 节点Immanuel
设计
抓取竞品评论并使用 Bright Data 和 OpenAI 生成广告创意
抓取竞品评论并使用 Bright Data 和 OpenAI 生成广告创意
If
Wait
Gmail
+8
17 节点Yaron Been
产品
✨🤖 自动化AI驱动的社交媒体内容工厂,适用于X + Facebook + Instagram + LinkedIn
✨🤖 使用AI自动化多平台社交媒体内容创建
If
Set
Code
+17
57 节点Joseph LePage
人工智能