{
  "name": "Scale deal flow with a Pitch Deck AI vision, chatbot and QDrant vector store",
  "nodes": [
    {
      "id": "9ce4eadf-7eef-43bd-bbe9-e25bc5a42df7",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1076,
        594
      ]
    },
    {
      "id": "b8d12c00-4004-44b4-b793-e9608fd36d5d",
      "name": "Sort Pages",
      "type": "n8n-nodes-base.sort",
      "position": [
        1440,
        777
      ]
    },
    {
      "id": "27520282-af95-415e-a3d3-3cf9e4373813",
      "name": "Split PDF into Images",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        900,
        777
      ]
    },
    {
      "id": "e3862292-3261-4876-b53e-acea88810afb",
      "name": "Extract Zip File",
      "type": "n8n-nodes-base.compression",
      "position": [
        1080,
        777
      ]
    },
    {
      "id": "2d949fb6-980f-409a-9b71-bf12927eaa6d",
      "name": "Images To List",
      "type": "n8n-nodes-base.code",
      "position": [
        1260,
        777
      ]
    },
    {
      "id": "115c202b-2496-4218-b54d-a6f8974b7698",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        460
      ],
      "parameters": {
        "width": 848.0232558139535,
        "height": 533.5469767441862,
        "content": "## 3. Split PDF Pages into Seperate Images\n\nCurrently, the vision model we'll be using can't accept raw PDFs so we'll have to convert our PDF to a image in order to use it. To achieve this, we'll use "
      }
    },
    {
      "id": "186ba0b4-1857-457e-bc5a-e3f9e770a2bd",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        850,
        737
      ],
      "parameters": {
        "width": 199.23348837209306,
        "height": 374.95069767441856,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### Privacy Warning!\nThis example uses a public third party service. If your data is senstive, please swap this out for the self-hosted version!"
      }
    },
    {
      "id": "820bd16b-5311-40ba-9e75-3ca195a9a59b",
      "name": "Resize Images For AI",
      "type": "n8n-nodes-base.editImage",
      "position": [
        1840,
        820
      ]
    },
    {
      "id": "7f31fbf2-9ec1-42f9-83df-3a8e3f08e1ec",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        500
      ],
      "parameters": {
        "width": 775.3441860465115,
        "height": 636.0809302325588,
        "content": "## 4. Convert PDF Pages to Markdown Using Vision Model\n[Learn more about using the Basic LLM node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nPitc"
      }
    },
    {
      "id": "187e350c-6526-43d6-b314-aa376a123694",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2500,
        475.5341395348837
      ],
      "parameters": {
        "width": 814.0329302325591,
        "height": 518.7793488372092,
        "content": "## 5. Extract Key Data Confidently From Statement\n[Read more about the Information Extractor](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.information-extracto"
      }
    },
    {
      "id": "925a5cea-0c53-4756-94e8-c01bdf38dea7",
      "name": "Combine All Pages",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2580,
        680
      ]
    },
    {
      "id": "5f521f14-7e0e-48cc-923f-e920343b4027",
      "name": "Default Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        3100,
        1500
      ]
    },
    {
      "id": "dad5928a-872d-43d2-ad17-5ac98ac6fb27",
      "name": "Recursive Character Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        3100,
        1640
      ]
    },
    {
      "id": "95f26a88-96f8-42af-9b58-f8b76a45a619",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        4040,
        1457
      ]
    },
    {
      "id": "761dec49-a251-4727-9976-6e709bd6e030",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2760,
        840
      ]
    },
    {
      "id": "a05ee988-ea08-454d-b7dc-606af4ff4996",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        2980,
        1500
      ]
    },
    {
      "id": "fde83717-68df-49f8-b3c2-d371fbe8a42b",
      "name": "Delete Existing Vectors",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2620,
        1340
      ]
    },
    {
      "id": "2555d50b-6645-4990-a7dd-f47327b8a83b",
      "name": "Continue With Pages Only",
      "type": "n8n-nodes-base.merge",
      "position": [
        2800,
        1340
      ]
    },
    {
      "id": "f59777bf-6bfe-4d5f-a272-be549d6bd583",
      "name": "Update Pitchdecks Table",
      "type": "n8n-nodes-base.airtable",
      "position": [
        3100,
        680
      ]
    },
    {
      "id": "6f2728f4-5dfe-41d8-b4f0-47afd82b9899",
      "name": "Search Pending Rows",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -876,
        594
      ]
    },
    {
      "id": "8131dcb0-bf52-4789-a4d4-256c1c48c9d6",
      "name": "Get Row",
      "type": "n8n-nodes-base.set",
      "position": [
        -696,
        774
      ]
    },
    {
      "id": "b6c08ce3-b257-44a0-9f69-48a11c12f38f",
      "name": "Prequisites Met",
      "type": "n8n-nodes-base.if",
      "position": [
        -536,
        774
      ]
    },
    {
      "id": "9e0418ad-06cc-4a54-82e1-ea6b2a3f2ced",
      "name": "Execute Workflow",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        -336,
        594
      ]
    },
    {
      "id": "1d019927-9fdb-45a6-84e5-e3dd198483a2",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -336,
        774
      ]
    },
    {
      "id": "ffc1fe69-01e4-4ea6-ae86-dd67d6520ec1",
      "name": "Execute Workflow Trigger",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        20,
        780
      ]
    },
    {
      "id": "2c27e01a-47c0-4efc-a7ab-6006c5d7886c",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        380,
        780
      ]
    },
    {
      "id": "b0db2421-3b0b-4975-beba-39a34a05f31c",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        560,
        780
      ]
    },
    {
      "id": "2cb33775-0602-4c24-b2cf-271992dcc501",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2500,
        1040
      ],
      "parameters": {
        "width": 910.9613023255822,
        "height": 769.9451162790697,
        "content": "## 6. Build a Vector Store Collection for the Pitch Deck\n[Read more about Qdrant Vector Store](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdrant)\n"
      }
    },
    {
      "id": "5102a1d4-f64e-4614-9599-eb7e9a3ff1d3",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        3740,
        1457
      ]
    },
    {
      "id": "224edb67-1a12-4ab4-a44f-381436d5e055",
      "name": "Vector Store Tool",
      "type": "@n8n/n8n-nodes-langchain.toolVectorStore",
      "position": [
        4280,
        1457
      ]
    },
    {
      "id": "51f2bb6c-ec1d-4f53-a852-96e83c243e5b",
      "name": "OpenAI Chat Model3",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        4420,
        1597
      ]
    },
    {
      "id": "f4f26085-8e0f-4bba-913a-10fe0249f55d",
      "name": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        4160,
        1717
      ]
    },
    {
      "id": "3671d902-21f6-407d-b651-beac854ff78c",
      "name": "OpenAI Chat Model4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2020,
        980
      ]
    },
    {
      "id": "4916585b-e029-42b6-9391-aa6b81c4ff95",
      "name": "Generate Report",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        2760,
        680
      ]
    },
    {
      "id": "b31ab62d-655c-4b5d-aeb6-4c397b70b743",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3440,
        1040
      ],
      "parameters": {
        "width": 1265.6381521804071,
        "height": 846.3684803288264,
        "content": "## 6. Offer a Pitch Deck Q&A Chatbot to your Team\n[Learn more about using AI Agents](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent)\n\nTake your workflows t"
      }
    },
    {
      "id": "6de1428a-4b0f-498c-8fb5-d9a9983be592",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        564.0002976744187
      ],
      "parameters": {
        "width": 830.0502325581398,
        "height": 431.48621395348823,
        "content": "## 2. Download the Pitch Deck \n[Learn more about Execute Workflow Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflowtrigger)\n\nIn step 1 we triggered the subwor"
      }
    },
    {
      "id": "2f1aad79-f765-4678-bf38-d37982e3ffc7",
      "name": "Download Deck From Airtable",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        200,
        780
      ]
    },
    {
      "id": "966f6673-7cfe-4bf0-9e72-8ad3b1cb389b",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1180,
        380
      ],
      "parameters": {
        "width": 1077.6820093023243,
        "height": 612.7294511627911,
        "content": "## 1. Trigger Workflow From Airtable \n[Read more about using Airtable](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.airtable)\n\nThis workflow uses Airtable as the database to find "
      }
    },
    {
      "id": "951d48ee-5767-44af-af6e-eb4456803bf5",
      "name": "Airtable Trigger For Pending Rows",
      "type": "n8n-nodes-base.airtableTrigger",
      "position": [
        -1076,
        774
      ]
    },
    {
      "id": "de2d910c-1307-408a-ba30-9dd30ec5b35f",
      "name": "Transcribe to Markdown",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2020,
        820
      ]
    },
    {
      "id": "f3b7828e-39db-4e65-a512-4fa363043bf4",
      "name": "Identify Companies In Question",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        3740,
        1257
      ]
    },
    {
      "id": "83637db6-da8a-4424-9c8a-23a771e1a9b5",
      "name": "Qdrant Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        4160,
        1597
      ]
    },
    {
      "id": "5b228dd3-1c24-4da9-bbe9-86926e603c8b",
      "name": "Ask Questions About Pitchdecks",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        4060,
        1257
      ]
    },
    {
      "id": "619f5ae1-476c-47b7-bdbe-b691732088cc",
      "name": "Window Buffer Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        4160,
        1457
      ]
    },
    {
      "id": "0da11ff6-46b9-4cb3-9285-1e3b03c3ce6e",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1880,
        280
      ],
      "parameters": {
        "width": 671.0736854602326,
        "height": 705.4789168988943,
        "content": "## Try It Out!\n\n### This n8n template imports Pitch Decks and generates a report into Airtable as well as creates an AI Chatbot to ask questions about each Pitch Deck.\n\n* Airtable is used as the pitch"
      }
    },
    {
      "id": "960b5909-84a2-4bb2-b86f-8c9d1d80e4ab",
      "name": "Check Pitch Deck Exists",
      "type": "n8n-nodes-base.airtableTool",
      "position": [
        4560,
        1457
      ]
    },
    {
      "id": "bb542537-ef88-4a4b-8af5-b679f6e42885",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        3560,
        1257
      ]
    },
    {
      "id": "706fe30c-b725-4453-a3b4-4880380ceef0",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        600
      ],
      "parameters": {
        "width": null,
        "height": 91.86072082734213,
        "content": "### Change Me!\nRemember to update Airtable nodes to point  to your own."
      }
    },
    {
      "id": "33fcc696-c25d-4141-82e0-b6c537e70a08",
      "name": "Pitchdecks Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        3000,
        1340
      ]
    },
    {
      "id": "6b0e7b83-e552-4809-bb38-0cc9921206e8",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2300,
        1340
      ],
      "parameters": {
        "width": 278.26180226980307,
        "height": 91.64489634298351,
        "content": "### Change Me!\nYou'll need to update the Qdrant URL in the \"Delete Existing Vectors\" node."
      }
    }
  ],
  "connections": {
    "Get Row": {
      "main": [
        [
          {
            "node": "Prequisites Met",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sort Pages": {
      "main": [
        [
          {
            "node": "Resize Images For AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Images To List": {
      "main": [
        [
          {
            "node": "Sort Pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "Split PDF into Images",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Report": {
      "main": [
        [
          {
            "node": "Update Pitchdecks Table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prequisites Met": {
      "main": [
        [
          {
            "node": "Execute Workflow",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Zip File": {
      "main": [
        [
          {
            "node": "Images To List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine All Pages": {
      "main": [
        [
          {
            "node": "Generate Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Pitchdecks Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Ask Questions About Pitchdecks",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Vector Store Tool": {
      "ai_tool": [
        [
          {
            "node": "Ask Questions About Pitchdecks",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Identify Companies In Question",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Report",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model3": {
      "ai_languageModel": [
        [
          {
            "node": "Vector Store Tool",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model4": {
      "ai_languageModel": [
        [
          {
            "node": "Transcribe to Markdown",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Pitchdecks Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Qdrant Vector Store": {
      "ai_vectorStore": [
        [
          {
            "node": "Vector Store Tool",
            "type": "ai_vectorStore",
            "index": 0
          }
        ]
      ]
    },
    "Search Pending Rows": {
      "main": [
        [
          {
            "node": "Get Row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resize Images For AI": {
      "main": [
        [
          {
            "node": "Transcribe to Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Window Buffer Memory": {
      "ai_memory": [
        [
          {
            "node": "Ask Questions About Pitchdecks",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Split PDF into Images": {
      "main": [
        [
          {
            "node": "Extract Zip File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcribe to Markdown": {
      "main": [
        [
          {
            "node": "Combine All Pages",
            "type": "main",
            "index": 0
          },
          {
            "node": "Continue With Pages Only",
            "type": "main",
            "index": 0
          },
          {
            "node": "Delete Existing Vectors",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Pitch Deck Exists": {
      "ai_tool": [
        [
          {
            "node": "Ask Questions About Pitchdecks",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete Existing Vectors": {
      "main": [
        [
          {
            "node": "Continue With Pages Only",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Continue With Pages Only": {
      "main": [
        [
          {
            "node": "Pitchdecks Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Workflow Trigger": {
      "main": [
        [
          {
            "node": "Download Deck From Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Identify Companies In Question",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Deck From Airtable": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Identify Companies In Question": {
      "main": [
        [
          {
            "node": "Ask Questions About Pitchdecks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable Trigger For Pending Rows": {
      "main": [
        [
          {
            "node": "Get Row",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Search Pending Rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}