Sistema de Generación de Propuestas con IA
Este es unAI, Marketingflujo de automatización del dominio deautomatización que contiene 15 nodos.Utiliza principalmente nodos como Gmail, FormTrigger, GoogleDrive, HttpRequest, GoogleSlides, combinando tecnología de inteligencia artificial para lograr automatización inteligente. Generador avanzado de propuestas con IA: integra OpenAI, Google Slides y PandaDoc
- •Cuenta de Google y credenciales de API de Gmail
- •Credenciales de API de Google Drive
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Clave de API de OpenAI
Nodos utilizados (15)
Categoría
{
"id": "x6UbWXr0iMgy1TEB",
"meta": {
"instanceId": "d7661a849ead114a9aa6d9ceaf4160465aeb79532a35bde62160c840ffba9fc8"
},
"name": "AI Proposal Generator System",
"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": "## 🚀 STEP 1: Sales Call Form\n\nCaptures essential deal information in under 30 seconds:\n\n**Form Fields:** Company details, problem description, proposed solution, project scope, timeline, and budget\n\n**Use Case:** Fill out during live sales calls for instant proposal generation\n\n**Result:** Structured data ready for AI processing"
},
"typeVersion": 1,
"name": "Replace Text"
},
{
"id": "sticky-note-2",
"type": "n8n-nodes-base.stickyNote",
"position": [
120,
-280
],
"parameters": {
"width": 380,
"height": 180,
"content": "## 🧠 STEP 2: AI Content Generation\n\nTransforms basic form inputs into professional proposal content:\n\n**OpenAI Processing:** Uses sophisticated GPT-4 prompting with example-based training\n**Output:** 20+ proposal sections including titles, problem analysis, solutions, scope, and timelines\n**Quality:** Professional business language with consistent tone and formatting\n\n**Key:** AI converts 30-second inputs into comprehensive proposals"
},
"typeVersion": 1,
"name": "__PROTECTED_56__"
},
{
"id": "sticky-note-3",
"type": "n8n-nodes-base.stickyNote",
"position": [
450,
-300
],
"parameters": {
"width": 400,
"height": 200,
"content": "## 📄 STEP 3: Document Generation\n\n**Google Slides Path (Free):**\n1. **Google Drive:** Copies proposal template\n2. **Replace Text:** Populates template with AI-generated content\n3. **Gmail:** Sends proposal link via email\n\n**PandaDoc Path (Premium):**\n1. **HTTP Request:** Creates PandaDoc with payment integration\n2. **Gmail:** Sends proposal with signature + payment capabilities\n\n**Result:** Professional proposals ready for client review"
},
"typeVersion": 1,
"name": "__PROTECTED_51__ Drive"
},
{
"id": "sticky-note-4",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
-200
],
"parameters": {
"width": 350,
"height": 160,
"content": "## ⚡ WORKFLOW ADVANTAGES\n\n**Speed:** Generate proposals in under 30 seconds during live calls\n**Quality:** AI ensures consistent, professional presentation\n**Dual Options:** Free Google Slides or premium PandaDoc with payments\n**Revenue:** Proven $1,500-$5,000 per implementation\n\n**Business Impact:** Send proposals before competitors even schedule follow-ups"
},
"typeVersion": 1,
"name": "__PROTECTED_68__"
},
{
"id": "65eec1e0-5e75-4544-b1d2-ee686d419edd",
"name": "On form submission",
"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": "Nota adhesiva",
"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": "OpenAI1",
"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": "Gmail1",
"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": "On form submission1",
"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": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
-100
],
"parameters": {
"width": 1220,
"height": 280,
"content": "## Google Slides AI Proposal Generator\n**This flow generates proposals using the free Google Slides solution**."
},
"typeVersion": 1
},
{
"id": "d59a6b99-e112-424c-b6e5-3eeb92a1c784",
"name": "__PROTECTED_73__ Request",
"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": "On form submission1",
"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": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
360
],
"parameters": {
"width": 1220,
"height": 280,
"content": "## PandaDoc AI Proposal Generator\n**This flow generates proposals using the paid PandaDoc solution, and also sends an invoice alongside it**."
},
"typeVersion": 1
},
{
"id": "6b8e90ef-c520-40b6-9ec6-a7d422763d8a",
"name": "Solicitud 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": {
"Sticky Note": {
"main": [
[
{
"node": "850e7d84-2001-421f-a8a2-aa9aa64f06b9",
"type": "main",
"index": 0
}
]
]
},
"d59a6b99-e112-424c-b6e5-3eeb92a1c784": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"850e7d84-2001-421f-a8a2-aa9aa64f06b9": {
"main": [
[
{
"node": "65eec1e0-5e75-4544-b1d2-ee686d419edd",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "66ec15ea-ba46-4aad-993a-e0b9cefde871",
"type": "main",
"index": 0
}
]
]
},
"65eec1e0-5e75-4544-b1d2-ee686d419edd": {
"main": [
[
{
"node": "66ec15ea-ba46-4aad-993a-e0b9cefde871",
"type": "main",
"index": 0
}
]
]
},
"89833949-672b-4120-94fe-2f5b9b8b21de": {
"main": [
[
{
"node": "d59a6b99-e112-424c-b6e5-3eeb92a1c784",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Inteligencia Artificial, Marketing
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Nick Saraev
@nicksaraevCompartir este flujo de trabajo