{
  "id": "oQZ2islm9d6PeE9i",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automate Sales Call Research & Follow-Ups with GPT-4, Tavily and Google Sheets",
  "tags": [],
  "nodes": [
    {
      "id": "b5394fce-49a5-4cca-8a0c-a8a3e6f0d1c4",
      "name": "When clicking \u2018Test workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        752,
        208
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "a02cd958-18a1-40ef-9268-21cbe892d941",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1184,
        208
      ],
      "parameters": {
        "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 }}",
        "options": {
          "systemMessage": "=---\n\n# Overview\n\nYou are an **AI agent** responsible for gathering company data and updating a Google Sheet with a structured six-field output.\n\n## Context\n\n* After generating results, you **must call the Update Sheet tool**.\n* Do **not** just return JSON \u2014 the tool call is mandatory for writing to Google Sheets.\n\n## Instructions\n\n1. Accept and parse the input fields.\n2. Use the **Tavily** tool to gather and summarize:\n\n   * `company_overview`\n   * `tech_stack`\n   * `company_updates`\n3. Use the **Product List** tool to identify:\n\n   * `primary_solution`\n   * `solution_2`\n   * `solution_3`\n4. Format the results as valid JSON with exactly six fields.\n5. Immediately call the **Update Sheet** tool with that JSON.\n\n## Tools\n\n* **Tavily** \u2192 Research company background, stack, and updates\n* **Product List** \u2192 Generate product/solution suggestions\n* **Update Sheet** \u2192 Write the six fields into Google Sheets (required)\n\n## Examples\n\n### Example Input\n\n```json\n{\n  \"Name\": \"Trij Inc.\",\n  \"Website\": \"https://www.trij.com\",\n  \"Business Type\": \"E-commerce\",\n  \"Project\": \"Streamlining logistics with automation\"\n}\n```\n\n### Example Tavily Output\n\n```json\n{\n  \"company_overview\": \"Trij 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 Output\n\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 Update Sheet Tool Call\n\n```json\n{\n  \"tool_call\": {\n    \"tool\": \"Update Sheet\",\n    \"parameters\": {\n      \"company_overview\": \"Trij 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)\n\n1. Parse and validate inputs.\n2. Call Tavily to retrieve:\n\n   * `company_overview`\n   * `tech_stack`\n   * `company_updates`\n3. Call Product List to generate:\n\n   * `primary_solution`\n   * `solution_2`\n   * `solution_3`\n4. Combine all values into a JSON object with these six fields.\n5. Pass the object to **Update Sheet** via a tool call.\n\n## Final Notes\n\n* Return **only valid JSON** \u2014 no extra explanation or commentary.\n* Always include all six fields, even if the data is sparse.\n* The **Update Sheet** tool call is mandatory for completion.\n\n---\n\n \n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "aa38f3b8-a4e9-4e9b-910a-b5cb9f95fe01",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        992,
        432
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "30ffef45-0917-4665-a92c-617ee623cf57",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1472,
        416
      ],
      "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"
      },
      "typeVersion": 1.2
    },
    {
      "id": "e699751d-726c-4fe2-8753-bc5a503eac7c",
      "name": "Sales Writing Assistant",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1680,
        208
      ],
      "parameters": {
        "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",
        "options": {
          "systemMessage": "= ---\n\n# Overview\n\nYou are a **Sales Writing Assistant AI** tasked with creating a short, personal, and persuasive **email, subject line, and SMS** immediately after a prospect books a call. The output must feel handcrafted and human, blending personalization with a sharp testimonial to build fast conviction.\n\n## Context\n\n* Every message should feel written *for this specific person*, never like a template.\n* The structure highlights **one key pain point or goal**, then proves credibility with a testimonial from someone in a similar situation.\n* Writing style: short, clear, confident, and natural \u2014 like a thoughtful sales rep, not a marketer.\n* SMS must remain simple, casual, and friendly.\n* Final outputs must be logged in a Google Sheet.\n\n## Instructions\n\n1. Parse the input fields to capture:\n\n   * Prospect\u2019s first name, company, business type, project\n   * Their main pain point or goal\n   * Tech stack or method they\u2019re currently using\n2. Use the **Testimonials Tool** to pull a relevant success story that matches size, industry, or problem. Extract:\n\n   * Company name\n   * Business type\n   * Specific result\n   * Outcome\n   * Solution used\n3. Draft a subject line in this style:\n\n   * \u201cExcited to connect, (first name)\u201d\n4. Write the email in this **exact voice and structure**:\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 Bello\\n   `\n5. Draft the SMS in this format:\n\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 three fields:\n\n   * **Subject**\n   * **Email**\n   * **Text Message**\n\n## Tools\n\n* **Testimonials Tool** \u2192 Pull relevant proof points\n* **Email Agent** \u2192 Format and polish copy\n* **Update Sheets 2** \u2192 Store all outputs\n\n## Examples\n\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, 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 Bello\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)\n\n1. Parse all inputs:\n\n   * Name\n   * Specific problem or goal\n   * Relevant testimonial\n2. Draft outputs:\n\n   * Subject line (personalized with first name)\n   * Email (structured + testimonial)\n   * SMS (casual + project reference)\n3. Return the three fields:\n\n   * Output Subject\n   * Output Email\n   * Output Text Message\n4. Use **Update Sheets 2** to log:\n\n   * Name\n   * Email\n   * Company Name\n   * Subject\n   * Email Body\n   * SMS Message\n\n## Final Notes\n\n* Keep formatting clean and minimal \u2014 no fluff, no pitchy jargon.\n* Always center the testimonial \u2014 it must directly address the prospect\u2019s challenge.\n* Voice = proactive, thoughtful rep who has done their homework.\n\n---\n\n \n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "4e15e2b7-b94a-49d3-864e-b02bd85b44f1",
      "name": "Review Calls",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        976,
        208
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "FILL",
              "lookupColumn": "company_overview"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 236449331,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=236449331",
          "cachedResultName": "Meeting Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk",
          "cachedResultName": "Mock Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "460213b4-6595-49c0-a92a-f73e84c0e07d",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1984,
        416
      ],
      "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"
      },
      "typeVersion": 1.2
    },
    {
      "id": "a5b5bf6c-5a45-4417-b98e-95a22a34ad67",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 672,
        "height": 1728,
        "content": "## Sales Call Research & Follow-Up Automation\n\n**Goal:** Automatically research companies from booked calls, enrich data, and generate personal follow-up emails + SMS in Google Sheets.\n\n\n### 1. Prepare Google Sheets\n\n* Create (or connect) a **Google Sheet** with at least two tabs:\n\n  * **Meeting Data** \u2192 holds prospect info (**Name, Email, Company Name, Website, Business Type, Project**) and will be enriched with outputs.\n  * **Success Stories** \u2192 a list of **testimonials** (company, industry, results, outcome, solution used).\n\n* Ensure **Meeting Data** has these output headers as well:\n\n  * **company\\_overview, tech\\_stack, company\\_updates, primary\\_solution, solution\\_2, solution\\_3, email\\_subject, email\\_text, sms**\n\n---\n\n### 2. Connect Credentials in n8n\n\n* **Google Sheets** \u2192 authorize n8n to access your sheet.\n\n* **OpenAI** \u2192 add your API key (used for research + writing).\n\n* **Tavily** \u2192 add your API key (used for company background + updates).\n\n* Store all keys in **n8n Credentials** (don\u2019t hardcode).\n\n---\n\n### 3. Node Setup\n\n* **Trigger / Review Calls** \u2192 pulls new rows from *Meeting Data*.\n* **AI Agent** \u2192\n\n  * Uses **Tavily** to research: **company\\_overview, tech\\_stack, company\\_updates**.\n  * Uses **Product List** to suggest: **primary\\_solution, solution\\_2, solution\\_3**.\n  * Passes results to the **Update Sheet** node.\n* **Update Sheet** \u2192 updates the same row in *Meeting Data* with the six research fields.\n* **Sales Writing Assistant** \u2192\n\n  * Uses **prospect context + testimonials** to draft a **subject, email, and SMS**.\n  * Calls **Update Sheets 2** to save outputs.\n* **Update Sheets 2** \u2192 updates *Meeting Data* with final outreach content (**email\\_subject, email\\_text, sms**).\n\n---\n\n### 4. Test the Workflow\n\n* Add a **test row** in *Meeting Data* with sample prospect info.\n* Run the workflow manually (**Test Workflow**).\n* Confirm:\n\n  * **Research fields** are filled.\n  * **Email + SMS outputs** are written back into the row.\n\n---\n\n### 5. Go Live\n\n* Replace the **manual trigger** with your **real booking system** (e.g., Calendly \u2192 Google Sheets \u2192 n8n).\n* Keep running in background to **enrich and draft messages automatically**.\n\n---\n\n### \u26a0\ufe0f Troubleshooting\n\n* **No updates in sheet?** \u2192 Check the matching column is set to **Email**.\n* **Blank outputs?** \u2192 Make sure **Success Stories** tab has at least one testimonial.\n* **Auth errors?** \u2192 Reconnect **OpenAI**, **Tavily**, or **Google Sheets** credentials.\n* **Data mismatch?** \u2192 Verify your column headers exactly match the names used in the nodes.\n* **Workflow stuck?** \u2192 Run in **debug mode** and check if the AI Agent or Sales Writing Assistant timed out.\n\n---\n\n \n"
      },
      "typeVersion": 1
    },
    {
      "id": "0b011c68-9d96-4008-a8f0-9a6052a57b20",
      "name": "Company Research (Tavily)",
      "type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
      "position": [
        1152,
        432
      ],
      "parameters": {
        "url": "https://api.tavily.com/search",
        "method": "POST",
        "jsonBody": "{\n  \"api_key\": \"={{$json.api_key}}\",\n  \"query\": \"{searchTerm}\",\n  \"search_depth\": \"basic\",\n  \"include_answer\": true,\n  \"topic\": \"news\",\n  \"include_raw_content\": true,\n  \"max_results\": 3\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "toolDescription": "Use this tool to search the internet",
        "placeholderDefinitions": {
          "values": [
            {
              "name": "searchTerm",
              "type": "string",
              "description": "What the user has requested to search the internet for"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "efc09ac7-c7bd-4d0e-815b-b6f9efb5ceef",
      "name": "Fetch Success Stories",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1760,
        608
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 2060485763,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=2060485763",
          "cachedResultName": "Success Stories"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk",
          "cachedResultName": "Mock Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "4cd04c49-263d-4742-a4ba-18f1362ea0f1",
      "name": "Fetch Product List",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1264,
        576
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1986928329,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=1986928329",
          "cachedResultName": "Products"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk",
          "cachedResultName": "Mock Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "da31391a-dd64-42c8-bccd-1d63b2272fac",
      "name": "Update Prospect Research",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1376,
        512
      ],
      "parameters": {
        "columns": {
          "value": {
            "Email": "={{ $json.Email }}",
            "solution_2": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('solution_2', ``, 'string') }}",
            "solution_3": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('solution_3', ``, 'string') }}",
            "tech_stack": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('tech_stack', ``, 'string') }}",
            "company_updates": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('company_updates', ``, 'string') }}",
            "company_overview": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('company_overview', ``, 'string') }}",
            "primary_solution": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('primary_solution', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "Call Date",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Call Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Company Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Website",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Business Type",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Business Type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Project",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Project",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_overview",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "company_overview",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "tech_stack",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "tech_stack",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_updates",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "company_updates",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "primary_solution",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "primary_solution",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "solution_2",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "solution_2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "solution_3",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "solution_3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email_subject",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "email_subject",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email_text",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "email_text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "sms",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "sms",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Email"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 236449331,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=236449331",
          "cachedResultName": "Meeting Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk",
          "cachedResultName": "Mock Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "0f9e2569-5ab4-42e2-8d1a-50ea4f5fb152",
      "name": "Update Follow-up Messages",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1904,
        560
      ],
      "parameters": {
        "columns": {
          "value": {
            "sms": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('sms', ``, 'string') }}",
            "Email": "={{ $('Review Calls').item.json.Email }}",
            "email_text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('email_text', ``, 'string') }}",
            "email_subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('email_subject', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "Call Date",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Call Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Company Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Website",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Business Type",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Business Type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Project",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Project",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_overview",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "company_overview",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "tech_stack",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "tech_stack",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_updates",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "company_updates",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "primary_solution",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "primary_solution",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "solution_2",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "solution_2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "solution_3",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "solution_3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email_subject",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email_subject",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email_text",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email_text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "sms",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "sms",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Email"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 236449331,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit#gid=236449331",
          "cachedResultName": "Meeting Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u3WMJwYGwZewW1IztY8dfbEf5yBQxVh8oH7LQp4rAk4/edit?usp=drivesdk",
          "cachedResultName": "Mock Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "7635b101-9cb1-41ef-8bb2-6de975e0506d",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1632,
        448
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f4378265-7e99-4028-987b-7af6565ab390",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        592
      ],
      "parameters": {
        "width": 528,
        "height": 384,
        "content": "## Tavily Guide \nSetting up the Tavily Node\n\n**Get API Key** \u2192 Sign up at Tavily and copy your API key.\n\n**Save in n8n** \u2192 Go to Settings \u2192 Credentials, create a Tavily API credential, and paste the key.\n\n**Configure Node** \u2192 In the Company Research (Tavily) node:\n\nSet Authentication to your Tavily API credentials.\n\nFor Query, map the company field (e.g. ={{$json[\"Company\"]}}).\n\nKeep search_depth = basic, include_answer = true, include_raw_content = true, max_results = 3.\n\n**Test** \u2192 Run the node with a sample company to confirm results."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c4bce4a5-ebb6-435f-9bb4-e2016b4a7064",
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Review Calls": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Product List": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Success Stories": {
      "ai_tool": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Update Prospect Research": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Company Research (Tavily)": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Update Follow-up Messages": {
      "ai_tool": [
        [
          {
            "node": "Sales Writing Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Review Calls",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}