AutomationFlowsAI & RAG › AI Document Indexer with Ollama

AI Document Indexer with Ollama

Original n8n title: Indexation

Indexation. Uses formTrigger, embeddingsOllama, textSplitterRecursiveCharacterTextSplitter, modelSelector. Event-driven trigger; 36 nodes.

Event trigger★★★★★ complexityAI-powered36 nodesForm TriggerOllama EmbeddingsText Splitter Recursive Character Text SplitterModel SelectorOllama ChatMcp Client ToolOpenAI ChatOutput Parser Structured
AI & RAG Trigger: Event Nodes: 36 Complexity: ★★★★★ AI nodes: yes Added:

This workflow follows the Agent → Datatable 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 →

Download .json
{
  "name": "Indexation",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Indexation de fichiers",
        "formDescription": "Formulaire de prise en compte d'un fichier pdf \u00e0 indexer",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Fichier",
              "fieldType": "file",
              "multipleFiles": false,
              "acceptFileTypes": ".pdf",
              "requiredField": true
            },
            {
              "fieldLabel": "model",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "lavoisier"
                  },
                  {
                    "option": "remote"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "options": {
          "path": "index_file"
        }
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.3,
      "position": [
        0,
        208
      ],
      "id": "789d4f10-1a22-41cf-bf93-d5857752aab7",
      "name": "Index file"
    },
    {
      "parameters": {
        "operation": "pdf",
        "binaryPropertyName": "Fichier",
        "options": {
          "joinPages": false
        }
      },
      "type": "n8n-nodes-base.extractFromFile",
      "typeVersion": 1,
      "position": [
        512,
        208
      ],
      "id": "5a422fd7-cf7f-4df4-966a-4a18d40b5cfa",
      "name": "Extract from File"
    },
    {
      "parameters": {
        "fieldToSplitOut": "text",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        1008,
        208
      ],
      "id": "56d15e46-fe8c-4ffa-a7db-d0580cf32daf",
      "name": "Split pages"
    },
    {
      "parameters": {
        "model": "nomic-embed-text:latest"
      },
      "type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
      "typeVersion": 1,
      "position": [
        1824,
        432
      ],
      "id": "348465d1-4514-4744-a5e7-0b738c8b35bf",
      "name": "Embeddings Ollama",
      "credentials": {
        "ollamaApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 1
          },
          "conditions": [
            {
              "id": "content-filter",
              "leftValue": "={{ $('Clean Content').item.json.output }}",
              "rightValue": "SKIP",
              "operator": {
                "type": "string",
                "operation": "notContains"
              }
            },
            {
              "id": "min-length",
              "leftValue": "={{ $('Clean Content').item.json.output.length }}",
              "rightValue": 50,
              "operator": {
                "operation": "gte",
                "type": "number"
              }
            },
            {
              "id": "c0946734-9b31-4420-ad94-9ec3a844cbc6",
              "leftValue": "={{ $('Clean Content').item.json.output }}",
              "rightValue": "skip",
              "operator": {
                "type": "string",
                "operation": "notContains"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1600,
        208
      ],
      "id": "471d6371-553f-4445-83a3-91f660e16142",
      "name": "Filter Quality Content"
    },
    {
      "parameters": {
        "chunkOverlap": 200,
        "options": {
          "splitCode": "markdown"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "typeVersion": 1,
      "position": [
        2032,
        640
      ],
      "id": "e7cac54f-544d-4915-8b09-07514619426b",
      "name": "Smart Text Chunker"
    },
    {
      "parameters": {
        "rules": {
          "rule": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "ac253c83-e230-4dc4-8321-26635c154859",
                    "leftValue": "={{ $('Index file').item.json.model }}",
                    "rightValue": "local",
                    "operator": {
                      "type": "string",
                      "operation": "equals",
                      "name": "filter.operator.equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "modelIndex": 2,
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "d6a99a37-231a-43a8-b8f4-d4c42b9ec441",
                    "leftValue": "={{ $('Index file').item.json.model }}",
                    "rightValue": "lavoisier",
                    "operator": {
                      "type": "string",
                      "operation": "equals",
                      "name": "filter.operator.equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.modelSelector",
      "typeVersion": 1,
      "position": [
        1232,
        224
      ],
      "id": "fd44525c-8d20-4b9c-83e2-58e44f745e3b",
      "name": "Model Selector"
    },
    {
      "parameters": {
        "model": "qwen2.5:3b-instruct-q4_K_M",
        "options": {
          "temperature": 0.4,
          "keepAlive": "-1m"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOllama",
      "typeVersion": 1,
      "position": [
        1248,
        432
      ],
      "id": "70859ebc-1053-4265-9051-79e04c48b9ee",
      "name": "Local Ollama Agent Model",
      "credentials": {
        "ollamaApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "endpointUrl": "http://playwright-mcp:3333/mcp",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "typeVersion": 1.2,
      "position": [
        512,
        832
      ],
      "id": "ab1175c4-a2f1-4b78-a9b2-59ccf3bf6305",
      "name": "playwright_mcp"
    },
    {
      "parameters": {
        "formTitle": "Indexation d'Url",
        "formDescription": "Formulaire de prise en compte d'une url \u00e0 indexer (utilise OpenAI)",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Url",
              "placeholder": "L'url de la page \u00e0 indexer",
              "requiredField": true
            },
            {
              "fieldLabel": "model",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "lavoisier"
                  },
                  {
                    "option": "local"
                  }
                ]
              }
            }
          ]
        },
        "options": {
          "path": "index_url"
        }
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.3,
      "position": [
        0,
        720
      ],
      "id": "bc1b249e-839e-41f4-a424-eaef9ebd07eb",
      "name": "Index Url"
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n\t\"title\": \"Titre de la page Web\",\n\t\"content\": \"Contenu de la page web en markdown\"\n}",
        "autoFix": true
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        640,
        832
      ],
      "id": "f3030742-b8e6-47e6-af83-4f66b903e0da",
      "name": "Structured Output Parser"
    },
    {
      "parameters": {
        "mode": "insert",
        "qdrantCollection": {
          "__rl": true,
          "value": "documents",
          "mode": "list",
          "cachedResultName": "documents"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "typeVersion": 1.3,
      "position": [
        1856,
        208
      ],
      "id": "9128410f-af05-4703-8143-8f12a33550f4",
      "name": "Documents Qdrant Vector Store",
      "credentials": {
        "qdrantApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "insert",
        "qdrantCollection": {
          "__rl": true,
          "value": "web_documents",
          "mode": "list",
          "cachedResultName": "web_documents"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "typeVersion": 1.3,
      "position": [
        1248,
        720
      ],
      "id": "4dfa9ef8-510d-4b8e-b89e-b0e09e0f46d8",
      "name": "Web Documents Qdrant Vector Store1",
      "credentials": {
        "qdrantApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsonMode": "expressionData",
        "jsonData": "={{ $('Clean Content').item.json.output }}",
        "textSplittingMode": "custom",
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "source_filename",
                "value": "={{ $('Index file').item.json.Fichier.filename }}"
              },
              {
                "name": "source_type",
                "value": "={{ $('Index file').item.json.Fichier.mimetype }}"
              },
              {
                "name": "page_number",
                "value": "={{ $('Split pages').item.json.pageNumber || ($itemIndex + 1) }}"
              },
              {
                "name": "content_length",
                "value": "={{ $json.pageContent?.length || $json.text?.length || 0 }}"
              },
              {
                "name": "chunk_id",
                "value": "={{ $('Index file').item.json.Fichier.filename }}_page_{{ $('Split pages').item.json.pageNumber || ($itemIndex + 1) }}_chunk_{{ $itemIndex }}"
              },
              {
                "name": "indexed_date",
                "value": "={{ new Date().toISOString() }}"
              },
              {
                "name": "document_title",
                "value": "={{ $('Index file').item.json.Fichier.filename.replace('.pdf', '') }}"
              }
            ]
          }
        }
      },
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "typeVersion": 1.1,
      "position": [
        1952,
        432
      ],
      "id": "1ca3099b-30d8-416a-b2f1-0d4165252293",
      "name": "Document Data Loader"
    },
    {
      "parameters": {
        "jsonMode": "expressionData",
        "jsonData": "={{ $('Web Scraping').item.json.output.content }}",
        "textSplittingMode": "custom",
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "url",
                "value": "={{ $('Index Url').item.json.Url }}"
              },
              {
                "name": "title",
                "value": "={{ $('Web Scraping').item.json.output.title }}"
              },
              {
                "name": "scraped_at",
                "value": "={{ new Date().toISOString() }}"
              },
              {
                "name": "content_type",
                "value": "markdown"
              },
              {
                "name": "domain",
                "value": "={{ new URL($('Index Url').item.json.Url).hostname }}"
              },
              {
                "name": "content_length",
                "value": "={{ $('Web Scraping').item.json.output.content.length() }}"
              }
            ]
          }
        }
      },
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "typeVersion": 1.1,
      "position": [
        1232,
        944
      ],
      "id": "88f8aff6-5c77-43bb-b372-76d5b940c9e4",
      "name": "Web Document Data Loader"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=# Texte source\n{{ $json.text }}\n\n# Consigne\nNettoie et structure le texte.",
        "options": {
          "systemMessage": "# Persona\nTu es un expert en nettoyage et structuration de documents PDF.\n\n# Instructions\n- Supprime headers, footers, num\u00e9ros de page et bruit r\u00e9p\u00e9titif.\n- Corrige les mots coup\u00e9s en fin de ligne.\n- Supprime les lignes vides inutiles.\n- Garde le contenu principal et la structure logique.\n- R\u00e9dige en fran\u00e7ais uniquement.\n\n# Anti-hallucination\n- N'invente jamais de contenu absent du document.\n- Si le texte est trop pauvre ou hors sujet, renvoie SKIP.\n- Ne compl\u00e8te pas les informations manquantes.\n\n# Format de sortie\n- Markdown simple et lisible.\n- Ou SKIP si le contenu n'est pas pertinent."
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3,
      "position": [
        1248,
        0
      ],
      "id": "a947bc22-f7a6-49eb-bb88-07b95281a0b7",
      "name": "Clean Content"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=# URL\n{{ $('Index Url').item.json.Url }}\n\n# Consigne\nExplore la page et extrais le contenu utile.",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "# Persona\nTu es un expert en extraction et structuration de contenu web.\n\n# Instructions\n- Utilise playwright-mcp pour ouvrir la page demand\u00e9e.\n- Extrait le contenu principal et ignore navigation, pubs, cookies, footers et menus.\n- Conserve les titres, le texte utile et les liens importants.\n- R\u00e9dige en fran\u00e7ais uniquement.\n\n# Anti-hallucination\n- N'invente pas de contenu absent de la page.\n- Si la page est vide, inaccessible ou peu pertinente, renvoie SKIP.\n- Ne devine pas le contenu non visible.\n\n# Format de sortie\n- Markdown simple et structur\u00e9.\n- Ou SKIP si la page n'est pas exploitable."
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3,
      "position": [
        448,
        608
      ],
      "id": "30f35cad-c8c6-4c07-8da8-5a114dbe3f90",
      "name": "Web Scraping"
    },
    {
      "parameters": {
        "formTitle": "Analyse d'image",
        "formDescription": "Analyse d'une image avec un mod\u00e8le multimodal",
        "formFields": {
          "values": [
            {
              "fieldLabel": "imageFichier",
              "fieldType": "file",
              "multipleFiles": false,
              "acceptFileTypes": ".jpg, .png",
              "requiredField": true
            },
            {
              "fieldLabel": "model",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "lavoisier"
                  },
                  {
                    "option": "local"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "options": {
          "path": "analyse_image"
        }
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.3,
      "position": [
        0,
        1216
      ],
      "id": "4a463208-3e81-4cf5-aff7-d9cac7677986",
      "name": "Analyse Image"
    },
    {
      "parameters": {
        "rules": {
          "rule": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "ac253c83-e230-4dc4-8321-26635c154859",
                    "leftValue": "={{ $('Analyse Image').item.json.model }}",
                    "rightValue": "local",
                    "operator": {
                      "type": "string",
                      "operation": "equals",
                      "name": "filter.operator.equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "modelIndex": 2,
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "d6a99a37-231a-43a8-b8f4-d4c42b9ec441",
                    "leftValue": "={{ $('Analyse Image').item.json.model }}",
                    "rightValue": "lavoisier",
                    "operator": {
                      "type": "string",
                      "operation": "equals",
                      "name": "filter.operator.equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.modelSelector",
      "typeVersion": 1,
      "position": [
        432,
        1440
      ],
      "id": "68911485-8b2c-4c43-9d19-821472abf4ae",
      "name": "Model Selector Analyse IMage"
    },
    {
      "parameters": {
        "model": "granite3.2-vision:2b",
        "options": {
          "temperature": 0.4,
          "keepAlive": "-1m"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOllama",
      "typeVersion": 1,
      "position": [
        512,
        1648
      ],
      "id": "3cb69218-c606-413b-ad85-ba318e42fd2c",
      "name": "Local Ollama Agent Analyse Model",
      "credentials": {
        "ollamaApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "completion",
        "completionTitle": "Analyse de l'image par le modele",
        "completionMessage": "={{ $('Analyse Image2').item.json.output }}",
        "options": {}
      },
      "type": "n8n-nodes-base.form",
      "typeVersion": 2.3,
      "position": [
        1008,
        1216
      ],
      "id": "f4c09777-8c4f-49e3-8798-ea015e2944b8",
      "name": "Form"
    },
    {
      "parameters": {
        "rules": {
          "rule": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "d6a99a37-231a-43a8-b8f4-d4c42b9ec441",
                    "leftValue": "={{ $('Index Url').item.json.model }}",
                    "rightValue": "local",
                    "operator": {
                      "type": "string",
                      "operation": "equals",
                      "name": "filter.operator.equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "modelIndex": 2,
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "bef31ca0-40a7-4bfd-8900-eb4b858af3e7",
                    "leftValue": "={{ $('Index Url').item.json.model }}",
                    "rightValue": "lavoisier",
                    "operator": {
                      "type": "string",
                      "operation": "equals",
                      "name": "filter.operator.equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        }
      },
      "type": "@n8n/n8n-nodes-langchain.modelSelector",
      "typeVersion": 1,
      "position": [
        224,
        832
      ],
      "id": "fd695c72-0def-45d9-b8ea-ee01eef0e39f",
      "name": "Model Selector Web Scraping"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "qwen3:8b",
          "mode": "list",
          "cachedResultName": "qwen3:8b"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [
        1376,
        432
      ],
      "id": "833bc451-86a3-4df1-8a32-000168e9b9a5",
      "name": "PC Lavoisier",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $('Analyse Image').item.json.imageFichier.filename }}",
        "options": {
          "systemMessage": "Tu es un analyseur d'image.\n\n**Instructions:**\n* D\u00e9cris moi ce que tu vois\n* Si l'image contient du texte essaie de l'extraire\n* Nettoie ce texte pour le rendre compr\u00e9hensible\n\n\n\n",
          "passthroughBinaryImages": true
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3,
      "position": [
        448,
        1216
      ],
      "id": "53f7fdd2-ff28-4cae-a2a6-8d82c91b07a9",
      "name": "Analyse Image2"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 1
          },
          "conditions": [
            {
              "id": "content-filter",
              "leftValue": "={{ $('Web Scraping').item.json.output }}",
              "rightValue": "SKIP",
              "operator": {
                "type": "string",
                "operation": "notContains"
              }
            },
            {
              "id": "min-length",
              "leftValue": "={{ $('Web Scraping').item.json.output.length }}",
              "rightValue": 50,
              "operator": {
                "operation": "gte",
                "type": "number"
              }
            },
            {
              "id": "c0946734-9b31-4420-ad94-9ec3a844cbc6",
              "leftValue": "={{ $('Web Scraping').item.json.output }}",
              "rightValue": "skip",
              "operator": {
                "type": "string",
                "operation": "notContains"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1008,
        720
      ],
      "id": "5b07fd9f-ca65-4f52-9371-d68298547b6c",
      "name": "Filter Quality Content Web"
    }
  ],
  "connections": {
    "Index file": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Split pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split pages": {
      "main": [
        [
          {
            "node": "Clean Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Ollama": {
      "ai_embedding": [
        [
          {
            "node": "Documents Qdrant Vector Store",
            "type": "ai_embedding",
            "index": 0
          },
          {
            "node": "Web Documents Qdrant Vector Store1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Filter Quality Content": {
      "main": [
        [
          {
            "node": "Documents Qdrant Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Smart Text Chunker": {
      "ai_textSplitter": [
        [
          {
            "node": "Document Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          },
          {
            "node": "Web Document Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "Local Ollama Agent Model": {
      "ai_languageModel": [
        [
          {
            "node": "Model Selector",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Model Selector Web Scraping",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Model Selector": {
      "ai_languageModel": [
        [
          {
            "node": "Clean Content",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Index Url": {
      "main": [
        [
          {
            "node": "Web Scraping",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "playwright_mcp": {
      "ai_tool": [
        [
          {
            "node": "Web Scraping",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Web Scraping",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Document Data Loader": {
      "ai_document": [
        [
          {
            "node": "Documents Qdrant Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Web Document Data Loader": {
      "ai_document": [
        [
          {
            "node": "Web Documents Qdrant Vector Store1",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Clean Content": {
      "main": [
        [
          {
            "node": "Filter Quality Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Web Scraping": {
      "main": [
        [
          {
            "node": "Filter Quality Content Web",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyse Image": {
      "main": [
        [
          {
            "node": "Analyse Image2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Model Selector Analyse IMage": {
      "ai_languageModel": [
        [
          {
            "node": "Analyse Image2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Local Ollama Agent Analyse Model": {
      "ai_languageModel": [
        [
          {
            "node": "Model Selector Analyse IMage",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Model Selector Web Scraping": {
      "ai_languageModel": [
        [
          {
            "node": "Web Scraping",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "PC Lavoisier": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Model Selector",
            "type": "ai_languageModel",
            "index": 1
          },
          {
            "node": "Model Selector Analyse IMage",
            "type": "ai_languageModel",
            "index": 1
          },
          {
            "node": "Model Selector Web Scraping",
            "type": "ai_languageModel",
            "index": 1
          }
        ]
      ]
    },
    "Analyse Image2": {
      "main": [
        [
          {
            "node": "Form",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Quality Content Web": {
      "main": [
        [
          {
            "node": "Web Documents Qdrant Vector Store1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "versionId": "033520c7-43ed-4519-99f4-3471d691292e",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "Ny1aEtO0joCvHdM1",
  "tags": []
}

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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Indexation. Uses formTrigger, embeddingsOllama, textSplitterRecursiveCharacterTextSplitter, modelSelector. Event-driven trigger; 36 nodes.

Source: https://github.com/antoninBr/talk-n8n-agent/blob/3e9a8a239d0da68cb53b785b32f30adb3c7dce7b/workflows/Indexation.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Agent IA Projet Client. Uses executeWorkflowTrigger, lmChatOpenAi, toolWorkflow, vectorStoreQdrant. Event-driven trigger; 79 nodes.

Execute Workflow Trigger, OpenAI Chat, Tool Workflow +16
AI & RAG

Build a powerful, customizable AI chatbot for your WordPress website that intelligently retrieves posts, answers questions, and engages in natural conversations. This complete solution handles content

Qdrant Vector Store, OpenAI Embeddings, Document Default Data Loader +10
AI & RAG

This n8n template demonstrates how to automate comprehensive web research using multiple AI models to find, analyze, and extract insights from authoritative sources.

HTTP Request, Execute Workflow Trigger, Output Parser Structured +7
AI & RAG

This n8n template demonstrates how to build an intelligent entity research system that automatically discovers, researches, and creates comprehensive profiles for business entities, concepts, and term

Execute Workflow Trigger, OpenAI Chat, Tool Wikipedia +8
AI & RAG

Transform your customer support with this intelligent Gmail-based automation system that combines AI analysis, vector knowledge bases, and smart escalation workflows. This comprehensive solution autom

Gmail, Agent, Google Sheets +10