{
  "id": "DcMrQDrRcqk8Zga0",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Sales Battle Card",
  "tags": [
    {
      "id": "xRJNyiRIpAsEzL8y",
      "name": "Olostep",
      "createdAt": "2026-01-31T11:17:46.807Z",
      "updatedAt": "2026-01-31T11:17:46.807Z"
    }
  ],
  "nodes": [
    {
      "id": "7f489ca8-02d8-4de5-b91d-db09dbe4485e",
      "name": "Company research",
      "type": "n8n-nodes-olostep.olostepScrape",
      "position": [
        176,
        0
      ],
      "parameters": {
        "task": "=Find me the newst {{ $json['Company Name'] }} news, {{ $json['Company Name'] }} challenges, {{ $json['Company Name'] }} hiring.",
        "resource": "answer"
      },
      "credentials": {
        "olostepScrapeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5f3ef6e7-2c6a-4081-95e0-5eeb5a663c1b",
      "name": "Research Analyzer",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        592,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Research Data: {{ $('Company research').item.json.result.result }}\n\nValue Proposition: {{ $('On form submission').item.json['Value proposition'] }}"
            },
            {
              "role": "model",
              "content": "=You are a professional research analyzer.\n\nAnalyze the provided research data regarding the prospect company and compare it against our product value proposition.\n\nI. Critical Business Triggers Identify 2-3 specific events from the research (e.g., a new product launch, a hiring surge in support, a recent round of funding, or public complaints about their response times) that make our solution relevant right now.\n\nII. The Value Match For each trigger identified, explain exactly how our product solves the specific pressure that event creates."
            }
          ]
        },
        "jsonOutput": true,
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "a313cd2e-6950-40b0-bf60-6b3122d4ed95",
      "name": "Pitch Assets generator",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        912,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Value match analysis: {{ $json.content.parts.last().text }}\nLanding page content: {{ $('Scrape company website').item.json.markdown_content }}"
            },
            {
              "role": "model",
              "content": "=Based on the Business Triggers and Value Match analysis provided, generate the following sales assets:\n\nI. The 'Hook' (Email/LinkedIn Opener) Write a 2-sentence opening line for a cold outreach that references a specific piece of news from the analysis or an important information from their landing page and ties it directly to our primary benefit.\n\nII. High-Impact Talk Tracks Provide two 'Value-Based Questions' the salesperson should ask to highlight the prospect's current pain (e.g., 'How is the current support team handling the volume from the new launch?').\n\nIII. Predicted Objection & Rebuttal Identify the most likely reason this specific company would say 'No' (e.g., 'We just hired people' or 'We value the human touch') and provide a 1-sentence pivot that reframes our AI as a tool for 'Empowering humans' rather than replacing them.\n\nProvide the output in clean Markdown without any extraneous text."
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "6c818d9b-1d2e-4eea-af74-7403371cf152",
      "name": "Sales battle card generator",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        1232,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Value Match Analysis: {{ $('Research Analyzer').item.json.content.parts.last().text }}\nPitch Assets: {{ $json.content.parts.last().text }}\n\nSources: {{ $('Company research').item.json.sources }}"
            },
            {
              "role": "model",
              "content": "=You are a Sales Enablement specialist. Combine the provided analysis and pitch assets into a professional, one-page Sales Battle Card for {{ $('On form submission').item.json['Company Name'] }}.\n\nStructure the report with the following headers:\n\nSales Battle Card: [Company Name]\n\nExecutive Summary (Why Reach Out Now?)\n\n[Combine the Triggers and Value Match into a cohesive 3-sentence summary]\n\nOutreach Assets (The Hook & Talk Tracks)\n\n[Insert the Email Opener and Value-Based Questions]\n\nObjection Handling\n\n[Insert the Predicted Objection and the Pivot]\n\nResearch Sources\n\n[List the source URLs provided in the research data]\n\nFormat the entire output as clean Markdown ready for a Google Docs Writer node. Do not include any meta-commentary."
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "2ce5a26f-b44b-4257-9802-fdb1361b3ff6",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        -16,
        224
      ],
      "parameters": {
        "mode": "markdownToHtml",
        "options": {
          "tables": true,
          "simplifiedAutoLink": true,
          "completeHTMLDocument": true
        },
        "markdown": "={{ $json.content.parts.last().text }}"
      },
      "typeVersion": 1
    },
    {
      "id": "189640be-4560-4450-8762-074b07fde8c0",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -16,
        0
      ],
      "parameters": {
        "options": {},
        "formTitle": "Sales Battle Card for a prospect",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Company Name",
              "placeholder": "Olostep"
            },
            {
              "fieldLabel": "Company website URL",
              "placeholder": "olostep.com"
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Value proposition"
            }
          ]
        },
        "formDescription": "Please enter the company information"
      },
      "typeVersion": 2.5
    },
    {
      "id": "de11c4a2-d5be-4d62-82ed-be30cd76be50",
      "name": "Transfer HTML to Doc",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        736,
        224
      ],
      "parameters": {
        "url": "=https://www.googleapis.com/drive/v3/files/{{ $json.id }}/copy?fields=id,name,mimeType,webViewLink",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"name\":     \"Sales Battle Card for {{ $('On form submission').item.json['Company Name'] }}\",\n  \"mimeType\": \"application/vnd.google-apps.document\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "googleDriveOAuth2Api"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "cf35b5ea-7815-452f-b26c-b8c632469372",
      "name": "Generate HTML Binary File",
      "type": "n8n-nodes-base.code",
      "position": [
        352,
        224
      ],
      "parameters": {
        "jsCode": "// Loop over alle items\nreturn $input.all().map(item => {\n  const html = $input.first().json.data;            // jouw HTML-string\n  // Zet \u2018m om naar een Buffer\n  item.binary = {\n    htmlFile: {\n      data: Buffer.from(html, 'utf8').toString('base64'),\n      mimeType: 'text/html',\n      fileName: 'output.html'\n    }\n  };\n  // Je hebt verder geen JSON nodig, dus ruim op:\n  return { json: {}, binary: item.binary };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "0476ce85-dd9c-4fe3-9365-6f4f043227ef",
      "name": "html content",
      "type": "n8n-nodes-base.set",
      "position": [
        160,
        224
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "69cee206-3799-4624-b7f0-b1882e81e38a",
              "name": "data",
              "type": "string",
              "value": "={{ $json.data }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b0b2be56-63e4-4eeb-8888-59ee8f6731cf",
      "name": "Share link & email",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1152,
        224
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Transfer HTML to Doc').item.json.id }}"
        },
        "options": {
          "emailMessage": "=Hey,\n\nYour \"Sales Battle Card for {{ $('On form submission').item.json['Company Name'] }}\" file is ready, find it at this link."
        },
        "operation": "share",
        "permissionsUi": {
          "permissionsValues": {
            "role": "reader",
            "type": "user",
            "emailAddress": "user@example.com"
          }
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "a72b2002-4875-42ea-9ab5-5867a377474a",
      "name": "Delete html file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        944,
        224
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Upload html file').item.json.id }}"
        },
        "options": {},
        "operation": "deleteFile"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "139067e9-8b6c-4acf-8613-02af566cff92",
      "name": "Upload html file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        544,
        224
      ],
      "parameters": {
        "name": "working isa",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultUrl": "https://drive.google.com/drive",
          "cachedResultName": "/ (Root folder)"
        },
        "inputDataFieldName": "htmlFile"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "a419e677-fbf2-4111-ad1a-c66aa0c4b7c8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        -496
      ],
      "parameters": {
        "width": 672,
        "height": 1968,
        "content": "# AI Sales Battle Card Generator (Research + Personalized Pitch Assets)  \n\nThis n8n template automatically generates **high-quality sales battle cards** for any prospect company using real-time research and AI.  \nIt analyzes company news, website content, and your product\u2019s value proposition to create **personalized outreach hooks, talk tracks, and objection handling** \u2014 all delivered as a ready-to-use document.\n\n## Who\u2019s it for  \n- Sales reps and SDRs preparing for outreach  \n- Founders doing high-quality cold outreach  \n- Sales teams building personalized pitches at scale  \n- Agencies doing outbound lead generation  \n- Anyone who wants deeper, research-driven sales conversations  \n\n## How it works / What it does  \n1. **Form Input**  \n   - Enter:  \n     - Company name  \n     - Company website URL  \n     - Your product\u2019s value proposition  \n\n2. **Company Research (Olostep)**  \n   - Searches for the latest company news, hiring trends, and challenges.  \n   - Identifies signals like growth, funding, or operational pressure.\n\n3. **Website Scraping**  \n   - Scrapes the company\u2019s website to understand positioning, messaging, and offerings.\n\n4. **AI Research Analysis**  \n   - AI identifies:  \n     - Key business triggers (why now?)  \n     - Opportunities where your product fits  \n   - Maps your value proposition to real company needs.\n\n5. **Pitch Asset Generation**  \n   - Generates personalized sales assets:  \n     - Cold outreach hook (email/LinkedIn opener)  \n     - High-impact discovery questions  \n     - Likely objection + smart rebuttal  \n\n6. **Battle Card Generation**  \n   - Combines everything into a structured **Sales Battle Card** including:  \n     - Executive summary  \n     - Outreach assets  \n     - Objection handling  \n     - Research sources  \n\n7. **Document Creation (Google Docs)**  \n   - Converts the output into a clean document.  \n   - Automatically creates a Google Doc with the final battle card.\n\n8. **Share & Notify**  \n   - Shares the document via Google Drive.  \n   - Sends an email with the link to the generated battle card.\n\nThis workflow turns raw company data into a **ready-to-use sales playbook in minutes**.\n\n## How to set up  \n1. Import the template into your n8n workspace.  \n2. Add your **Olostep API key**.  \n3. Connect your **Google Drive** account.  \n4. Add your **AI model provider** (Gemini or OpenAI).  \n5. Run the form and generate your first battle card.\n\n## Requirements  \n- n8n account (cloud or self-hosted)  \n- Olostep API key  \n- Google Drive / Google Docs access  \n- AI model provider (Gemini or OpenAI)  \n\n## How to customize the workflow  \n- Adjust prompts to match your sales style or industry.  \n- Add CRM integration (HubSpot, Salesforce).  \n- Generate multiple variations of outreach hooks.  \n- Add scoring for lead qualification.  \n- Store battle cards in Notion or a database.  \n\n---\n\nThis template helps you go from generic outreach to highly personalized, research-driven sales conversations instantly."
      },
      "typeVersion": 1
    },
    {
      "id": "62b9b03d-6c06-448c-9b48-cead0ce439f0",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -96
      ],
      "parameters": {
        "color": 7,
        "height": 240,
        "content": "## Input Form \nEnter company name, website, and your value proposition."
      },
      "typeVersion": 1
    },
    {
      "id": "75d71310-319b-4ceb-999c-7b48d3b41ee0",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 368,
        "height": 240,
        "content": "## Company Research \nOlostep finds news, hiring trends, and business signals. Then scrapes the company website\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ccaabf73-3fac-42a5-80d5-27de448b3838",
      "name": "Scrape company website",
      "type": "n8n-nodes-olostep.olostepScrape",
      "position": [
        384,
        0
      ],
      "parameters": {
        "url_to_scrape": "={{ $('On form submission').item.json['Company website URL'] }}"
      },
      "credentials": {
        "olostepScrapeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b970020f-4217-4a66-967f-a6eece15609f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 336,
        "height": 240,
        "content": "## AI Analysis \nIdentifies business triggers and matches them with your value."
      },
      "typeVersion": 1
    },
    {
      "id": "db1a66cb-ae91-4d96-bea6-b7b6bc15e6f0",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        864,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 240,
        "content": "## Pitch Assets \nGenerates outreach hook, questions, and objection handling."
      },
      "typeVersion": 1
    },
    {
      "id": "3116902d-dcbc-420b-a460-6944ae029433",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 240,
        "content": "## Battle Card \nCombines everything into a structured sales document."
      },
      "typeVersion": 1
    },
    {
      "id": "120812ea-f1dd-4618-8334-6cee95f95d57",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        144
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 240,
        "content": "## Share & Notify\nShares the doc and sends an email with the link."
      },
      "typeVersion": 1
    },
    {
      "id": "1d8dd28f-e150-41ad-b0b2-d25e58a57e64",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        144
      ],
      "parameters": {
        "color": 7,
        "width": 576,
        "height": 240,
        "content": "## Markdown to HTML\nConverts Markdown content into HTML and creates an HTML binary file."
      },
      "typeVersion": 1
    },
    {
      "id": "dd02b784-830a-4550-83e8-5461aba5215a",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        144
      ],
      "parameters": {
        "color": 7,
        "width": 592,
        "height": 240,
        "content": "## Upload The File\nUploads the HTML file then converts it to google doc format and re-upload the file. And then deletes the old HTML file."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "a45fe48b-e6f0-443a-beff-33d72872c3e7",
  "connections": {
    "Markdown": {
      "main": [
        [
          {
            "node": "html content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "html content": {
      "main": [
        [
          {
            "node": "Generate HTML Binary File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Company research": {
      "main": [
        [
          {
            "node": "Scrape company website",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete html file": {
      "main": [
        [
          {
            "node": "Share link & email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload html file": {
      "main": [
        [
          {
            "node": "Transfer HTML to Doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Research Analyzer": {
      "main": [
        [
          {
            "node": "Pitch Assets generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Company research",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transfer HTML to Doc": {
      "main": [
        [
          {
            "node": "Delete html file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pitch Assets generator": {
      "main": [
        [
          {
            "node": "Sales battle card generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape company website": {
      "main": [
        [
          {
            "node": "Research Analyzer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate HTML Binary File": {
      "main": [
        [
          {
            "node": "Upload html file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sales battle card generator": {
      "main": [
        [
          {
            "node": "Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}