Veni AI
Tillbaka till mallar
ARBETSFLOD MALL

When Clicking Execute Workflow | Operasyon için n8n Otomasyon İş Akışı Şablonu (HTTP)

n8n için hazır otomasyon şablonu: When Clicking Execute Workflow. 27 düğüm. Entegrasyonlar: HTTP. JSON'u kopyalayıp n8n'e içe aktarın.

27 noderWhen_Clicking_Execute_Workflow-workflow.json
{
"meta": {
"instanceId": "408f9fb9940c3cb18ffdef0e0150fe342d6e655c3a9fac21f0f644e8bedabcd9",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "7874a910-e303-410c-a4a2-7c76aca3af2d",
"name": "When clicking ‘Execute workflow’",
"type": "n8n-nodes-base.manualTrigger",
"position": [
16,
80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "92a51a45-ae82-4b16-b077-98d3c872c26a",
"name": "Technology and Innovation Report 2025",
"type": "n8n-nodes-base.set",
"position": [
208,
80
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={\n \"url\": [\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172521/n8n-workflows/tir2025_en_19_hgxqxn.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172521/n8n-workflows/tir2025_en_20_avxf85.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172521/n8n-workflows/tir2025_en_21_uathyn.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172521/n8n-workflows/tir2025_en_23_gt5s2p.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172522/n8n-workflows/tir2025_en_24_msru5l.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172522/n8n-workflows/tir2025_en_25_xgrgp8.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172522/n8n-workflows/tir2025_en_26_vmjhpg.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172522/n8n-workflows/tir2025_en_89_naihym.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172522/n8n-workflows/tir2025_en_90_id0nsj.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172527/n8n-workflows/tir2025_en_91_ks3iav.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172527/n8n-workflows/tir2025_en_101_h2miyl.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172527/n8n-workflows/tir2025_en_103_eaimeh.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172527/n8n-workflows/tir2025_en_102_y6oyls.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172528/n8n-workflows/tir2025_en_104_z5fklh.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172530/n8n-workflows/tir2025_en_105_m3b26i.png\",\n \"https://res.cloudinary.com/daglih2g8/image/upload/v1754172531/n8n-workflows/tir2025_en_106_wm6kva.png\"\n ]\n}\n"
},
"typeVersion": 3.4
},
{
"id": "c18e1bb4-0db2-4adf-93f2-1fac1916f245",
"name": "Download Page",
"type": "n8n-nodes-base.httpRequest",
"position": [
1152,
0
],
"parameters": {
"url": "={{ $json.url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "9748db97-abb5-47dd-969e-e04cd67a1284",
"name": "Split Out Urls",
"type": "n8n-nodes-base.splitOut",
"position": [
384,
80
],
"parameters": {
"options": {},
"fieldToSplitOut": "url"
},
"typeVersion": 1
},
{
"id": "60d4d5ce-2e52-4bc1-a15a-337cdc9830d3",
"name": "Image Embeddings with Cohere Embed 4",
"type": "n8n-nodes-base.httpRequest",
"position": [
1552,
0
],
"parameters": {
"url": "https://api.cohere.com/v2/embed",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"embed-v4.0\",\n \"input_type\": \"image\",\n \"embedding_types\": [\"float\"],\n \"images\": [\"data:image/png;base64,{{ $json.data }}\"]\n }",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"nodeCredentialType": "cohereApi"
},
"credentials": {
"cohereApi": {
"id": "uakbZrf6hh3F6T7h",
"name": "CohereApi account"
}
},
"typeVersion": 4.2
},
{
"id": "8c5f2689-69cd-4e83-9228-a70812a7d6f1",
"name": "Prepare Points",
"type": "n8n-nodes-base.set",
"position": [
1840,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ba2dbe6f-d433-4ed8-9727-e4258017b79a",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "fc97e129-5213-46fd-85aa-b01ccd77d69d",
"name": "url",
"type": "string",
"value": "={{ $('Page Ref').item.json.url }}"
},
{
"id": "e6b1d194-49fb-4b1b-8f8c-046209ed5b4b",
"name": "embedding",
"type": "array",
"value": "={{ $json.embeddings.float[0] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "2e8f4164-2d54-41d1-9b70-c5331881f15f",
"name": "Aggregate Points",
"type": "n8n-nodes-base.aggregate",
"position": [
2016,
0
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "points"
},
"typeVersion": 1
},
{
"id": "ad731a29-521f-4910-a958-f24214ff6bc6",
"name": "Insert Points",
"type": "n8n-nodes-qdrant.qdrant",
"position": [
2208,
80
],
"parameters": {
"wait": false,
"points": "={{\n$json.points.map(item => ({\n id: item.id,\n payload: {\n content: item.url,\n metadata: {}\n },\n vector: item.embedding\n})).toJsonString()\n}}\n",
"resource": "point",
"operation": "upsertPoints",
"collectionName": {
"__rl": true,
"mode": "list",
"value": "visionRagExample",
"cachedResultName": "visionRagExample"
},
"requestOptions": {}
},
"credentials": {
"qdrantRestApi": {
"id": "Px8bPm0Qb8kjI7AA",
"name": "localhost"
}
},
"typeVersion": 1
},
{
"id": "50dcf17e-ce40-4005-af14-5439039825ea",
"name": "Batch 5",
"type": "n8n-nodes-base.splitInBatches",
"position": [
672,
80
],
"parameters": {
"options": {},
"batchSize": 5
},
"typeVersion": 3
},
{
"id": "57a943a4-6bbd-42c8-9dd2-6835be9a3b89",
"name": "Page Ref",
"type": "n8n-nodes-base.noOp",
"position": [
896,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b577a452-fb00-4180-89d1-d70bc2cfcd0a",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
304,
704
],
"webhookId": "85f868f6-12db-48e6-956a-5da8dd9c4e8a",
"parameters": {
"public": true,
"options": {
"responseMode": "responseNodes"
}
},
"typeVersion": 1.3
},
{
"id": "e17b4fd7-afbf-4a66-982a-d5c65a0fc41a",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
480,
704
],
"parameters": {
"options": {
"systemMessage": "You are a helpful assistant.\n",
"returnIntermediateSteps": true
}
},
"typeVersion": 2.2
},
{
"id": "82acff19-7cab-4be3-979d-995293068344",
"name": "If has Tool Call?",
"type": "n8n-nodes-base.if",
"position": [
1024,
704
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f133b8e9-85ee-4974-83db-8eae6889f7da",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.intermediateSteps.find(step => step.action.tool === \"Technology_Innovation_Report_Tool\") }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "8ec020b5-381f-4652-ac39-9b0067267506",
"name": "Respond to Chat",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
2688,
704
],
"parameters": {
"message": "={{ $json.message.content[0].text }}\n\n### Sources\n{{\n[\n $('Aggregate Results').item.json.data.map(_ => ` `).join('|'),\n $('Aggregate Results').item.json.data.map(_ => `-`).join('|'),\n $('Aggregate Results').item.json.data\n .map((data,idx) => `[![${idx+1}](${data.document.pageContent.replace('upload','upload/w_100')})](${data.document.pageContent})`)\n .join('|')\n]\n .map(line => `|${line}|`)\n .join('\\n')\n}}",
"options": {
"memoryConnection": true
},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "82cc9ac3-df2a-4e4e-b86e-cf3f4c1f2529",
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
2752,
848
],
"parameters": {
"sessionKey": "={{ $('When chat message received').item.json.sessionId }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "e553c8bc-93e7-4cf3-a286-76128d2ab8da",
"name": "Respond to Chat1",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
1216,
1056
],
"parameters": {
"message": "={{ $json.output }}",
"options": {
"memoryConnection": true
},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "5c278da9-f384-49bd-9202-4d952a46f933",
"name": "Simple Memory1",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
1280,
1200
],
"parameters": {
"sessionKey": "={{ $('When chat message received').item.json.sessionId }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "5cc09f69-8b48-45c3-83c6-bab66816e655",
"name": "Technology Innovation Report Tool",
"type": "@n8n/n8n-nodes-langchain.toolCode",
"position": [
688,
864
],
"parameters": {
"jsCode": "return \"ok\"",
"schemaType": "manual",
"description": "Query relevant documents from the \"Technology and Innovation Report 2025: Inclusive Artificial Intelligence for Development\" PDF. As input, describe in context and in detail what the user is asking for.",
"inputSchema": "{\n\"type\": \"object\",\n \"required\": [\"query\"],\n\"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"The user's question\"\n }\n }\n}",
"specifyInputSchema": true
},
"typeVersion": 1.3
},
{
"id": "5ca66760-172e-48a5-93e1-5007026ffc9a",
"name": "Image Understanding via Command-A-Vision",
"type": "n8n-nodes-base.httpRequest",
"position": [
2240,
704
],
"parameters": {
"url": "https://api.cohere.com/v2/chat",
"method": "POST",
"options": {},
"jsonBody": "={{\n{\n \"model\": \"command-a-vision-07-2025\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": $('Get Query').item.json.query\n },\n ...$json.data.map(data => ({\n \"type\": \"image_url\",\n \"image_url\": {\n \"url\": data.document.pageContent,\n \"detail\": \"auto\"\n }\n }))\n ]\n }\n ]\n}\n}}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
},
"nodeCredentialType": "cohereApi"
},
"credentials": {
"cohereApi": {
"id": "uakbZrf6hh3F6T7h",
"name": "CohereApi account"
}
},
"typeVersion": 4.2
},
{
"id": "2d93eb6c-1b39-415a-a7f4-f1f02b43ff33",
"name": "Chat Model via Command-R",
"type": "@n8n/n8n-nodes-langchain.lmChatCohere",
"position": [
480,
864
],
"parameters": {
"model": "command-r",
"options": {}
},
"credentials": {
"cohereApi": {
"id": "uakbZrf6hh3F6T7h",
"name": "CohereApi account"
}
},
"typeVersion": 1
},
{
"id": "ae8ccb5c-8b3b-4f43-991f-c1b4d189d460",
"name": "Get Query",
"type": "n8n-nodes-base.set",
"position": [
1216,
704
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1d43f919-4eca-419a-abbb-d14f52a44c04",
"name": "tool",
"type": "string",
"value": "={{ $json.intermediateSteps[0].action.tool }}"
},
{
"id": "3f9ba213-a2a5-4dc1-b84f-efba7870a1e9",
"name": "query",
"type": "string",
"value": "={{ $json.intermediateSteps[0].action.toolInput.query }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ead3ee0e-3f25-4710-90d9-6ecffd70202d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
-192
],
"parameters": {
"color": 7,
"width": 608,
"height": 480,
"content": "## 1. Download Report Page Scans\n\nFirst, we'll extract a few key pages from the [Technology and Innovation Report 2025: Inclusive Artificial Intelligence for Development](https://unctad.org/system/files/official-document/tir2025_en.pdf) published by the United Nations. These pages will ideally contain primarily charts, tables and graphs which will better a better demonstration for image embeddings.\n\nI'll also takes some liberties to split and convert the pages to images (pngs) outside of this template. If you want to learn more about splitting pdfs to images, check out my [Transcribing Bank Statements To Markdown Using Gemini Vision AI](https://n8n.io/workflows/2421-transcribing-bank-statements-to-markdown-using-gemini-vision-ai/) template."
},
"typeVersion": 1
},
{
"id": "5d89e72b-1509-4171-a22d-13fe3774ff29",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1072,
-288
],
"parameters": {
"color": 7,
"width": 672,
"height": 528,
"content": "## 2. Image Embeddings using Cohere Embed v4\n[Read about Cohere Embed v4 Annoucement](https://cohere.com/blog/embed-4)\n\nMultimodal Embeddings have come a long way in the past 6 months and it's been great to see much more competition in the space. Cohere's recently announced Embed v4.0 makes it generate Image embeddings as easy as text. The key benefit being that you retain more of the visual information in the document than you would if the document was to be converted to text/markdown - this is perfect for charts, tables and graphs which are common in technical reports.\n\nEmbed v4.0 only accepts Base64 images so we'll have to use the \"Extract from file\" node to do the conversion."
},
"typeVersion": 1
},
{
"id": "24bff51a-41bc-450c-865a-2782a141a11e",
"name": "Convert Image to Base64",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1344,
0
],
"parameters": {
"options": {},
"operation": "binaryToPropery"
},
"typeVersion": 1
},
{
"id": "9db29630-8f4f-4494-bf07-5ab8a4ff2ad9",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1776,
-288
],
"parameters": {
"color": 7,
"width": 624,
"height": 592,
"content": "## 3. Store Vectors in Qdrant Vector Store\n[Learn more about the Qdrant Community Node](https://github.com/qdrant/n8n-nodes-qdrant)\n\nThe great thing about vectors - be they text, image, audio or video - are that they're all just a bunch of numbers at the end of the day! This means they are compatible with existing vectors stores without special configuration or proprietary capabilities.\n\nFor our needs, we use [Qdrant](https://qdrant.tech) as our preferred vector store. Qdrant is open-source which makes it really affordable to use and their verified community node makes for first-class n8n integration."
},
"typeVersion": 1
},
{
"id": "74153b2f-ae2b-4c18-94a3-5ba762824341",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2432,
-272
],
"parameters": {
"width": 368,
"height": 368,
"content": "### Create Example Qdrant Collection\nIf you want to follow along with this template demonstration, you'll need to create a Qdrant vector store collection to hold the embeddings.\n\nDefine your own before using this template or use the following node to create the collection."
},
"typeVersion": 1
},
{
"id": "425b74ea-0597-4890-ac1e-3b313761d161",
"name": "Create Collection",
"type": "n8n-nodes-qdrant.qdrant",
"position": [
2560,
-80
],
"parameters": {
"vectors": "{\n \"vectors\": {\n \"distance\": \"Cosine\",\n \"size\": 1536\n }\n}",
"operation": "createCollection",
"shardNumber": {},
"collectionName": "visionRagExample",
"requestOptions": {},
"replicationFactor": {},
"writeConsistencyFactor": {}
},
"credentials": {
"qdrantRestApi": {
"id": "Px8bPm0Qb8kjI7AA",
"name": "localhost"
}
},
"typeVersion": 1
},
{
"id": "e007c3d5-8e0b-4ceb-b552-178ef42e5b4a",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
384
],
"parameters": {
"color": 7,
"width": 704,
"height": 656,
"content": "## 4. Let's Build a Vision RAG Agent\n[Learn more about AI Agents](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent)\n\nWe can build a Q&A agent to test our retrieval of our image embeddings. However if we use the standard AI agent node with the vector store tool, this won't work as only the image urls are returned from the vector store. Most AI agents are text-only and won't have the ability to download and read the contents of a binary file - which is what is required here.\n\nInstead, it's a 2 step process:\n(1) Matching Image embeddings helps retrieve relevant image urls from vector store which then \n(2) allows you to fetch the given images and run them through a vision model to answer the user's questions."
},
"typeVersion": 1
},
{
"id": "422b6c6d-7158-4975-880c-b5b64de545d3",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
928,
480
],
"parameters": {
"color": 7,
"width": 688,
"height": 432,
"content": "## 5. Switch to Vision Model if Tool Called\n\nTo determine if we need to switch to our Vision model, we can check for tool calls to the \"technology report 2025\" tool by enabling the \"return immediate steps\" option for the agent.\n\nNote that in this particular setup, this switch here will discard the agent's message."
},
"typeVersion": 1
},
{
"id": "1a894089-0271-4dc3-9f05-00c5b2e10125",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1648,
416
],
"parameters": {
"color": 7,
"width": 832,
"height": 576,
"content": "## 6. Image Understanding using Cohere Command-A Vision Model\n[Read more about the Command A Vision Model](https://cohere.com/blog/command-a-vision)\n\nWe'll run the user's query through our vector store to pull relevant images and then pass those image urls and the query to our LLM - Cohere's Command-A Vision model. Vision models don't require you to first transcribe/explain the image beforehand and instead take images as inputs which saves a lot of effort on your part. This is also the preferred approach for most graphical documents as converting images to text loses a lot of information and context.\n\nFrom a small testing sample, I've found Command-A vision to be quite a strong vision model but requires a different prompting approach to that of Gemini. You may need to experiment to discover for yourself the strengths and weaknesses of the model for your own use-cases."
},
"typeVersion": 1
},
{
"id": "701a229e-5356-4afd-ab78-c503d71015fa",
"name": "Get Relevant Images",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"position": [
1744,
704
],
"parameters": {
"mode": "load",
"prompt": "={{ $json.query }}",
"options": {},
"qdrantCollection": {
"__rl": true,
"mode": "list",
"value": "visionRagExample",
"cachedResultName": "visionRagExample"
},
"includeDocumentMetadata": false
},
"credentials": {
"qdrantApi": {
"id": "NyinAS3Pgfik66w5",
"name": "QdrantApi account"
}
},
"typeVersion": 1.3
},
{
"id": "b95a5a73-0a1b-4aee-99af-e45c0dda53a2",
"name": "Embeddings",
"type": "@n8n/n8n-nodes-langchain.embeddingsCohere",
"position": [
1824,
848
],
"parameters": {
"modelName": "=embed-v4.0"
},
"credentials": {
"cohereApi": {
"id": "uakbZrf6hh3F6T7h",
"name": "CohereApi account"
}
},
"typeVersion": 1
},
{
"id": "3354b318-3b5f-412c-bfe4-75ad2a12a0a2",
"name": "Aggregate Results",
"type": "n8n-nodes-base.aggregate",
"position": [
2048,
704
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "1f831ccd-1e5c-4b67-9e83-b184f6a91a38",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
2512,
480
],
"parameters": {
"color": 7,
"width": 560,
"height": 512,
"content": "## 7. Send Response to User With Images\n[Learn more about the Respond to Chat node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.chat)\n\nFinally, we can then send our Vision RAG agent response to the user. Using the \"Respond to Chat\" node is a powerful new way to control the final output message. ie. Here we can attach thumbnails in the response which let's the user inspect the images used."
},
"typeVersion": 1
},
{
"id": "5257f5b4-9870-4b23-a582-4f19f2c4d4d1",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1072,
944
],
"parameters": {
"color": 7,
"width": 528,
"height": 416,
"content": "## 5.1. Otherwise, Respond as Normal Agent"
},
"typeVersion": 1
},
{
"id": "df38d0d9-488a-4077-b574-d9dc75c9a245",
"name": "Quick Confirmation",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
1424,
704
],
"parameters": {
"message": "Please wait while I search the document...",
"options": {},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "4c36acd3-ab20-4acb-b912-d977c6f477ab",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
-320
],
"parameters": {
"width": 496,
"height": 1152,
"content": "## Vision RAG and Image Embeddings with Cohere Command-A and Embed v4\n\n\n### Cohere's new multimodal model releases make building your own Vision RAG agents a breeze. If you're new to Multimodal RAG and for the intent of this template, it means to embed and retrieve only document scans relevant to a query and then have a vision model read those scans to answer.\n\nThe benefits being (1) the vision model doesn't need to keep all document scans in context (expensive) and (2) ability to query on graphical content such as charts, graphs and tables.\n\n### How it works\n* Page extracts from a technology report containing graphs and charts are downloaded, converted to base64 and embedded using Cohere's Embed v4 model.\n* This produces embedding vectors which we will associate with the original page url and store them in our Qdrant vector store collection using the Qdrant community node.\n* Our Vision RAG agent is split into 2 parts; one regular AI agent for chat and a second Q&A agent powered by Cohere's Command-A-vision model which is required to read contents of images.\n* When a query requires access to the technology report, the Q&A agent branch is activated. This branch performs a vector search on our image embeddings and returns a list of matching image urls. These urls are then used as input for our vision model along with the user's original query.\n* The Q&A vision agent can then reply to the user using the \"respond to chat\" node.\n* Because both agents share the same memory space, it would be the same conversation to the user.\n\n### How to use\n* Ensure you have a Cohere account and sufficient credit to avoid rate limit or token usage restrictions.\n* For embeddings, swap out the page extracts for your own. You may need to split and convert document pages to images if you want to use image embeddings.\n* For chat, you may want to structure the agent(s) in another way which makes sense for your environment eg. using MCP servers.\n\n### Requirements\n* Cohere account for Embeddings and LLM\n* Qdrant for vector store\n\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!\n\nHappy Hacking!"
},
"typeVersion": 1
},
{
"id": "ddfa986d-986d-4f1d-9edc-1553fc368ffd",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
864
],
"parameters": {
"width": 496,
"height": 288,
"content": "![](https://cdn.subworkflow.ai/n8n-templates/banner_595x311.png#full-width)"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"Batch 5": {
"main": [
[],
[
{
"node": "Page Ref",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "If has Tool Call?",
"type": "main",
"index": 0
}
]
]
},
"Page Ref": {
"main": [
[
{
"node": "Download Page",
"type": "main",
"index": 0
}
]
]
},
"Get Query": {
"main": [
[
{
"node": "Quick Confirmation",
"type": "main",
"index": 0
}
]
]
},
"Embeddings": {
"ai_embedding": [
[
{
"node": "Get Relevant Images",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Download Page": {
"main": [
[
{
"node": "Convert Image to Base64",
"type": "main",
"index": 0
}
]
]
},
"Insert Points": {
"main": [
[
{
"node": "Batch 5",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "Respond to Chat",
"type": "ai_memory",
"index": 0
}
]
]
},
"Prepare Points": {
"main": [
[
{
"node": "Aggregate Points",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory1": {
"ai_memory": [
[
{
"node": "Respond to Chat1",
"type": "ai_memory",
"index": 0
}
]
]
},
"Split Out Urls": {
"main": [
[
{
"node": "Batch 5",
"type": "main",
"index": 0
}
]
]
},
"Aggregate Points": {
"main": [
[
{
"node": "Insert Points",
"type": "main",
"index": 0
}
]
]
},
"Aggregate Results": {
"main": [
[
{
"node": "Image Understanding via Command-A-Vision",
"type": "main",
"index": 0
}
]
]
},
"If has Tool Call?": {
"main": [
[
{
"node": "Get Query",
"type": "main",
"index": 0
}
],
[
{
"node": "Respond to Chat1",
"type": "main",
"index": 0
}
]
]
},
"Quick Confirmation": {
"main": [
[
{
"node": "Get Relevant Images",
"type": "main",
"index": 0
}
]
]
},
"Get Relevant Images": {
"main": [
[
{
"node": "Aggregate Results",
"type": "main",
"index": 0
}
]
]
},
"Convert Image to Base64": {
"main": [
[
{
"node": "Image Embeddings with Cohere Embed 4",
"type": "main",
"index": 0
}
]
]
},
"Chat Model via Command-R": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Technology Innovation Report Tool": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Image Embeddings with Cohere Embed 4": {
"main": [
[
{
"node": "Prepare Points",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Technology and Innovation Report 2025",
"type": "main",
"index": 0
}
]
]
},
"Technology and Innovation Report 2025": {
"main": [
[
{
"node": "Split Out Urls",
"type": "main",
"index": 0
}
]
]
},
"Image Understanding via Command-A-Vision": {
"main": [
[
{
"node": "Respond to Chat",
"type": "main",
"index": 0
}
]
]
}
}
}

I n8n Editor: klistra in med Ctrl+VArbetsflöde kommer att skapas