This workflow follows the Agent → Airtable recipe pattern — see all workflows that pair these two integrations.
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 →
{
"nodes": [
{
"id": "9ce4eadf-7eef-43bd-bbe9-e25bc5a42df7",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1076,
594
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b8d12c00-4004-44b4-b793-e9608fd36d5d",
"name": "Sort Pages",
"type": "n8n-nodes-base.sort",
"position": [
1440,
777
],
"parameters": {
"options": {},
"sortFieldsUi": {
"sortField": [
{
"fieldName": "fileName"
}
]
}
},
"typeVersion": 1
},
{
"id": "27520282-af95-415e-a3d3-3cf9e4373813",
"name": "Split PDF into Images",
"type": "n8n-nodes-base.httpRequest",
"position": [
900,
777
],
"parameters": {
"url": "http://stirlingpdf.io/api/v1/convert/pdf/img",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "fileInput",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
},
{
"name": "imageFormat",
"value": "jpg"
},
{
"name": "singleOrMultiple",
"value": "multiple"
},
{
"name": "dpi",
"value": "300"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "e3862292-3261-4876-b53e-acea88810afb",
"name": "Extract Zip File",
"type": "n8n-nodes-base.compression",
"position": [
1080,
777
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "2d949fb6-980f-409a-9b71-bf12927eaa6d",
"name": "Images To List",
"type": "n8n-nodes-base.code",
"position": [
1260,
777
],
"parameters": {
"jsCode": "let results = [];\n\nfor (item of items) {\n for (key of Object.keys(item.binary)) {\n results.push({\n json: {\n fileName: item.binary[key].fileName\n },\n binary: {\n data: item.binary[key],\n }\n });\n }\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "115c202b-2496-4218-b54d-a6f8974b7698",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
460
],
"parameters": {
"color": 7,
"width": 848.0232558139535,
"height": 533.5469767441862,
"content": "## 3. PDF \ud398\uc774\uc9c0\ub97c \ubcc4\uac1c \uc774\ubbf8\uc9c0\ub85c \ubd84\ub9ac\ud558\uae30\n\n\ud604\uc7ac, \uc6b0\ub9ac\uac00 \uc0ac\uc6a9\ud560 \ube44\uc804 \ubaa8\ub378\uc740 \uc6d0\uc2dc PDF\ub97c \uc218\uc6a9\ud560 \uc218 \uc5c6\uc73c\ubbc0\ub85c PDF\ub97c \uc774\ubbf8\uc9c0\ub85c \ubcc0\ud658\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574 \ud3b8\uc758\ub97c \uc704\ud574 \ubb34\ub8cc [Stirling PDF \uc6f9\uc11c\ube44\uc2a4](https://stirlingpdf.io/)\ub97c \uc0ac\uc6a9\ud560 \uac83\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ub370\uc774\ud130 \ud504\ub77c\uc774\ubc84\uc2dc\uac00 \ud544\uc694\ud558\ub2e4\uba74 (\ucd94\ucc9c!), \ub300\uc2e0 \uc6b0\ub9ac \uc790\uc2e0\uc758 [Stirling PDF \uc778\uc2a4\ud134\uc2a4](https://github.com/Stirling-Tools/Stirling-PDF/)\ub97c \uc790\uac00 \ud638\uc2a4\ud305\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub300\uc548\uc73c\ub85c, PDF\ub97c \uc774\ubbf8\uc9c0\ub85c \ubcc0\ud658\ud560 \uc218 \uc788\ub294 \ud55c, \uc774 \uc11c\ube44\uc2a4\ub97c \uc6d0\ud558\ub294 \uac83\uc73c\ub85c \uad50\uccb4\ud558\uc138\uc694!\n\nPDF \uc11c\ube44\uc2a4\uc5d0 \uc6b0\ub9ac \uba85\uc138\uc11c\uc758 \uac01 \ud398\uc774\uc9c0\ub97c \ubcc4\ub3c4 \uc774\ubbf8\uc9c0\ub85c \ubc18\ud658\ud558\ub3c4\ub85d \uc694\uccad\ud560 \uac83\uc785\ub2c8\ub2e4. \uc774 \uc11c\ube44\uc2a4\ub294 \uc774\ub97c ZIP \ud30c\uc77c\ub85c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub2e4\uc74c \ub2e8\uacc4\ub294 \ud30c\uc77c\uc744 \uc555\ucd95 \ud574\uc81c\ud558\uace0 \ucd9c\ub825\uc744 \uc774\ubbf8\uc9c0 \ubaa9\ub85d\uc73c\ub85c \ubcc0\ud658\ud558\ub294 \uac83\uc785\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"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": "### \uac1c\uc778\uc815\ubcf4 \uacbd\uace0!\n\uc774 \uc608\uc81c\ub294 \uacf5\uac1c\ub41c \uc81c3\uc790 \uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ub370\uc774\ud130\uac00 \ubbfc\uac10\ud55c \uacbd\uc6b0, \uc774\ub97c \uc790\uccb4 \ud638\uc2a4\ud305 \ubc84\uc804\uc73c\ub85c \uad50\uccb4\ud574 \uc8fc\uc138\uc694!\n\n### \ucd9c\ub825"
},
"typeVersion": 1
},
{
"id": "820bd16b-5311-40ba-9e75-3ca195a9a59b",
"name": "Resize Images For AI",
"type": "n8n-nodes-base.editImage",
"position": [
1840,
820
],
"parameters": {
"width": 50,
"height": 50,
"options": {},
"operation": "resize",
"resizeOption": "percent"
},
"typeVersion": 1
},
{
"id": "7f31fbf2-9ec1-42f9-83df-3a8e3f08e1ec",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1680,
500
],
"parameters": {
"color": 7,
"width": 775.3441860465115,
"height": 636.0809302325588,
"content": "## 4. \ube44\uc804 \ubaa8\ub378\uc744 \uc0ac\uc6a9\ud558\uc5ec PDF \ud398\uc774\uc9c0\ub97c Markdown\uc73c\ub85c \ubcc0\ud658\n[Basic LLM \ub178\ub4dc \uc0ac\uc6a9\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\n\ud53c\uce58 \ub371\uc740 \uae30\ubcf8\uc801\uc73c\ub85c \ud638\ud654\ub85c\uc6b4 \ud310\ub9e4 \ubb38\uc11c\uc774\uba70, \ub530\ub77c\uc11c \uc2a4\ud0c0\uc77c, \uad6c\uc870, \uadf8\ub9ac\uace0 \ud504\ub808\uc820\ud14c\uc774\uc158 \ubc29\uc2dd\uc5d0\uc11c \ub9e4\uc6b0 \ub2e4\uc591\ud569\ub2c8\ub2e4. \uc804\ud1b5\uc801\uc778 OCR\uc740 \uc774\ub7ec\ud55c \uc885\ub958\uc758 \ubb38\uc11c\uc5d0\uc11c \ub808\uc774\uc5b4\uc640 \uadf8\ub798\ud53d \uc694\uc18c\ub97c \ucc98\ub9ac\ud558\ub294 \ub370 \uc5b4\ub824\uc6c0\uc744 \uacaa\uc73c\uba70, \ub0b4\uc6a9\uc744 \ucd94\ucd9c\ud560 \ub54c \uc77c\ubc18\uc801\uc73c\ub85c \uc800\uc870\ud55c \uacb0\uacfc\ub97c \ub0b3\uc2b5\ub2c8\ub2e4; \ud14d\uc2a4\ud2b8\uac00 \uc65c\uace1\ub418\uac70\ub098 \ub204\ub77d\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\n\uba40\ud2f0\ubaa8\ub2ec LLM\uc740 AI \ube44\uc804\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud53c\uce58 \ub371\uc744 '\uc77d\uace0' \ub808\uc774\uc544\uc6c3\uacfc \uc758\ub3c4\ub97c \ucd94\ub860\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \ud574\uacb0\ucc45\uc785\ub2c8\ub2e4. \uc774\ubbf8\uc9c0\ub294 \ub9e5\ub77d\uacfc \ud568\uaed8 \uc774\ud574\ud558\uace0 \uc124\uba85\ud560 \uc218 \uc788\uc73c\uba70, \ucc28\ud2b8\uc640 \uadf8\ub798\ud504\ub3c4 \ud574\uc11d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub370\ubaa8\uc5d0\uc11c, \uc6b0\ub9ac\ub294 LLM\uc5d0\uac8c \ud53c\uce58 \ub371\uc758 \uac01 \ud398\uc774\uc9c0\ub97c \ub9c8\ud06c\ub2e4\uc6b4\uc73c\ub85c \ubcc0\ud658\ud558\ub3c4\ub85d \uc694\uccad\ud560 \uac83\uc774\uba70, \ubcf4\uc774\ub294 \ubaa8\ub4e0 \uc774\ubbf8\uc9c0\ub098 \ucc28\ud2b8\ub97c \uc124\uba85\ud558\ub3c4\ub85d \ud560 \uac83\uc785\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"id": "187e350c-6526-43d6-b314-aa376a123694",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2500,
475.5341395348837
],
"parameters": {
"color": 7,
"width": 814.0329302325591,
"height": 518.7793488372092,
"content": "## 5. \uc2e0\ub8b0\ud560 \uc218 \uc788\uac8c \ubb38\uc7a5\uc5d0\uc11c \uc8fc\uc694 \ub370\uc774\ud130 \ucd94\ucd9c\n\n[Information Extractor\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.information-extractor)\n\n\uc6b0\ub9ac\uac00 \uc0dd\uc131\ud55c \ub9c8\ud06c\ub2e4\uc6b4\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc815\ubcf4 \ucd94\ucd9c\uae30 \ub178\ub4dc\ub97c \ud1b5\ud574 \ud53c\uce58 \ub371\uc5d0\uc11c \ud544\uc694\ud55c \uc815\ubcf4 \ub610\ub294 \ub370\uc774\ud130 \ud3ec\uc778\ud2b8\ub97c \ucd94\ucd9c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \ubcf4\uace0\uc11c\ub97c \uc0dd\uc131\ud558\ub294 \ub370 \uc720\uc6a9\ud558\uba70, \ub098\uc911\uc5d0 \ud53c\uce58 \ub371\uc744 \uc11c\ub85c \ube44\uad50\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uae30\uc11c \ucd94\ucd9c\ub41c \ub370\uc774\ud130\ub97c \uc720\uc9c0\ud558\uae30 \uc704\ud574 Airtable \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \uad00\ub828 \ud589\uc744 \uc5c5\ub370\uc774\ud2b8\ud560 \uac83\uc785\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"id": "925a5cea-0c53-4756-94e8-c01bdf38dea7",
"name": "Combine All Pages",
"type": "n8n-nodes-base.aggregate",
"position": [
2580,
680
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"renameField": true,
"outputFieldName": "pages",
"fieldToAggregate": "text"
}
]
}
},
"typeVersion": 1
},
{
"id": "5f521f14-7e0e-48cc-923f-e920343b4027",
"name": "Default Data Loader",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
3100,
1500
],
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "name",
"value": "={{ $('Execute Workflow Trigger').first().json.Name }}"
}
]
}
},
"jsonData": "={{ $json.text }}",
"jsonMode": "expressionData"
},
"typeVersion": 1
},
{
"id": "dad5928a-872d-43d2-ad17-5ac98ac6fb27",
"name": "Recursive Character Text Splitter",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
3100,
1640
],
"parameters": {
"options": {},
"chunkSize": 2048
},
"typeVersion": 1
},
{
"id": "95f26a88-96f8-42af-9b58-f8b76a45a619",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
4040,
1457
],
"parameters": {
"model": "gpt-4o-mini",
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "761dec49-a251-4727-9976-6e709bd6e030",
"name": "OpenAI Chat Model2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2760,
840
],
"parameters": {
"model": "gpt-4o-2024-08-06",
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "a05ee988-ea08-454d-b7dc-606af4ff4996",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
2980,
1500
],
"parameters": {
"model": "text-embedding-3-small",
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "fde83717-68df-49f8-b3c2-d371fbe8a42b",
"name": "Delete Existing Vectors",
"type": "n8n-nodes-base.httpRequest",
"position": [
2620,
1340
],
"parameters": {
"url": "http://qdrant:6333/collections/pitchdecks/points/delete",
"method": "POST",
"options": {},
"jsonBody": "={{\n{\n \"filter\": {\n \"must\": {\n \"key\": \"metadata.name\",\n \"match\": {\n \"value\": $('Execute Workflow Trigger').first().json.Name\n }\n }\n }\n}\n}}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "qdrantApi"
},
"credentials": {
"qdrantApi": {
"name": "<your credential>"
}
},
"executeOnce": true,
"typeVersion": 4.2
},
{
"id": "2555d50b-6645-4990-a7dd-f47327b8a83b",
"name": "Continue With Pages Only",
"type": "n8n-nodes-base.merge",
"position": [
2800,
1340
],
"parameters": {
"mode": "chooseBranch"
},
"typeVersion": 3
},
{
"id": "f59777bf-6bfe-4d5f-a272-be549d6bd583",
"name": "Update Pitchdecks Table",
"type": "n8n-nodes-base.airtable",
"position": [
3100,
680
],
"parameters": {
"base": {
"__rl": true,
"mode": "id",
"value": "appCkqc2jc3MoVqDO"
},
"table": {
"__rl": true,
"mode": "id",
"value": "tblI660SRJAOlSx3p"
},
"columns": {
"value": {
"DAUs": "={{ $json.output.current_number_of_DAU.toString() }}",
"Name": "={{ $('Execute Workflow Trigger').first().json.Name }}",
"Email": "={{ $json.output.email }}",
"Phone": "={{ $json.output.phone }}",
"Address": "={{ $json.output.address }}",
"SignUps": "={{ $json.output.current_number_of_signups.toString() }}",
"Twitter": "={{ $json.output.twitter }}",
"Founders": "={{ $json.output.founders.join(', ') }}",
"LinkedIn": "={{ $json.output.linkedin }}",
"Traction": "={{ $json.output.traction }}",
"Investors": "={{ $json.output.current_investors.join(', ') }}",
"Team Size": "={{ $json.output.team_size.toString() }}",
"Verticals": "={{ $json.output.verticals.join(', ') }}",
"Location HQ": "={{ $json.output.location }}",
"Amount Raised": "={{ $json.output.amount_raised }}",
"Founding Year": "={{ $json.output.founding_year }}",
"Funding Stage": "={{ $json.output.funding_stage }}",
"Business Model": "={{ $json.output.business_model }}",
"Is Interesting": "={{ $json.output.is_interesting }}",
"Current Revenue": "={{ $json.output.current_revenue }}",
"Amount Requested": "={{ $json.output.amount_requested }}",
"Executive Summary": "={{ $json.output.executive_summary }}",
"Market Validation": "={{ $json.output.market_validation_summary }}",
"Value Proposition": "={{ $json.output.value_proposition }}",
"Compatible with VC": "={{ $json.output.compatible_with_venture_capital }}",
"Geographical Markets": "={{ $json.output.geographical_markets.join(', ') }}",
"Requires Fact-Checking": "={{ $json.output.items_requiring_factchecking.join(', ') }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "File",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "File",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Executive Summary",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Executive Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Is Interesting",
"type": "boolean",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Is Interesting",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Founding Year",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Founding Year",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Funding Stage",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Funding Stage",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Investors",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Investors",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Amount Raised",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Amount Raised",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Amount Requested",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Amount Requested",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Current Revenue",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Current Revenue",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "SignUps",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "SignUps",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "DAUs",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "DAUs",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Traction",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Traction",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Compatible with VC",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Compatible with VC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Business Model",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Business Model",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Value Proposition",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Value Proposition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Market Validation",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Market Validation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Geographical Markets",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Geographical Markets",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Verticals",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Verticals",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Founders",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Founders",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Location HQ",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Location HQ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Address",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "LinkedIn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Twitter",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Twitter",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Team Size",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Team Size",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Requires Fact-Checking",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Requires Fact-Checking",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Created",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Created",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Modified",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Last Modified",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Name"
]
},
"options": {},
"operation": "upsert"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "6f2728f4-5dfe-41d8-b4f0-47afd82b9899",
"name": "Search Pending Rows",
"type": "n8n-nodes-base.airtable",
"position": [
-876,
594
],
"parameters": {
"base": {
"__rl": true,
"mode": "id",
"value": "appCkqc2jc3MoVqDO"
},
"limit": 1,
"table": {
"__rl": true,
"mode": "id",
"value": "tblI660SRJAOlSx3p"
},
"options": {},
"operation": "search",
"returnAll": false,
"filterByFormula": "=AND(\n Name != \"\",\n File,\n OR(\n {Executive Summary} = \"\",\n {Executive Summary} = BLANK()\n )\n)"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "8131dcb0-bf52-4789-a4d4-256c1c48c9d6",
"name": "Get Row",
"type": "n8n-nodes-base.set",
"position": [
-696,
774
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={{ $json.fields || $json }}\n"
},
"typeVersion": 3.4
},
{
"id": "b6c08ce3-b257-44a0-9f69-48a11c12f38f",
"name": "Prequisites Met",
"type": "n8n-nodes-base.if",
"position": [
-536,
774
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2ef90345-6c34-4f2a-82e6-c79f6fe49975",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.Name }}",
"rightValue": ""
},
{
"id": "4af233ee-0f4b-4de4-9eb4-cc9ed9f8ebe9",
"operator": {
"type": "array",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.File }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9e0418ad-06cc-4a54-82e1-ea6b2a3f2ced",
"name": "Execute Workflow",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
-336,
594
],
"parameters": {
"mode": "each",
"options": {},
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
}
},
"typeVersion": 1.1
},
{
"id": "1d019927-9fdb-45a6-84e5-e3dd198483a2",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
-336,
774
],
"parameters": {},
"typeVersion": 1
},
{
"id": "ffc1fe69-01e4-4ea6-ae86-dd67d6520ec1",
"name": "Execute Workflow Trigger",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
20,
780
],
"parameters": {},
"typeVersion": 1
},
{
"id": "2c27e01a-47c0-4efc-a7ab-6006c5d7886c",
"name": "Extract from File",
"type": "n8n-nodes-base.extractFromFile",
"position": [
380,
780
],
"parameters": {
"options": {},
"operation": "binaryToPropery"
},
"typeVersion": 1
},
{
"id": "b0db2421-3b0b-4975-beba-39a34a05f31c",
"name": "Convert to File",
"type": "n8n-nodes-base.convertToFile",
"position": [
560,
780
],
"parameters": {
"options": {
"fileName": "data.pdf",
"mimeType": "application/pdf"
},
"operation": "toBinary",
"sourceProperty": "data"
},
"typeVersion": 1.1
},
{
"id": "2cb33775-0602-4c24-b2cf-271992dcc501",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
2500,
1040
],
"parameters": {
"color": 7,
"width": 910.9613023255822,
"height": 769.9451162790697,
"content": "## 6. \ud53c\uce58 \ub371\uc744 \uc704\ud55c \ubca1\ud130 \uc2a4\ud1a0\uc5b4 \uceec\ub809\uc158 \ube4c\ub4dc\n\n[Qdrant Vector Store\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdrant)\n\n\ud53c\uce58 \ub371\uc5d0 \uad00\ud574 \ub9d0\ud558\uc790\uba74, \ud14c\uc774\ube14\uc5d0 \uc815\uc801 \uc18d\uc131\uc744 \ucea1\ucc98\ud558\ub294 \uac83\ub9cc\uc73c\ub85c\ub294 \ucda9\ubd84\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud53c\uce58 \ub371 \uc790\uccb4\uc5d0 \ub300\ud574 \uc9c8\ubb38\uc744 \ud560 \uc218 \uc788\ub2e4\uba74 \uba4b\uc9c0\uc9c0 \uc54a\uc744\uae4c\uc694? n8n\uc758 \ubca1\ud130 \uc2a4\ud1a0\uc5b4\uc5d0 \ub300\ud55c \uc77c\ub958 \uc9c0\uc6d0 \ub355\ubd84\uc5d0, \ub2f9\uc2e0\uc740 \uc544\uc8fc \uc27d\uac8c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4!\n\n\uc774 \ub370\ubaa8\uc5d0\uc11c, \uc6b0\ub9ac\ub294 Qdrant Vector Store\ub97c \uc0ac\uc6a9\ud560 \uac83\uc785\ub2c8\ub2e4. \ub2f9\uc2e0\uc740 https://qdrant.tech\uc5d0\uc11c \ubb34\ub8cc \uc778\uc2a4\ud134\uc2a4\ub97c \ub4f1\ub85d\ud558\uac70\ub098 Docker\ub97c \ud1b5\ud574 \uc790\uccb4 \ud638\uc2a4\ud305\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc73c\ub85c, Qdrant Vector Store \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc6b0\ub9ac\uc758 \uc804\uc0ac\ub41c \ud398\uc774\uc9c0\ub4e4\uc744 \ubca1\ud130 \uc2a4\ud1a0\uc5b4\uc5d0 \ub123\ub294 \uac04\ub2e8\ud55c \uacbd\uc6b0\uc785\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"id": "5102a1d4-f64e-4614-9599-eb7e9a3ff1d3",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
3740,
1457
],
"parameters": {
"model": "gpt-4o-mini",
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "224edb67-1a12-4ab4-a44f-381436d5e055",
"name": "Vector Store Tool",
"type": "@n8n/n8n-nodes-langchain.toolVectorStore",
"position": [
4280,
1457
],
"parameters": {
"name": "get_company_pitchdeck",
"description": "Call this tool to search for information contained in a startup/company's pitchdeck."
},
"typeVersion": 1
},
{
"id": "51f2bb6c-ec1d-4f53-a852-96e83c243e5b",
"name": "OpenAI Chat Model3",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
4420,
1597
],
"parameters": {
"model": "gpt-4o-mini",
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "f4f26085-8e0f-4bba-913a-10fe0249f55d",
"name": "Embeddings OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
4160,
1717
],
"parameters": {
"model": "text-embedding-3-small",
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "3671d902-21f6-407d-b651-beac854ff78c",
"name": "OpenAI Chat Model4",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2020,
980
],
"parameters": {
"model": "gpt-4o-2024-08-06",
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "4916585b-e029-42b6-9391-aa6b81c4ff95",
"name": "Generate Report",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
2760,
680
],
"parameters": {
"text": "= {{ $json.pages.join('---') }}",
"options": {
"systemPromptTemplate": "You are playing the role of a Venture Capitalist with the following persona:\n\nLocation: San Francisco, California, USA\n\n## Background \n* Education: Bachelor's in Finance from the University of California, Berkeley. MBA from Stanford Graduate School of Business.\n* Career: Started as an investment banker at Goldman Sachs, then transitioned into venture capital as a junior partner at a mid-sized VC firm in Silicon Valley. Founded his own VC firm, Harper Capital, after several successful investments in early-stage startups. With over 15 years of experience, Jim has built a reputation for identifying promising startups and helping them scale.\n* Track Record: His early investments in fintech companies like Plaid and Robinhood brought significant returns. Currently managing a $500 million fund focused on early-stage startups.\n* Industry Focus: Fintech\n\nJim is particularly passionate about financial technology startups, especially those disrupting traditional banking, payment systems, and lending. He\u2019s interested in companies that promote financial inclusion, simplify personal finance, or democratize investing. He believes the next major financial revolution will come from blockchain and decentralized finance (DeFi) platforms, but he remains cautious about overhyped cryptocurrencies.\n\n## Investment Style:\n* Stage: Seed to Series A\n* Check Size: $1 million to $10 million\n* Preferred Business Models: B2B SaaS and platform-driven fintech solutions\n* Founder Criteria: He looks for passionate, gritty founders who deeply understand the financial system and can navigate regulatory complexities.\n\n## Personality:\n\n### Strengths:\n* Analytical: Jim is highly data-driven and excels at performing thorough due diligence, meticulously analyzing financial projections and market data.\nHands-on Mentor: He takes an active role in the companies he invests in, offering strategic guidance on business models, scaling, and leadership development.\n* Networked: Jim has deep connections with major banks, hedge funds, and technology partners, helping his startups form crucial partnerships.\nPersonality Weakness: Overly Risk-Averse\n\nWhile Jim is known for his sharp financial acumen, he often hesitates to invest in more disruptive, experimental technologies. This risk aversion can cause him to miss out on breakthrough opportunities in early, unproven markets. He tends to favor startups with proven business models over \"moonshot\" ideas, which has occasionally led to regrets about passing on high-risk, high-reward ventures.\nJim Harper's experience, focus on fintech, and a disciplined investment approach have made him a trusted name in venture capital, though his cautious nature sometimes keeps him on the sidelines during tech's biggest waves.\n--\n\nAnalyse the pitch deck and provide an executive summary, fact checking review and judgement of if the pitching startup would be of interest to you based on your experience and investment strategy.\n\nFor any property not found, leave blank."
},
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n \t\"startup_name\": { \"type\": \"string\" },\n \"founders\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n\t\t\"founding_year\": { \"type\": \"string\" },\n \"team_size\": { \"type\": \"number\" },\n \"location\": { \"type\": \"string\" },\n \"address\": { \"type\": \"string\" },\n \"phone\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\" },\n \"linkedin\": { \"type\": \"string\" },\n \"twitter\": { \"type\": \"string\" },\n\n \"funding_stage\": { \"type\": \"string\" },\n \"current_investors\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n \"amount_raised\": { \"type\": \"string\" },\n \"current_revenue\": { \"type\": \"string\" },\n \"current_number_of_signups\": { \"type\": \"number\" },\n \"current_number_of_DAU\": { \"type\": \"number\" },\n\n \"business_model\": { \"type\": \"string\" },\n \"geographical_markets\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n \"verticals\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } }, \n \"value_proposition\": { \"type\": \"string\" },\n \"market_validation_summary\": { \"type\": \"string\" },\n \"traction\": { \"type\": \"string\", \"description\": \"a summary of the amount of traction claimed\" },\n \"amount_requested\": { \"type\": \"string\", \"description\": \"A range\" },\n \"compatible_with_venture_capital\": { \"type\": \"boolean\" },\n\n \"executive_summary\": { \"type\": \"string\" },\n \"items_requiring_factchecking\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n \"is_interesting\": { \"type\": \"boolean\" }\n \t}\n}"
},
"typeVersion": 1
},
{
"id": "b31ab62d-655c-4b5d-aeb6-4c397b70b743",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
3440,
1040
],
"parameters": {
"color": 7,
"width": 1265.6381521804071,
"height": 846.3684803288264,
"content": "## 6. \ud300\uc5d0 \ud53c\uce58 \ub371 Q&A \ucc57\ubd07\uc744 \uc81c\uacf5\ud558\uc138\uc694 \n[AI \uc5d0\uc774\uc804\ud2b8 \uc0ac\uc6a9\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent) \n\nn8n\uc758 AI \uc5d0\uc774\uc804\ud2b8\ub85c \uc6cc\ud06c\ud50c\ub85c\ub97c \ub2e4\uc74c \ub2e8\uacc4\ub85c \uc5c5\uadf8\ub808\uc774\ub4dc\ud558\uc138\uc694! \uc774 \ub2e8\uacc4\ub294 \ud53c\uce58 \ub371\uc5d0 AI \uae30\ubc18 \ucc57\ubd07\uacfc RAG \uad6c\ud604\uc744 \uc2dc\uc791\ud558\ub294 \uac83\uc774 \uc5bc\ub9c8\ub098 \uac15\ub825\ud558\uace0 \uac04\ub2e8\ud55c\uc9c0 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \uc774 AI \uc5d0\uc774\uc804\ud2b8\ub294 \ud53c\uce58 \ub371 \ubca1\ud130 \uc2a4\ud1a0\uc5b4\uc5d0 \uc5f0\uacb0\ub418\uba70, \ud68c\uc0ac\ubcc4\ub85c \ud544\ud130\ub9c1\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc0ac\uc6a9\uc790\uac00 \ubb38\uc758\ud558\ub294 \uad00\ub828 \ud53c\uce58 \ub371\uc5d0 \ub300\ud55c \ubaa8\ub4e0 \uc9c8\ubb38\uc744 \ub2f5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub85c \uc778\ud574 \ubcf4\uace0 \uc774\uc0c1\uc73c\ub85c \ub118\uc5b4\uac00\ub294 \uac15\ub825\ud55c \uc6cc\ud06c\ud50c\ub85c\uac00 \ub9cc\ub4e4\uc5b4\uc9c0\uba70, \ubaa8\ub4e0 \uc774\ud574\uad00\uacc4\uc790\ub97c \ucc38\uc5ec\uc2dc\ud0a4\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4!"
},
"typeVersion": 1
},
{
"id": "6de1428a-4b0f-498c-8fb5-d9a9983be592",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
564.0002976744187
],
"parameters": {
"color": 7,
"width": 830.0502325581398,
"height": 431.48621395348823,
"content": "## 2. \ud53c\uce58 \ub371 \ub2e4\uc6b4\ub85c\ub4dc \n[Execute Workflow Trigger\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflowtrigger)\n\n1\ub2e8\uacc4\uc5d0\uc11c \ud53c\uce58 \ub371\uc758 \uc774\ub984\uacfc Airtable \uc790\uc0b0 URL\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc11c\ube0c\uc6cc\ud06c\ud50c\ub85c\ub97c \ud2b8\ub9ac\uac70\ud588\uc2b5\ub2c8\ub2e4. HTTP \uc694\uccad \ub178\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud53c\uce58 \ub371\uc758 PDF\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uac83\uc785\ub2c8\ub2e4. \uc774 \ud15c\ud50c\ub9bf\uc740 PDF \ud53c\uce58 \ub371\ub9cc \ucc98\ub9ac\ud558\uba70, PPT\uc640 \uac19\uc740 \ub2e4\ub978 \ud615\uc2dd\uc758 \ud53c\uce58 \ub371\uc774 \uc788\uc73c\uba74 PDF\ub85c \ubcc0\ud658\ud574\uc57c \ud569\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"id": "2f1aad79-f765-4678-bf38-d37982e3ffc7",
"name": "Download Deck From Airtable",
"type": "n8n-nodes-base.httpRequest",
"position": [
200,
780
],
"parameters": {
"url": "={{ $json.File[0].url }}",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
}
},
"typeVersion": 4.2
},
{
"id": "966f6673-7cfe-4bf0-9e72-8ad3b1cb389b",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1180,
380
],
"parameters": {
"color": 7,
"width": 1077.6820093023243,
"height": 612.7294511627911,
"content": "## 1. Airtable\uc5d0\uc11c \uc6cc\ud06c\ud50c\ub85c\uc6b0 \ud2b8\ub9ac\uac70 \n[Airtable \uc0ac\uc6a9\uc5d0 \ub300\ud574 \ub354 \uc54c\uc544\ubcf4\uae30](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.airtable) \n\n\uc774 \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub294 Airtable\uc744 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \uc0ac\uc6a9\ud558\uc5ec \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ud53c\uce58 \ub371\uacfc \ucc98\ub9ac\ud574\uc57c \ud560 \ud53c\uce58 \ub371\uc744 \ucc3e\uace0 \ucd94\uc801\ud569\ub2c8\ub2e4. \uc608\uc81c Airtable\uc740 \uc5ec\uae30\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4: https://airtable.com/appCkqc2jc3MoVqDO/shrS21vGqlnqzzNUc. \uc774 \uc6cc\ud06c\ud50c\ub85c\uc6b0\ub294 \ubcc4\ub3c4\uc758 \uc2e4\ud589\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc5ec\ub7ec \ud53c\uce58 \ub371\uc744 \ucc98\ub9ac\ud558\ub3c4\ub85d \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574 \uac01 \ud53c\uce58 \ub371\uc744 '\uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc2e4\ud589'\uc744 \ud1b5\ud574 \ubcf4\ub0b4\uc11c \uc0c8\ub85c\uc6b4 \uc11c\ube0c\uc6cc\ud06c\ud50c\ub85c\uc6b0 \uc2e4\ud589\uc744 \uc2dc\uc791\ud569\ub2c8\ub2e4."
},
"typeVersion": 1
},
{
"id": "951d48ee-5767-44af-af6e-eb4456803bf5",
"name": "Airtable Trigger For Pending Rows",
"type": "n8n-nodes-base.airtableTrigger",
"position": [
-1076,
774
],
"parameters": {
"baseId": {
"__rl": true,
"mode": "id",
"value": "appCkqc2jc3MoVqDO"
},
"tableId": {
"__rl": true,
"mode": "id",
"value": "tblI660SRJAOlSx3p"
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerField": "File",
"authentication": "airtableTokenApi",
"additionalFields": {
"fields": "Name,File,Executive Summary",
"formula": "=AND(\n Name != \"\",\n File,\n OR(\n {Executive Summary} = \"\",\n {Executive Summary} = BLANK()\n )\n)"
},
"downloadFieldNames": "data",
"downloadAttachments": true
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "de2d910c-1307-408a-ba30-9dd30ec5b35f",
"name": "Transcribe to Markdown",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2020,
820
],
"parameters": {
"text": "transcribe the document to markdown.",
"messages": {
"messageValues": [
{
"message": "=You help transcribe documents to markdown, keeping faithful to all text printed and visible to the best of your ability.\n* Ensure you capture all headings, subheadings, titles as well as small print.\n* For any tables found with the document, convert them to markdown tables. If table row descriptions overflow into more than 1 row, concatanate and fit them into a single row. If two or more tables are adjacent horizontally, stack the tables vertically instead. There should be a newline after every markdown table.\n* For any charts, describe the chart type, purpose and result and capture all relevant titles, labels, legends and generaet a table for the datapoints if possible.\n* For images, describe the image along with any captions.\n* Label headers and footers with \"HEADER:\" and \"FOOTER:\" respectively."
},
{
"type": "HumanMessagePromptTemplate",
"messageType": "imageBinary"
}
]
},
"promptType": "define"
},
"typeVersion": 1.4
},
{
"id": "f3b7828e-39db-4e65-a512-4fa363043bf4",
"name": "Identify Companies In Question",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
3740,
1257
],
"parameters": {
"text": "={{ $json.chatInput }}",
"options": {
"systemPromptTemplate": "Help identify the names of one or more company who the user is interested in or is requesting the pitch deck of."
},
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"array\",\n\t\"items\": {\n\t\t\"type\": \"string\"\n }\n}"
},
"typeVersion": 1
},
{
"id": "83637db6-da8a-4424-9c8a-23a771e1a9b5",
"name": "Qdrant Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
4160,
1597
],
"parameters": {
"options": {
"searchFilterJson": "={{\n{\n [$json.output.length > 1 ? \"should\" : \"must\"]: $json.output.map(item => ({\n \"key\": \"metadata.name\",\n \"match\": { \"value\": item }\n }))\n}\n}}"
},
"qdrantCollection": {
"__rl": true,
"mode": "id",
"value": "pitchdecks"
}
},
"credentials": {
"qdrantApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "5b228dd3-1c24-4da9-bbe9-86926e603c8b",
"name": "Ask Questions About Pitchdecks",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
4060,
1257
],
"parameters": {
"text": "={{ $('When chat message received').item.json.chatInput }}\n",
"options": {
"systemMessage": "You help the user answer questions about a startup's pitch deck if it is available in our knowledge base. Assume all user questions are referring to the pitchdecks. Only use the knowledge base to answer questions. If you cannot find the requested information in the knowledge base, then let the user know.\n\nBefore answering any questions, ensure the user has specified a startup in which they want to enquire about and that the startup pitchdeck exists in the database. If the pitchdeck is not known to us, let the user know."
},
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "619f5ae1-476c-47b7-bdbe-b691732088cc",
"name": "Window Buffer Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
4160,
1457
],
"parameters": {
"sessionKey": "={{ $('When chat message received').first().json.sessionId }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.2
},
{
"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": "## \uc9c1\uc811 \ud574\ubcf4\uc138\uc694!\n\n### \uc774 n8n \ud15c\ud50c\ub9bf\uc740 \ud53c\uce58 \ub371\uc744 \uac00\uc838\uc640 Airtable\uc5d0 \ubcf4\uace0\uc11c\ub97c \uc0dd\uc131\ud558\uba70, \uac01 \ud53c\uce58 \ub371\uc5d0 \ub300\ud55c \uc9c8\ubb38\uc744 \ud560 \uc218 \uc788\ub294 AI \ucc57\ubd07\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.\n\n* Airtable\uc740 \ud53c\uce58 \ub371 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \uc0ac\uc6a9\ub418\uba70, PDF \ub371\uc774 \uadf8\uacf3\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ub429\ub2c8\ub2e4.\n* AI \ube44\uc804 \ubaa8\ub378\uc774 \ud53c\uce58 \ub371\uc758 \uac01 \ud398\uc774\uc9c0\ub97c \ub9c8\ud06c\ub2e4\uc6b4\uc73c\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4.\n* \uc815\ubcf4 \ucd94\ucd9c\uae30\uac00 \ubcc0\ud658\ub41c \ub9c8\ud06c\ub2e4\uc6b4\uc5d0\uc11c \ubcf4\uace0\uc11c\ub97c \uc0dd\uc131\ud558\uace0, \ud53c\uce58 \ub371 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \ud544\uc694\ud55c \uc815\ubcf4\ub97c \uc5c5\ub370\uc774\ud2b8\ud569\ub2c8\ub2e4.\n* \ubcc0\ud658\ub41c \ub9c8\ud06c\ub2e4\uc6b4\uc774 \ubca1\ud130 \uc800\uc7a5\uc18c\uc5d0 \uc5c5\ub85c\ub4dc\ub418\uc5b4 \ud53c\uce58 \ub371\uc5d0 \ub300\ud55c \uc9c8\ubb38\uc744 \ud560 \uc218 \uc788\ub294 AI \ucc57\ubd07\uc744 \uad6c\ucd95\ud569\ub2c8\ub2e4.\n\n\uc0d8\ud50c Airtable\uc744 \uc5ec\uae30\uc5d0\uc11c \ud655\uc778\ud558\uc138\uc694: https://airtable.com/appCkqc2jc3MoVqDO/shrS21vGqlnqzzNUc\n\n### \uc0ac\uc6a9 \ubc29\ubc95\n* \uc774 \ud15c\ud50c\ub9bf\uc740 Airtable\uc758 \uac00\uc6a9\uc131\uc744 \ud544\uc694\ub85c \ud569\ub2c8\ub2e4. \uc6cc\ud06c\ud50c\ub85c\ub97c \uc2e4\ud589\ud558\uae30 \uc804\uc5d0 \ud574\ub2f9 Airtable(https://airtable.com/appCkqc2jc3MoVqDO/shrS21vGqlnqzzNUc)\uc744 \ubcf5\uc81c\ud558\uace0 \uc5f4\uc744 \ubcf5\uc0ac\ud558\uc138\uc694.\n* \uc0c8\ub85c\uc6b4 \ud53c\uce58 \ub371\uc774 \ub4e4\uc5b4\uc624\uba74, **Name** \uc5f4\uc5d0 \ud68c\uc0ac \uc774\ub984\uc744 \uc785\ub825\ud558\uace0, **File** \uc5f4\uc5d0 PDF\ub97c \uc5c5\ub85c\ub4dc\ud558\uc138\uc694. \ub2e4\ub978 \uc5f4\uc740 \ube44\uc6cc \ub450\uc138\uc694.\n* Airtable \ud2b8\ub9ac\uac70\uac00 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc73c\uba74 \ud30c\uc77c \uc5c5\ub85c\ub4dc \ud6c4 \uc2e4\ud589\uc774 \uc989\uc2dc \uc2dc\uc791\ub429\ub2c8\ub2e4. \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74, \uc218\ub3d9 \ud14c\uc2a4\ud2b8 \ud2b8\ub9ac\uac70\ub97c \ud074\ub9ad\ud558\uc5ec \uc6cc\ud06c\ud50c\ub85c\ub97c \uc2dc\uc791\ud558\uc138\uc694.\n* \uc218\ub3d9 \ud2b8\ub9ac\uac70 \uc2dc, \ubaa8\ub4e0 \"new\" \ud53c\uce58 \ub371\uc774 \ubcc4\ub3c4\uc758 \uc2e4\ud589\uc73c\ub85c \uc6cc\ud06c\ud50c\ub85c\uc5d0\uc11c \ucc98\ub9ac\ub429\ub2c8\ub2e4.\n\n### \ub3c4\uc6c0\uc774 \ud544\uc694\ud558\uc2e0\uac00\uc694?\n[n8n Discord](https://discord.com/invite/XPKeKXeB7d) \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uac70\ub098, [\ud3ec\ub7fc](https://community.n8n.io/)\uc5d0\uc11c \ubb38\uc758\ud558\uc138\uc694!"
},
"typeVersion": 1
},
{
"id": "960b5909-84a2-4bb2-b86f-8c9d1d80e4ab",
"name": "Check Pitch Deck Exists",
"type": "n8n-nodes-base.airtableTool",
"position": [
4560,
1457
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appCkqc2jc3MoVqDO",
"cachedResultUrl": "https://airtable.com/appCkqc2jc3MoVqDO",
"cachedResultName": "Pitchdecks"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblI660SRJAOlSx3p",
"cachedResultUrl": "https://airtable.com/appCkqc2jc3MoVqDO/tblI660SRJAOlSx3p",
"cachedResultName": "Table 1"
},
"options": {},
"operation": "search",
"descriptionType": "manual",
"filterByFormula": "=AND(Name=\"{{ $fromAI(\"company_name\", \"The name of the company\", \"string\", \"\") }}\")",
"toolDescription": "Call this tool to check if a startup or company's pitchdeck exists in the knowledge base. This tool does not search for information inside the pitchdeck. An error or empty response indicates that the startup/company's pitchdeck does not exist."
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "bb542537-ef88-4a4b-8af5-b679f6e42885",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
3560,
1257
],
"parameters": {
"public": true,
"options": {
"title": "Pitch Deck Analysis",
"subtitle": "Ask question's about a startup's pitch deck"
},
"initialMessages": "This chat allows you to ask questions about a startup's pitch deck. Please start by giving the name of the startup."
},
"typeVersion": 1.1
},
{
"id": "706fe30c-b725-4453-a3b4-4880380ceef0",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
600
],
"parameters": {
"color": 5,
"height": 91.86072082734213,
"content": "### \ubcc0\uacbd\ud558\uc138\uc694! \nAirtable \ub178\ub4dc\ub97c \uc790\uc2e0\uc758 \uac83\uc73c\ub85c \uac00\ub9ac\ud0a4\ub3c4\ub85d \uc5c5\ub370\uc774\ud2b8\ud558\uc138\uc694."
},
"typeVersion": 1
},
{
"id": "33fcc696-c25d-4141-82e0-b6c537e70a08",
"name": "Pitchdecks Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
3000,
1340
],
"parameters": {
"mode": "insert",
"options": {
"collectionConfig": "={{\n{\n \"vectors\": {\n \"distance\": \"Cosine\",\n \"size\": 1536\n }\n}\n}}"
},
"qdrantCollection": {
"__rl": true,
"mode": "id",
"value": "=pitchdecks"
}
},
"credentials": {
"qdrantApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "6b0e7b83-e552-4809-bb38-0cc9921206e8",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
2300,
1340
],
"parameters": {
"color": 5,
"width": 278.26180226980307,
"height": 91.64489634298351,
"content": "### \ubcc0\uacbd\ud558\uc138\uc694! \nQdrant URL\uc744 \"\uae30\uc874 \ubca1\ud130 \uc0ad\uc81c\" \ub178\ub4dc\uc5d0\uc11c \uc5c5\ub370\uc774\ud2b8\ud574\uc57c \ud569\ub2c8\ub2e4."
},
"typeVersion": 1
}
],
"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_languag
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.
airtableTokenApiopenAiApiqdrantApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow transforms PDF documents into AI-ready image datasets, enabling quick analysis or generation tasks without manual preprocessing. It's ideal for researchers, content creators, or data analysts handling scanned files or multi-page reports, saving hours of tedious conversion. The process begins by splitting the PDF into individual images via an HTTP request to a processing service, followed by extraction, resizing with the editImage node, and preparation for OpenAI integration, ensuring high-quality inputs for models like ChatGPT.
Use this workflow when dealing with event-driven PDF uploads needing rapid visual extraction for AI insights, such as summarising academic papers or generating descriptions from diagrams. Avoid it for simple text-based PDFs better suited to direct parsing tools, or when high-volume processing demands cloud scaling beyond n8n's limits. Common variations include swapping OpenAI for other language models or adding filters to process only specific page types like charts.
About this workflow
Workflow 2464. Uses httpRequest, compression, editImage, documentDefaultDataLoader. Event-driven trigger; 50 nodes.
Source: https://github.com/n8nKOR/n8n-shared-workflow/blob/62a671327e906c22a40d290b339ff6d2373f8d75/workflows/n8n-workflows-by-Zie619/devops/2464_workflow_2464.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Api Schema Extractor. Uses manualTrigger, httpRequest, splitOut, textSplitterRecursiveCharacterTextSplitter. Event-driven trigger; 88 nodes.
Wait Splitout. Uses manualTrigger, httpRequest, splitOut, textSplitterRecursiveCharacterTextSplitter. Event-driven trigger; 88 nodes.
This workflow automates the process of discovering and extracting APIs from various services, followed by generating custom schemas. It works in three distinct stages: research, extraction, and schema
📌 Overview
Your AI workforce is ready. Are you?