AutomationFlowsAI & RAG › Sales Assistant Build

Sales Assistant Build

Sales Assistant Build. Uses manualTrigger, agent, lmChatOpenAi, toolHttpRequest. Event-driven trigger; 13 nodes.

Event trigger★★★☆☆ complexityAI-powered13 nodesAgentLm Chat Open AiTool Http RequestGoogle Sheets ToolOutput Parser StructuredGoogle Sheets
AI & RAG Trigger: Event Nodes: 13 Complexity: ★★★☆☆ AI nodes: yes

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Sales Assistant Build",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        160,
        0
      ],
      "id": "4a38c2dd-3d35-441d-86a9-6ba81ce191e5",
      "name": "When clicking \u2018Test workflow\u2019"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Please research these sales call attendees\n\nName: {{ $json.Name }}\nEmail: {{ $json.Email }}\nCompany Name: {{ $json['Company Name'] }}\nWebsite: {{ $json.Website }}\nBusiness Type: {{ $json['Business Type'] }}\nProject: {{ $json.Project }}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "# Overview  \nYou are an AI agent responsible for gathering company data and updating a Google Sheet with structured output.  \n\n## Context  \n- After generating output, you must call the **Update Sheet** tool with six specific fields.  \n- Do not skip this step or simply return JSON. The tool must be called explicitly to trigger the Google Sheet update.  \n\n## Instructions  \n1. Accept and parse the input fields.  \n2. Use the **Tavily** tool to gather and summarize:  \n   - `company_overview`  \n   - `tech_stack`  \n   - `company_updates`  \n3. Use the **Product List** tool to identify:  \n   - `primary_solution`  \n   - `solution_2`  \n   - `solution_3`  \n4. Format all results as valid JSON with exactly six fields.  \n5. Immediately call the **Update Sheet** tool using the structure shown below.  \n\n## Tools  \n- **Tavily**: Use to research company background, tech stack, and updates.  \n- **Product List**: Use to find relevant products based on business type and project.  \n- **Update Sheet**: Required to write the six outputs into Google Sheets.  \n\n## Examples  \n### Example Input  \n```json\n{\n  \"Name\": \"Acme Inc.\",\n  \"Website\": \"https://www.acme.com\",\n  \"Business Type\": \"E-commerce\",\n  \"Project\": \"Streamlining logistics with automation\"\n}\n```  \n\n### Example Tavily Summary  \n```json\n{\n  \"company_overview\": \"Acme Inc. is a fast-scaling e-commerce company focused on home goods and lifestyle products.\",\n  \"tech_stack\": \"Shopify, Klaviyo, ShipBob, Gorgias\",\n  \"company_updates\": \"Recently launched a same-day delivery program in select cities and expanded product categories in Q2.\"\n}\n```  \n\n### Example Product List Result  \n```json\n{\n  \"primary_solution\": \"Logistics Automation Suite\",\n  \"solution_2\": \"Customer Retention AI\",\n  \"solution_3\": \"Real-Time Order Tracking\"\n}\n```  \n\n### Example Tool Call  \n```json\n{\n  \"tool_call\": {\n    \"tool\": \"Update Sheet\",\n    \"parameters\": {\n      \"company_overview\": \"Acme Inc. is a fast-scaling e-commerce company focused on home goods and lifestyle products.\",\n      \"tech_stack\": \"Shopify, Klaviyo, ShipBob, Gorgias\",\n      \"company_updates\": \"Recently launched a same-day delivery program in select cities and expanded product categories in Q2.\",\n      \"primary_solution\": \"Logistics Automation Suite\",\n      \"solution_2\": \"Customer Retention AI\",\n      \"solution_3\": \"Real-Time Order Tracking\"\n    }\n  }\n}\n```  \n\n## SOP (Standard Operating Procedure)  \n1. Parse and validate input fields.  \n2. Use Tavily to collect:  \n   - company_overview  \n   - tech_stack  \n   - company_updates  \n3. Use Product List to determine:  \n   - primary_solution  \n   - solution_2  \n   - solution_3  \n4. Combine results into a valid JSON object using exact field names.  \n5. Call the Update Sheet tool using that object.  \n\n## Final Notes  \n- Return only valid JSON \u2014 no extra text or descriptions.  \n- Always include all six fields, even if data is limited.  \n- Use of the Update Sheet tool is mandatory to complete the task.  \n---\n"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.9,
      "position": [
        592,
        0
      ],
      "id": "4af5de2c-fcc0-4cad-87e3-1b3899ed8bda",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1",
          "mode": "list",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        440,
        220
      ],
      "id": "ab61b66a-e664-493f-8d15-ac560457e85f",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "toolDescription": "Use this tool to search the internet",
        "method": "POST",
        "url": "https://api.tavily.com/search",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n    \"api_key\": \"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\",\n    \"query\": \"{searchTerm}\",\n    \"search_depth\": \"basic\",\n    \"include_answer\": true,\n    \"topic\": \"news\",\n    \"include_raw_content\": true,\n    \"max_results\": 3\n} ",
        "placeholderDefinitions": {
          "values": [
            {
              "name": "searchTerm",
              "description": "What the user has requested to search the internet for",
              "type": "string"
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
      "typeVersion": 1.1,
      "position": [
        560,
        220
      ],
      "id": "3df51abb-d8f0-4d76-882f-a1bac5978c75",
      "name": "Tavily"
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "mode": "list",
          "cachedResultName": "Mock Data",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 1986928329,
          "mode": "list",
          "cachedResultName": "Products",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=1986928329"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        660,
        360
      ],
      "id": "79b3a1dc-41bf-4529-8f5b-cf2ddedfb636",
      "name": "Product List",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "mode": "list",
          "cachedResultName": "Mock Data",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 236449331,
          "mode": "list",
          "cachedResultName": "Meeting Data",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=236449331"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Email": "={{ $json.Email }}",
            "company_overview": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('company_overview', ``, 'string') }}",
            "tech_stack": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('tech_stack', ``, 'string') }}",
            "company_updates": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('company_updates', ``, 'string') }}",
            "primary_solution": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('primary_solution', ``, 'string') }}",
            "solution_2": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('solution_2', ``, 'string') }}",
            "solution_3": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('solution_3', ``, 'string') }}"
          },
          "matchingColumns": [
            "Email"
          ],
          "schema": [
            {
              "id": "Call Date",
              "displayName": "Call Date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Name",
              "displayName": "Name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Email",
              "displayName": "Email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Company Name",
              "displayName": "Company Name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Website",
              "displayName": "Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Business Type",
              "displayName": "Business Type",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Project",
              "displayName": "Project",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "company_overview",
              "displayName": "company_overview",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "tech_stack",
              "displayName": "tech_stack",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "company_updates",
              "displayName": "company_updates",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "primary_solution",
              "displayName": "primary_solution",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "solution_2",
              "displayName": "solution_2",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "solution_3",
              "displayName": "solution_3",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "email_subject",
              "displayName": "email_subject",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "email_text",
              "displayName": "email_text",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "sms",
              "displayName": "sms",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "row_number",
              "displayName": "row_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "readOnly": true,
              "removed": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        780,
        300
      ],
      "id": "70e6f3da-f84f-4b0e-b54f-b7d65204e118",
      "name": "Update Sheet",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"company_overview\": \"string (max 100 tokens)\",\n  \"tech_stack\": [\"string\", \"string\", \"...\"],\n  \"company_updates\": \"string (max 150 tokens)\",\n  \"primary_solution\": \"string\",\n  \"solution_2\": \"string\",\n  \"solution_3\": \"string\"\n}\n"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.2,
      "position": [
        880,
        200
      ],
      "id": "6fb79298-d2e4-4697-9b4d-e233b37edbb8",
      "name": "Structured Output Parser"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Name: {{ $('Review Calls').item.json.Name }}\nEmail: {{ $('Review Calls').item.json.Email }}\nCompany Name: {{ $('Review Calls').item.json['Company Name'] }}\nWebsite: {{ $('Review Calls').item.json.Website }}\nBusiness Type: {{ $('Review Calls').item.json['Business Type'] }}\nProject: {{ $('Review Calls').item.json.Project }}\ncompany_overview: {{ $json.output.company_overview }}\ntech_stack: {{ $json.output.tech_stack }}\ncompany_updates: {{ $json.output.company_updates }}\nprimary_solution: {{ $json.output.primary_solution }}\nsolution_2: {{ $json.output.solution_2 }}\nsolution_3: {{ $json.output.solution_3 }}\n",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "# Overview  \nYou are a Sales Writing Assistant AI agent responsible for generating a short, personal, and persuasive email, subject line, and SMS right after a prospect books a call. The format must feel handcrafted and human, while integrating strong personalization and a sharp testimonial to build conviction fast.  \n\n## Context  \n- The prospect should feel like the message was written specifically for them\u2014not templated or generic.  \n- The core structure focuses on one key problem they face, followed by immediate proof that we\u2019ve solved that problem for someone just like them.  \n- Messaging must be short, clean, confident, and natural\u2014written like a thoughtful sales rep, not a marketer.  \n- SMS should be simple, friendly, and casual.  \n- Final output must also be logged in a Google Sheet.  \n\n## Instructions  \n1. Analyze the input fields to identify:  \n   - Prospect\u2019s first name, company, business type, and project  \n   - Their specific pain point or goal  \n   - Tech stack or approach they\u2019re using to solve it  \n2. Use the Testimonials Tool to find a success story with a company similar in size, industry, or problem. Pull:  \n   - Company name  \n   - Business type  \n   - Specific result  \n   - Outcome  \n   - Solution used  \n3. Draft a subject line like:  \n   - \u201cExcited to connect, (first name)\u201d  \n4. Write the email using the following exact structure and voice:  \n   ```\n   Subject: Excited to connect, (first name)\n\n   Hey (first name),\n\n   Saw your booking\u2014excited to dive in on (meeting date).\n\n   Automating (problem/project) is right in our wheelhouse. We actually just helped (testimonial first name) who owns (testimonial business name/type) [achieve similar outcome] and (outcome)\u2014just by (solution).\n\n   Looking forward to showing you what\u2019s possible.\n\n   \u2013 Nolan\n   ```\n5. Draft the SMS message using this format:  \n   - \u201cHey (first name)! Nolan from Agent Stack here\u2014just saw your appointment come through. Pumped to hear more about (project details). See you on (meeting day/date)!\u201d  \n6. Output must include:  \n   - Subject  \n   - Email  \n   - Text Message  \n\n## Tools  \n- Testimonials Tool: For pulling relevant proof points  \n- Email Agent: For formatting and polishing  \n- Update Sheets 2: To store outputs  \n\n## Examples  \n- **Output Subject:**  \n  Excited to connect, Jason  \n\n- **Output Email:**  \n  Hey Jason,  \n\n  Saw your booking\u2014excited to dive in on Thursday.  \n\n  Automating custom proposal workflows is right in our wheelhouse. We actually just helped Vibe Studios who runs a creative agency cut 12+ hrs/week of manual drafting and boost proposal output by 4x\u2014just by automating creative packaging from content requests.  \n\n  Looking forward to showing you what\u2019s possible.  \n\n  \u2013 Nolan  \n\n- **Output Text Message:**  \n  Hey Jason! Nolan from Agent Stack here\u2014just saw your appointment come through. Pumped to hear more about your proposal automation plans. See you on Thursday!  \n\n## SOP (Standard Operating Procedure)  \n1. Parse all inputs and identify:  \n   - Name  \n   - Specific problem or goal  \n   - Relevant testimonial  \n2. Draft:  \n   - Subject line using first name  \n   - Email using the provided structure and tone  \n   - SMS with natural tone  \n3. Output fields:  \n   - Output Subject  \n   - Output Email  \n   - Output Text Message  \n4. Use Update Sheets 2 to store the following:  \n   - Name  \n   - Email  \n   - Company Name  \n   - Subject  \n   - Email Body  \n   - SMS Message  \n\n## Final Notes  \n- Use clean, minimal formatting\u2014no fluff, no pitchy language.  \n- The testimonial is central\u2014tie it directly to the prospect\u2019s challenge.  \n- The tone should sound like a proactive, thoughtful rep who did their homework.  \n---\n\n"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.9,
      "position": [
        1080,
        0
      ],
      "id": "f13b04eb-0a0e-4a65-8ff6-a2a1e155a057",
      "name": "Sales Writing Assistant"
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "mode": "list",
          "cachedResultName": "Mock Data",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 236449331,
          "mode": "list",
          "cachedResultName": "Meeting Data",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=236449331"
        },
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "company_overview",
              "lookupValue": "FILL"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        380,
        0
      ],
      "id": "6c7bada9-e494-42ef-850b-8025b8c7ec08",
      "name": "Review Calls",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "gpt-4.1",
          "mode": "list",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        1040,
        240
      ],
      "id": "0a5de4fe-2c19-4c52-8f0b-f9e128ef9a82",
      "name": "OpenAI Chat Model1",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "mode": "list",
          "cachedResultName": "Mock Data",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 2060485763,
          "mode": "list",
          "cachedResultName": "Success Stories",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=2060485763"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        1160,
        400
      ],
      "id": "1f7864bd-b03b-422b-b674-eb172816670b",
      "name": "Testimonials Tool",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"subject\": {\n      \"type\": \"string\",\n      \"description\": \"The subject line of the confirmation email\"\n    },\n    \"email\": {\n      \"type\": \"string\",\n      \"description\": \"The full content of the confirmation email\"\n    },\n    \"text_message\": {\n      \"type\": \"string\",\n      \"description\": \"The full content of the confirmation SMS message\"\n    }\n  },\n  \"required\": [\"subject\", \"email\", \"text_message\"]\n}\n"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.2,
      "position": [
        1380,
        200
      ],
      "id": "c1b4b76e-b2cc-4ccc-893f-427e9665ccd9",
      "name": "Structured Output Parser1"
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "mode": "list",
          "cachedResultName": "Mock Data",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 236449331,
          "mode": "list",
          "cachedResultName": "Meeting Data",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=236449331"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Email": "={{ $('Review Calls').item.json.Email }}",
            "email_subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('email_subject', ``, 'string') }}",
            "email_text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('email_text', ``, 'string') }}",
            "sms": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('sms', ``, 'string') }}"
          },
          "matchingColumns": [
            "Email"
          ],
          "schema": [
            {
              "id": "Call Date",
              "displayName": "Call Date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Name",
              "displayName": "Name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Email",
              "displayName": "Email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Company Name",
              "displayName": "Company Name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Website",
              "displayName": "Website",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Business Type",
              "displayName": "Business Type",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "Project",
              "displayName": "Project",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "company_overview",
              "displayName": "company_overview",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "tech_stack",
              "displayName": "tech_stack",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "company_updates",
              "displayName": "company_updates",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "primary_solution",
              "displayName": "primary_solution",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "solution_2",
              "displayName": "solution_2",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "solution_3",
              "displayName": "solution_3",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            },
            {
              "id": "email_subject",
              "displayName": "email_subject",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "email_text",
              "displayName": "email_text",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "sms",
              "displayName": "sms",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "displayName": "row_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "readOnly": true,
              "removed": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheetsTool",
      "typeVersion": 4.5,
      "position": [
        1300,
        340
      ],
      "id": "abda2ec3-9d55-4284-a95b-cdbe5ad84012",
      "name": "Update Sheets 2",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Review Calls",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Tavily": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Product List": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheet": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Review Calls": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Testimonials Tool": {
      "ai_tool": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Update Sheets 2": {
      "ai_tool": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Sales Writing Assistant": {
      "main": [
        []
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f5d53a9b-71ee-49e1-86c0-e6ed35adc6a0",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "7cd6GfXAxGwxWadd",
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

About this workflow

Sales Assistant Build. Uses manualTrigger, agent, lmChatOpenAi, toolHttpRequest. Event-driven trigger; 13 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →