@n8n-as-code/skills 2.1.0-next.49 → 2.1.1-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
1
  {
2
- "generatedAt": "2026-05-11T11:30:58.451Z",
2
+ "generatedAt": "2026-05-11T16:02:16.013Z",
3
3
  "version": "1.0.0",
4
4
  "sourceUrl": "https://docs.n8n.io/llms.txt",
5
- "totalPages": 1276,
5
+ "totalPages": 1279,
6
6
  "statistics": {
7
7
  "byCategory": {
8
8
  "other": 514,
9
9
  "tutorials": 27,
10
- "advanced-ai": 25,
10
+ "advanced-ai": 28,
11
11
  "api": 6,
12
12
  "code": 20,
13
13
  "data": 38,
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "withNodeNames": 471,
23
23
  "withUseCases": 40,
24
- "withCodeExamples": 185
24
+ "withCodeExamples": 186
25
25
  },
26
26
  "categories": {
27
27
  "other": {
@@ -579,7 +579,7 @@
579
579
  },
580
580
  "advanced-ai": {
581
581
  "description": "AI agents, chains, RAG, memory, and LangChain integration",
582
- "totalPages": 25,
582
+ "totalPages": 28,
583
583
  "pages": [
584
584
  "page-0017",
585
585
  "page-0018",
@@ -602,6 +602,9 @@
602
602
  "page-0035",
603
603
  "page-0036",
604
604
  "page-0037",
605
+ "page-0038",
606
+ "page-0039",
607
+ "page-0040",
605
608
  "page-0041",
606
609
  "page-0042",
607
610
  "page-0043",
@@ -4838,6 +4841,99 @@
4838
4841
  },
4839
4842
  {
4840
4843
  "id": "page-0037",
4844
+ "title": "Let AI specify tool parameters",
4845
+ "url": "https://docs.n8n.io/advanced-ai/examples/using-the-fromai-function/index.md",
4846
+ "urlPath": "advanced-ai/examples/using-the-fromai-function/index.md",
4847
+ "category": "advanced-ai",
4848
+ "subcategory": "examples",
4849
+ "nodeName": null,
4850
+ "nodeType": null,
4851
+ "content": {
4852
+ "markdown": "# Let AI specify the tool parameters\n\nWhen configuring [tools](../../../glossary/#ai-tool) connected to the Tools Agent, many parameters can be filled in by the AI model itself. The AI model will use the context from the task and information from other connected tools to fill in the appropriate details.\n\nThere are two ways to do this, and you can switch between them.\n\n## Let the model fill in the parameter\n\nEach appropriate parameter field in the tool's editing dialog has an extra button at the end:\n\nOn activating this button, the [AI Agent](../../../glossary/#ai-agent) will fill in the expression for you, with no need for any further user input. The field itself is filled in with a message indicating that the parameter has been defined automatically by the model.\n\nIf you want to define the parameter yourself, click on the 'X' in this box to revert to user-defined values. Note that the 'expression' field will now contain the expression generated by this feature, though you can now edit it further to add extra details as described in the following section.\n\nWarning\n\nActivating this feature will overwrite any manual definition you may have already added.\n\n## Use the `$fromAI()` function\n\nThe `$fromAI()` function uses AI to dynamically fill in parameters for tools connected to the [Tools AI agent](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/tools-agent/).\n\nOnly for tools\n\nThe `$fromAI()` function is only available for tools connected to the AI Agent node. The `$fromAI()` function doesn't work with the [Code](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/) tool or with [other non-tool cluster sub-nodes](../../../integrations/builtin/cluster-nodes/sub-nodes/).\n\nTo use the `$fromAI()` function, call it with the required `key` parameter:\n\n```\n{{ $fromAI('email') }}\n```\n\nThe `key` parameter and other arguments to the `$fromAI()` function aren't references to existing values. Instead, think of these arguments as hints that the AI model will use to populate the right data.\n\nFor instance, if you choose a key called `email`, the AI Model will look for an email address in its context, other tools, and input data. In chat workflows, it may ask the user for an email address if it can't find one elsewhere. You can optionally pass other parameters like `description` to give extra context to the AI model.\n\n### Parameters\n\nThe `$fromAI()` function accepts the following parameters:\n\n| Parameter | Type | Required? | Description |\n| -------------- | ------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `key` | string | | A string representing the key or name of the argument. This must be between 1 and 64 characters in length and can only contain lowercase letters, uppercase letters, numbers, underscores, and hyphens. |\n| `description` | string | | A string describing the argument. |\n| `type` | string | | A string specifying the data type. Can be string, number, boolean, or json (defaults to string). |\n| `defaultValue` | any | | The default value to use for the argument. |\n\n### Examples\n\nAs an example, you could use the following `$fromAI()` expression to dynamically populate a field with a name:\n\n```\n$fromAI(\"name\", \"The commenter's name\", \"string\", \"Jane Doe\")\n```\n\nIf you don't need the optional parameters, you could simplify this as:\n\n```\n$fromAI(\"name\")\n```\n\nTo dynamically populate the number of items you have in stock, you could use a `$fromAI()` expression like this:\n\n```\n$fromAI(\"numItemsInStock\", \"Number of items in stock\", \"number\", 5)\n```\n\nIf you only want to fill in parts of a field with a dynamic value from the model, you can use it in a normal expression as well. For example, if you want the model to fill out the `subject` parameter for an e-mail, but always pre-fix the generated value with the string 'Generated by AI:', you could use the following expression:\n\n```\nGenerated by AI: {{ $fromAI(\"subject\") }}\n```\n\n### Templates\n\nYou can see the `$fromAI()` function in action in the following [templates](../../../glossary/#template-n8n):\n\n- [Angie, Personal AI Assistant with Telegram Voice and Text](https://n8n.io/workflows/2462-angie-personal-ai-assistant-with-telegram-voice-and-text/)\n- [Automate Customer Support Issue Resolution using AI Text Classifier](https://n8n.io/workflows/2468-automate-customer-support-issue-resolution-using-ai-text-classifier/)\n- [Scale Deal Flow with a Pitch Deck AI Vision, Chatbot and QDrant Vector Store](https://n8n.io/workflows/2464-scale-deal-flow-with-a-pitch-deck-ai-vision-chatbot-and-qdrant-vector-store/)\n",
4853
+ "excerpt": "# Let AI specify the tool parameters When configuring [tools](../../../glossary/#ai-tool) connected to the Tools Agent, many parameters can be filled in by the AI model itself. The AI model will use the context from the task and information from other connected tools to fill in the appropriate details. There are two ways to do this, and you can switch between them. ## Let the model fill in the parameter Each appropriate parameter field in the tool's editing dialog has an extra button at the...",
4854
+ "sections": [
4855
+ {
4856
+ "title": "Let AI specify the tool parameters",
4857
+ "level": 1,
4858
+ "content": "When configuring [tools](../../../glossary/#ai-tool) connected to the Tools Agent, many parameters can be filled in by the AI model itself. The AI model will use the context from the task and information from other connected tools to fill in the appropriate details.\n\nThere are two ways to do this, and you can switch between them."
4859
+ }
4860
+ ]
4861
+ },
4862
+ "metadata": {
4863
+ "keywords": [
4864
+ "specify",
4865
+ "tool",
4866
+ "parameters",
4867
+ "model",
4868
+ "fill",
4869
+ "parameter",
4870
+ "`$fromai()`",
4871
+ "function",
4872
+ "examples",
4873
+ "templates"
4874
+ ],
4875
+ "useCases": [],
4876
+ "operations": [],
4877
+ "codeExamples": 5,
4878
+ "complexity": "intermediate",
4879
+ "readingTime": "4 min",
4880
+ "contentLength": 5438,
4881
+ "relatedPages": []
4882
+ },
4883
+ "searchIndex": {
4884
+ "fullText": "let ai specify tool parameters # let ai specify the tool parameters\n\nwhen configuring [tools](../../../glossary/#ai-tool) connected to the tools agent, many parameters can be filled in by the ai model itself. the ai model will use the context from the task and information from other connected tools to fill in the appropriate details.\n\nthere are two ways to do this, and you can switch between them.\n\n## let the model fill in the parameter\n\neach appropriate parameter field in the tool's editing dialog has an extra button at the end:\n\non activating this button, the [ai agent](../../../glossary/#ai-agent) will fill in the expression for you, with no need for any further user input. the field itself is filled in with a message indicating that the parameter has been defined automatically by the model.\n\nif you want to define the parameter yourself, click on the 'x' in this box to revert to user-defined values. note that the 'expression' field will now contain the expression generated by this feature, though you can now edit it further to add extra details as described in the following section.\n\nwarning\n\nactivating this feature will overwrite any manual definition you may have already added.\n\n## use the `$fromai()` function\n\nthe `$fromai()` function uses ai to dynamically fill in parameters for tools connected to the [tools ai agent](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/tools-agent/).\n\nonly for tools\n\nthe `$fromai()` function is only available for tools connected to the ai agent node. the `$fromai()` function doesn't work with the [code](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/) tool or with [other non-tool cluster sub-nodes](../../../integrations/builtin/cluster-nodes/sub-nodes/).\n\nto use the `$fromai()` function, call it with the required `key` parameter:\n\n```\n{{ $fromai('email') }}\n```\n\nthe `key` parameter and other arguments to the `$fromai()` function aren't references to existing values. instead, think of these arguments as hints that the ai model will use to populate the right data.\n\nfor instance, if you choose a key called `email`, the ai model will look for an email address in its context, other tools, and input data. in chat workflows, it may ask the user for an email address if it can't find one elsewhere. you can optionally pass other parameters like `description` to give extra context to the ai model.\n\n### parameters\n\nthe `$fromai()` function accepts the following parameters:\n\n| parameter | type | required? | description |\n| -------------- | ------ | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `key` | string | | a string representing the key or name of the argument. this must be between 1 and 64 characters in length and can only contain lowercase letters, uppercase letters, numbers, underscores, and hyphens. |\n| `description` | string | | a string describing the argument. |\n| `type` | string | | a string specifying the data type. can be string, number, boolean, or json (defaults to string). |\n| `defaultvalue` | any | | the default value to use for the argument. |\n\n### examples\n\nas an example, you could use the following `$fromai()` expression to dynamically populate a field with a name:\n\n```\n$fromai(\"name\", \"the commenter's name\", \"string\", \"jane doe\")\n```\n\nif you don't need the optional parameters, you could simplify this as:\n\n```\n$fromai(\"name\")\n```\n\nto dynamically populate the number of items you have in stock, you could use a `$fromai()` expression like this:\n\n```\n$fromai(\"numitemsinstock\", \"number of items in stock\", \"number\", 5)\n```\n\nif you only want to fill in parts of a field with a dynamic value from the model, you can use it in a normal expression as well. for example, if you want the model to fill out the `subject` parameter for an e-mail, but always pre-fix the generated value with the string 'generated by ai:', you could use the following expression:\n\n```\ngenerated by ai: {{ $fromai(\"subject\") }}\n```\n\n### templates\n\nyou can see the `$fromai()` function in action in the following [templates](../../../glossary/#template-n8n):\n\n- [angie, personal ai assistant with telegram voice and text](https://n8n.io/workflows/2462-angie-personal-ai-assistant-with-telegram-voice-and-text/)\n- [automate customer support issue resolution using ai text classifier](https://n8n.io/workflows/2468-automate-customer-support-issue-resolution-using-ai-text-classifier/)\n- [scale deal flow with a pitch deck ai vision, chatbot and qdrant vector store](https://n8n.io/workflows/2464-scale-deal-flow-with-a-pitch-deck-ai-vision-chatbot-and-qdrant-vector-store/)\n let ai specify the tool parameters",
4885
+ "importantTerms": [
4886
+ "fromai",
4887
+ "with",
4888
+ "string",
4889
+ "parameters",
4890
+ "tools",
4891
+ "model",
4892
+ "nodes",
4893
+ "this",
4894
+ "parameter",
4895
+ "function",
4896
+ "tool",
4897
+ "agent",
4898
+ "expression",
4899
+ "will",
4900
+ "fill",
4901
+ "other",
4902
+ "field",
4903
+ "following",
4904
+ "name",
4905
+ "connected",
4906
+ "generated",
4907
+ "cluster",
4908
+ "only",
4909
+ "email",
4910
+ "workflows",
4911
+ "number",
4912
+ "could",
4913
+ "text",
4914
+ "specify",
4915
+ "glossary",
4916
+ "context",
4917
+ "from",
4918
+ "extra",
4919
+ "user",
4920
+ "that",
4921
+ "want",
4922
+ "dynamically",
4923
+ "integrations",
4924
+ "builtin",
4925
+ "populate",
4926
+ "data",
4927
+ "description",
4928
+ "type",
4929
+ "argument",
4930
+ "value",
4931
+ "https"
4932
+ ]
4933
+ }
4934
+ },
4935
+ {
4936
+ "id": "page-0038",
4841
4937
  "title": "Populate a Pinecone vector database from a website",
4842
4938
  "url": "https://docs.n8n.io/advanced-ai/examples/vector-store-website/index.md",
4843
4939
  "urlPath": "advanced-ai/examples/vector-store-website/index.md",
@@ -4846,13 +4942,13 @@
4846
4942
  "nodeName": null,
4847
4943
  "nodeType": null,
4848
4944
  "content": {
4849
- "markdown": "# LangChain concepts in n8n\n\nThis page explains how LangChain concepts and features map to n8n nodes.\n\nThis page includes lists of the LangChain-focused nodes in n8n. You can use any n8n node in a workflow where you interact with LangChain, to link LangChain to other services. The LangChain features uses n8n's [Cluster nodes](../../../integrations/builtin/cluster-nodes/).\n\nn8n implements LangChain JS\n\nThis feature is n8n's implementation of [LangChain's JavaScript framework](https://js.langchain.com/docs/get_started/introduction).\n\n## Trigger nodes\n\n[Chat Trigger](../../../integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/)\n\n## Cluster nodes\n\n[Cluster nodes](../../../glossary/#cluster-node-n8n) are node groups that work together to provide functionality in an n8n workflow. Instead of using a single node, you use a [root node](../../../glossary/#root-node-n8n) and one or more [sub-nodes](../../../glossary/#sub-node-n8n) that extend the functionality of the node.\n\n### Root nodes\n\nEach cluster starts with one [root node](../../../glossary/#root-node-n8n).\n\n#### Chains\n\nA [chain](../../../glossary/#ai-chain) is a series of LLMs, and related tools, linked together to support functionality that can't be provided by a single LLM alone.\n\nAvailable nodes:\n\n- [Basic LLM Chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/)\n- [Retrieval Q&A Chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainretrievalqa/)\n- [Summarization Chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainsummarization/)\n- [Sentiment Analysis](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.sentimentanalysis/)\n- [Text Classifier](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.text-classifier/)\n\nLearn more about [chaining in LangChain](https://js.langchain.com/docs/concepts/lcel).\n\n#### Agents\n\n> An [agent](../../../glossary/#ai-agent) has access to a suite of tools, and determines which ones to use depending on the user input. Agents can use multiple tools, and use the output of one tool as the input to the next. [Source](https://github.com/langchain-ai/langchainjs/blob/def3a26c054575e1ed40b9062087e8c0a8899633/docs/core_docs/docs/modules/agents/index.mdx)\n\nAvailable nodes:\n\n- [Agent](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/)\n\nLearn more about [Agents in LangChain](https://js.langchain.com/docs/concepts/agents).\n\n#### Vector stores\n\n[Vector stores](../../../glossary/#ai-vector-store) store embedded data, and perform vector searches on it.\n\n- [Simple Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreinmemory/)\n- [PGVector Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepgvector/)\n- [Pinecone Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/)\n- [Qdrant Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdrant/)\n- [Supabase Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoresupabase/)\n- [Zep Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorezep/)\n\nLearn more about [Vector stores in LangChain](https://js.langchain.com/docs/concepts/vectorstores/).\n\n#### Miscellaneous\n\nUtility nodes.\n\n[LangChain Code](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.code/): import LangChain. This means if there is functionality you need that n8n hasn't created a node for, you can still use it.\n\n### Sub-nodes\n\nEach root node can have one or more [sub-nodes](../../../glossary/#sub-node-n8n) attached to it.\n\n#### Document loaders\n\nDocument loaders add data to your chain as documents. The data source can be a file or web service.\n\nAvailable nodes:\n\n- [Default Document Loader](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/)\n- [GitHub Document Loader](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentgithubloader/)\n\nLearn more about [Document loaders in LangChain](https://js.langchain.com/docs/concepts/document_loaders).\n\n#### Language models\n\n[LLMs (large language models)](../../../glossary/#large-language-model-llm) are programs that analyze datasets. They're the key element of working with AI.\n\nAvailable nodes:\n\n- [Anthropic Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/)\n- [AWS Bedrock Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatawsbedrock/)\n- [Cohere Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmcohere/)\n- [Hugging Face Inference Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmopenhuggingfaceinference/)\n- [Mistral Cloud Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatmistralcloud/)\n- [Ollama Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatollama/)\n- [Ollama Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmollama/)\n- [OpenAI Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/)\n\nLearn more about [Language models in LangChain](https://js.langchain.com/docs/concepts/chat_models).\n\n#### Memory\n\n[Memory](../../../glossary/#ai-memory) retains information about previous queries in a series of queries. For example, when a user interacts with a chat model, it's useful if your application can remember and call on the full conversation, not just the most recent query entered by the user.\n\nAvailable nodes:\n\n- [Motorhead](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorymotorhead/)\n- [Redis Chat Memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryredischat/)\n- [Postgres Chat Memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorypostgreschat/)\n- [Simple Memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/)\n- [Xata](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryxata/)\n- [Zep](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryzep/)\n\nLearn more about [Memory in LangChain](https://langchain-ai.github.io/langgraphjs/concepts/memory/).\n\n#### Output parsers\n\nOutput parsers take the text generated by an LLM and format it to match the structure you require.\n\nAvailable nodes:\n\n- [Auto-fixing Output Parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserautofixing/)\n- [Item List Output Parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparseritemlist/)\n- [Structured Output Parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/)\n\nLearn more about [Output parsers in LangChain](https://js.langchain.com/docs/concepts/output_parsers/).\n\n#### Retrievers\n\n- [Contextual Compression Retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievercontextualcompression/)\n- [MultiQuery Retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievermultiquery/)\n- [Vector Store Retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievervectorstore/)\n- [Workflow Retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrieverworkflow/)\n\n#### Text splitters\n\nText splitters break down data (documents), making it easier for the LLM to process the information and return accurate results.\n\nAvailable nodes:\n\n- [Character Text Splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplittercharactertextsplitter/)\n- [Recursive Character Text Splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter/)\n- [Token Splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplittertokensplitter/)\n\nn8n's text splitter nodes implements parts of [LangChain's text_splitter API](https://js.langchain.com/docs/concepts/text_splitters/).\n\n#### Tools\n\nUtility [tools](../../../glossary/#ai-tool).\n\n- [Calculator](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/)\n- [Code Tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/)\n- [SerpAPI](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolserpapi/)\n- [Think Tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolthink/)\n- [Vector Store Tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolvectorstore/)\n- [Wikipedia](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwikipedia/)\n- [Wolfram|Alpha](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwolframalpha/)\n- [Workflow Tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolworkflow/)\n\n#### Embeddings\n\n> [Embeddings](../../../glossary/#ai-embedding) capture the \"relatedness\" of text, images, video, or other types of information. ([source](https://supabase.com/docs/guides/ai/concepts))\n\nAvailable nodes:\n\n- [Embeddings AWS Bedrock](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsawsbedrock/)\n- [Embeddings Cohere](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingscohere/)\n- [Embeddings Google PaLM](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsgooglepalm/)\n- [Embeddings Hugging Face Inference](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingshuggingfaceinference/)\n- [Embeddings Mistral Cloud](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsmistralcloud/)\n- [Embeddings Ollama](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsollama/)\n- [Embeddings OpenAI](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsopenai/)\n\nLearn more about [Text embeddings in LangChain](https://js.langchain.com/docs/concepts/embedding_models/).\n\n#### Miscellaneous\n\n- [Chat Memory Manager](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorymanager/)\n",
4850
- "excerpt": "# LangChain concepts in n8n This page explains how LangChain concepts and features map to n8n nodes. This page includes lists of the LangChain-focused nodes in n8n. You can use any n8n node in a workflow where you interact with LangChain, to link LangChain to other services. The LangChain features uses n8n's [Cluster nodes](../../../integrations/builtin/cluster-nodes/). n8n implements LangChain JS This feature is n8n's implementation of [LangChain's JavaScript framework](https://js.langchain...",
4945
+ "markdown": "# Populate a Pinecone vector database from a website\n\nUse n8n to scrape a website, load the data into Pinecone, then query it using a chat workflow. This workflow uses the [HTTP node](../../../integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) to get website data, extracts the relevant content using the [HTML node](../../../integrations/builtin/core-nodes/n8n-nodes-base.html/), then uses the [Pinecone Vector Store node](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/) to send it to Pinecone.\n\n[View workflow file](/_workflows/advanced-ai/examples/populate_a_pinecone_vector_database_from_a_website.json)\n\n## Key features\n\nThis workflow uses:\n\n- [HTTP node](../../../integrations/builtin/core-nodes/n8n-nodes-base.httprequest/): fetches website data.\n- [HTML node](../../../integrations/builtin/core-nodes/n8n-nodes-base.html/): simplifies the data by extracting the main content from the page.\n- [Pinecone Vector Store node](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/) and [Embeddings OpenAI](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsopenai/): transform the data into vectors and store it in Pinecone.\n- [Chat Trigger](../../../integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/) and [Question and Answer Chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainretrievalqa/) to query the vector database.\n\n## Using the example\n\nTo load the template into your n8n instance:\n\n1. Download the workflow JSON file.\n1. Open a new workflow in your n8n instance.\n1. Copy in the JSON, or select **Workflow menu** > **Import from file...**.\n\nThe example workflows use Sticky Notes to guide you:\n\n- Yellow: notes and information.\n- Green: instructions to run the workflow.\n- Orange: you need to change something to make the workflow work.\n- Blue: draws attention to a key feature of the example.\n",
4946
+ "excerpt": "# Populate a Pinecone vector database from a website Use n8n to scrape a website, load the data into Pinecone, then query it using a chat workflow. This workflow uses the [HTTP node](../../../integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) to get website data, extracts the relevant content using the [HTML node](../../../integrations/builtin/core-nodes/n8n-nodes-base.html/), then uses the [Pinecone Vector Store node](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-l...",
4851
4947
  "sections": [
4852
4948
  {
4853
- "title": "LangChain concepts in n8n",
4949
+ "title": "Populate a Pinecone vector database from a website",
4854
4950
  "level": 1,
4855
- "content": "This page explains how LangChain concepts and features map to n8n nodes.\n\nThis page includes lists of the LangChain-focused nodes in n8n. You can use any n8n node in a workflow where you interact with LangChain, to link LangChain to other services. The LangChain features uses n8n's [Cluster nodes](../../../integrations/builtin/cluster-nodes/).\n\nn8n implements LangChain JS\n\nThis feature is n8n's implementation of [LangChain's JavaScript framework](https://js.langchain.com/docs/get_started/introduction)."
4951
+ "content": "Use n8n to scrape a website, load the data into Pinecone, then query it using a chat workflow. This workflow uses the [HTTP node](../../../integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) to get website data, extracts the relevant content using the [HTML node](../../../integrations/builtin/core-nodes/n8n-nodes-base.html/), then uses the [Pinecone Vector Store node](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/) to send it to Pinecone.\n\n[View workflow file](/_workflows/advanced-ai/examples/populate_a_pinecone_vector_database_from_a_website.json)"
4856
4952
  }
4857
4953
  ]
4858
4954
  },
@@ -4871,13 +4967,148 @@
4871
4967
  "useCases": [],
4872
4968
  "operations": [],
4873
4969
  "codeExamples": 0,
4970
+ "complexity": "beginner",
4971
+ "readingTime": "2 min",
4972
+ "contentLength": 1989,
4973
+ "relatedPages": []
4974
+ },
4975
+ "searchIndex": {
4976
+ "fullText": "populate a pinecone vector database from a website # populate a pinecone vector database from a website\n\nuse n8n to scrape a website, load the data into pinecone, then query it using a chat workflow. this workflow uses the [http node](../../../integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) to get website data, extracts the relevant content using the [html node](../../../integrations/builtin/core-nodes/n8n-nodes-base.html/), then uses the [pinecone vector store node](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/) to send it to pinecone.\n\n[view workflow file](/_workflows/advanced-ai/examples/populate_a_pinecone_vector_database_from_a_website.json)\n\n## key features\n\nthis workflow uses:\n\n- [http node](../../../integrations/builtin/core-nodes/n8n-nodes-base.httprequest/): fetches website data.\n- [html node](../../../integrations/builtin/core-nodes/n8n-nodes-base.html/): simplifies the data by extracting the main content from the page.\n- [pinecone vector store node](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/) and [embeddings openai](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsopenai/): transform the data into vectors and store it in pinecone.\n- [chat trigger](../../../integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/) and [question and answer chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainretrievalqa/) to query the vector database.\n\n## using the example\n\nto load the template into your n8n instance:\n\n1. download the workflow json file.\n1. open a new workflow in your n8n instance.\n1. copy in the json, or select **workflow menu** > **import from file...**.\n\nthe example workflows use sticky notes to guide you:\n\n- yellow: notes and information.\n- green: instructions to run the workflow.\n- orange: you need to change something to make the workflow work.\n- blue: draws attention to a key feature of the example.\n populate a pinecone vector database from a website",
4977
+ "importantTerms": [
4978
+ "nodes",
4979
+ "workflow",
4980
+ "integrations",
4981
+ "builtin",
4982
+ "pinecone",
4983
+ "vector",
4984
+ "website",
4985
+ "node",
4986
+ "from",
4987
+ "data",
4988
+ "core",
4989
+ "langchain",
4990
+ "database",
4991
+ "base",
4992
+ "html",
4993
+ "cluster",
4994
+ "populate",
4995
+ "into",
4996
+ "using",
4997
+ "uses",
4998
+ "store",
4999
+ "root",
5000
+ "file",
5001
+ "json",
5002
+ "example"
5003
+ ]
5004
+ }
5005
+ },
5006
+ {
5007
+ "id": "page-0039",
5008
+ "title": "LangChain learning resources",
5009
+ "url": "https://docs.n8n.io/advanced-ai/langchain/langchain-learning-resources/index.md",
5010
+ "urlPath": "advanced-ai/langchain/langchain-learning-resources/index.md",
5011
+ "category": "advanced-ai",
5012
+ "subcategory": "langchain",
5013
+ "nodeName": null,
5014
+ "nodeType": null,
5015
+ "content": {
5016
+ "markdown": "# LangChain learning resources\n\nYou don't need to know details about LangChain to use n8n, but it can be helpful to learn a few concepts. This pages lists some learning resources that people at n8n have found helpful.\n\nThe [LangChain documentation](https://docs.langchain.com/docs/) includes introductions to key concepts and possible use cases. Choose the [LangChain | Python](https://python.langchain.com/docs/get_started/introduction) or [LangChain | JavaScript](https://js.langchain.com/docs/get_started/introduction/) documentation for quickstarts, code examples, and API documentation. LangChain also provide [code templates](https://github.com/langchain-ai/langchain/tree/master/cookbook) (Python only), offering ideas for potential use cases and common patterns.\n\n[What Product People Need To Know About LangChain](https://www.commandbar.com/blog/langchain-guide) provides a list of terminology and concepts, explained with helpful metaphors. Aimed at a wide audience.\n\nIf you prefer video, this [YouTube series by Greg Kamradt](https://youtu.be/_v_fgW2SkkQ?si=8Z2tfAoXnN3lXU9s) works through the LangChain documentation, providing code examples as it goes.\n\nn8n offers space to discuss LangChain on the [Discord](https://discord.gg/bAt54txhHg). Join to share your projects and discuss ideas with the community.\n",
5017
+ "excerpt": "# LangChain learning resources You don't need to know details about LangChain to use n8n, but it can be helpful to learn a few concepts. This pages lists some learning resources that people at n8n have found helpful. The [LangChain documentation](https://docs.langchain.com/docs/) includes introductions to key concepts and possible use cases. Choose the [LangChain | Python](https://python.langchain.com/docs/get_started/introduction) or [LangChain | JavaScript](https://js.langchain.com/docs/get_...",
5018
+ "sections": [
5019
+ {
5020
+ "title": "LangChain learning resources",
5021
+ "level": 1,
5022
+ "content": "You don't need to know details about LangChain to use n8n, but it can be helpful to learn a few concepts. This pages lists some learning resources that people at n8n have found helpful.\n\nThe [LangChain documentation](https://docs.langchain.com/docs/) includes introductions to key concepts and possible use cases. Choose the [LangChain | Python](https://python.langchain.com/docs/get_started/introduction) or [LangChain | JavaScript](https://js.langchain.com/docs/get_started/introduction/) documentation for quickstarts, code examples, and API documentation. LangChain also provide [code templates](https://github.com/langchain-ai/langchain/tree/master/cookbook) (Python only), offering ideas for potential use cases and common patterns.\n\n[What Product People Need To Know About LangChain](https://www.commandbar.com/blog/langchain-guide) provides a list of terminology and concepts, explained with helpful metaphors. Aimed at a wide audience.\n\nIf you prefer video, this [YouTube series by Greg Kamr"
5023
+ }
5024
+ ]
5025
+ },
5026
+ "metadata": {
5027
+ "keywords": [
5028
+ "langchain",
5029
+ "learning",
5030
+ "resources"
5031
+ ],
5032
+ "useCases": [],
5033
+ "operations": [],
5034
+ "codeExamples": 0,
5035
+ "complexity": "beginner",
5036
+ "readingTime": "1 min",
5037
+ "contentLength": 1320,
5038
+ "relatedPages": []
5039
+ },
5040
+ "searchIndex": {
5041
+ "fullText": "langchain learning resources # langchain learning resources\n\nyou don't need to know details about langchain to use n8n, but it can be helpful to learn a few concepts. this pages lists some learning resources that people at n8n have found helpful.\n\nthe [langchain documentation](https://docs.langchain.com/docs/) includes introductions to key concepts and possible use cases. choose the [langchain | python](https://python.langchain.com/docs/get_started/introduction) or [langchain | javascript](https://js.langchain.com/docs/get_started/introduction/) documentation for quickstarts, code examples, and api documentation. langchain also provide [code templates](https://github.com/langchain-ai/langchain/tree/master/cookbook) (python only), offering ideas for potential use cases and common patterns.\n\n[what product people need to know about langchain](https://www.commandbar.com/blog/langchain-guide) provides a list of terminology and concepts, explained with helpful metaphors. aimed at a wide audience.\n\nif you prefer video, this [youtube series by greg kamradt](https://youtu.be/_v_fgw2skkq?si=8z2tfaoxnn3lxu9s) works through the langchain documentation, providing code examples as it goes.\n\nn8n offers space to discuss langchain on the [discord](https://discord.gg/bat54txhhg). join to share your projects and discuss ideas with the community.\n langchain learning resources",
5042
+ "importantTerms": [
5043
+ "langchain",
5044
+ "https",
5045
+ "learning",
5046
+ "resources",
5047
+ "documentation",
5048
+ "docs",
5049
+ "helpful",
5050
+ "concepts",
5051
+ "python",
5052
+ "code"
5053
+ ]
5054
+ }
5055
+ },
5056
+ {
5057
+ "id": "page-0040",
5058
+ "title": "Langchain concepts in n8n",
5059
+ "url": "https://docs.n8n.io/advanced-ai/langchain/langchain-n8n/index.md",
5060
+ "urlPath": "advanced-ai/langchain/langchain-n8n/index.md",
5061
+ "category": "advanced-ai",
5062
+ "subcategory": "langchain",
5063
+ "nodeName": null,
5064
+ "nodeType": null,
5065
+ "content": {
5066
+ "markdown": "# LangChain concepts in n8n\n\nThis page explains how LangChain concepts and features map to n8n nodes.\n\nThis page includes lists of the LangChain-focused nodes in n8n. You can use any n8n node in a workflow where you interact with LangChain, to link LangChain to other services. The LangChain features uses n8n's [Cluster nodes](../../../integrations/builtin/cluster-nodes/).\n\nn8n implements LangChain JS\n\nThis feature is n8n's implementation of [LangChain's JavaScript framework](https://js.langchain.com/docs/get_started/introduction).\n\n## Trigger nodes\n\n[Chat Trigger](../../../integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/)\n\n## Cluster nodes\n\n[Cluster nodes](../../../glossary/#cluster-node-n8n) are node groups that work together to provide functionality in an n8n workflow. Instead of using a single node, you use a [root node](../../../glossary/#root-node-n8n) and one or more [sub-nodes](../../../glossary/#sub-node-n8n) that extend the functionality of the node.\n\n### Root nodes\n\nEach cluster starts with one [root node](../../../glossary/#root-node-n8n).\n\n#### Chains\n\nA [chain](../../../glossary/#ai-chain) is a series of LLMs, and related tools, linked together to support functionality that can't be provided by a single LLM alone.\n\nAvailable nodes:\n\n- [Basic LLM Chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/)\n- [Retrieval Q&A Chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainretrievalqa/)\n- [Summarization Chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainsummarization/)\n- [Sentiment Analysis](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.sentimentanalysis/)\n- [Text Classifier](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.text-classifier/)\n\nLearn more about [chaining in LangChain](https://js.langchain.com/docs/concepts/lcel).\n\n#### Agents\n\n> An [agent](../../../glossary/#ai-agent) has access to a suite of tools, and determines which ones to use depending on the user input. Agents can use multiple tools, and use the output of one tool as the input to the next. [Source](https://github.com/langchain-ai/langchainjs/blob/def3a26c054575e1ed40b9062087e8c0a8899633/docs/core_docs/docs/modules/agents/index.mdx)\n\nAvailable nodes:\n\n- [Agent](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/)\n\nLearn more about [Agents in LangChain](https://js.langchain.com/docs/concepts/agents).\n\n#### Vector stores\n\n[Vector stores](../../../glossary/#ai-vector-store) store embedded data, and perform vector searches on it.\n\n- [Simple Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreinmemory/)\n- [PGVector Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepgvector/)\n- [Pinecone Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/)\n- [Qdrant Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdrant/)\n- [Supabase Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoresupabase/)\n- [Zep Vector Store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorezep/)\n\nLearn more about [Vector stores in LangChain](https://js.langchain.com/docs/concepts/vectorstores/).\n\n#### Miscellaneous\n\nUtility nodes.\n\n[LangChain Code](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.code/): import LangChain. This means if there is functionality you need that n8n hasn't created a node for, you can still use it.\n\n### Sub-nodes\n\nEach root node can have one or more [sub-nodes](../../../glossary/#sub-node-n8n) attached to it.\n\n#### Document loaders\n\nDocument loaders add data to your chain as documents. The data source can be a file or web service.\n\nAvailable nodes:\n\n- [Default Document Loader](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/)\n- [GitHub Document Loader](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentgithubloader/)\n\nLearn more about [Document loaders in LangChain](https://js.langchain.com/docs/concepts/document_loaders).\n\n#### Language models\n\n[LLMs (large language models)](../../../glossary/#large-language-model-llm) are programs that analyze datasets. They're the key element of working with AI.\n\nAvailable nodes:\n\n- [Anthropic Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/)\n- [AWS Bedrock Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatawsbedrock/)\n- [Cohere Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmcohere/)\n- [Hugging Face Inference Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmopenhuggingfaceinference/)\n- [Mistral Cloud Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatmistralcloud/)\n- [Ollama Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatollama/)\n- [Ollama Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmollama/)\n- [OpenAI Chat Model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/)\n\nLearn more about [Language models in LangChain](https://js.langchain.com/docs/concepts/chat_models).\n\n#### Memory\n\n[Memory](../../../glossary/#ai-memory) retains information about previous queries in a series of queries. For example, when a user interacts with a chat model, it's useful if your application can remember and call on the full conversation, not just the most recent query entered by the user.\n\nAvailable nodes:\n\n- [Motorhead](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorymotorhead/)\n- [Redis Chat Memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryredischat/)\n- [Postgres Chat Memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorypostgreschat/)\n- [Simple Memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/)\n- [Xata](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryxata/)\n- [Zep](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryzep/)\n\nLearn more about [Memory in LangChain](https://langchain-ai.github.io/langgraphjs/concepts/memory/).\n\n#### Output parsers\n\nOutput parsers take the text generated by an LLM and format it to match the structure you require.\n\nAvailable nodes:\n\n- [Auto-fixing Output Parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserautofixing/)\n- [Item List Output Parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparseritemlist/)\n- [Structured Output Parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/)\n\nLearn more about [Output parsers in LangChain](https://js.langchain.com/docs/concepts/output_parsers/).\n\n#### Retrievers\n\n- [Contextual Compression Retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievercontextualcompression/)\n- [MultiQuery Retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievermultiquery/)\n- [Vector Store Retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievervectorstore/)\n- [Workflow Retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrieverworkflow/)\n\n#### Text splitters\n\nText splitters break down data (documents), making it easier for the LLM to process the information and return accurate results.\n\nAvailable nodes:\n\n- [Character Text Splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplittercharactertextsplitter/)\n- [Recursive Character Text Splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter/)\n- [Token Splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplittertokensplitter/)\n\nn8n's text splitter nodes implements parts of [LangChain's text_splitter API](https://js.langchain.com/docs/concepts/text_splitters/).\n\n#### Tools\n\nUtility [tools](../../../glossary/#ai-tool).\n\n- [Calculator](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/)\n- [Code Tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/)\n- [SerpAPI](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolserpapi/)\n- [Think Tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolthink/)\n- [Vector Store Tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolvectorstore/)\n- [Wikipedia](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwikipedia/)\n- [Wolfram|Alpha](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwolframalpha/)\n- [Workflow Tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolworkflow/)\n\n#### Embeddings\n\n> [Embeddings](../../../glossary/#ai-embedding) capture the \"relatedness\" of text, images, video, or other types of information. ([source](https://supabase.com/docs/guides/ai/concepts))\n\nAvailable nodes:\n\n- [Embeddings AWS Bedrock](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsawsbedrock/)\n- [Embeddings Cohere](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingscohere/)\n- [Embeddings Google PaLM](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsgooglepalm/)\n- [Embeddings Hugging Face Inference](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingshuggingfaceinference/)\n- [Embeddings Mistral Cloud](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsmistralcloud/)\n- [Embeddings Ollama](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsollama/)\n- [Embeddings OpenAI](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsopenai/)\n\nLearn more about [Text embeddings in LangChain](https://js.langchain.com/docs/concepts/embedding_models/).\n\n#### Miscellaneous\n\n- [Chat Memory Manager](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorymanager/)\n",
5067
+ "excerpt": "# LangChain concepts in n8n This page explains how LangChain concepts and features map to n8n nodes. This page includes lists of the LangChain-focused nodes in n8n. You can use any n8n node in a workflow where you interact with LangChain, to link LangChain to other services. The LangChain features uses n8n's [Cluster nodes](../../../integrations/builtin/cluster-nodes/). n8n implements LangChain JS This feature is n8n's implementation of [LangChain's JavaScript framework](https://js.langchain...",
5068
+ "sections": [
5069
+ {
5070
+ "title": "LangChain concepts in n8n",
5071
+ "level": 1,
5072
+ "content": "This page explains how LangChain concepts and features map to n8n nodes.\n\nThis page includes lists of the LangChain-focused nodes in n8n. You can use any n8n node in a workflow where you interact with LangChain, to link LangChain to other services. The LangChain features uses n8n's [Cluster nodes](../../../integrations/builtin/cluster-nodes/).\n\nn8n implements LangChain JS\n\nThis feature is n8n's implementation of [LangChain's JavaScript framework](https://js.langchain.com/docs/get_started/introduction)."
5073
+ }
5074
+ ]
5075
+ },
5076
+ "metadata": {
5077
+ "keywords": [
5078
+ "langchain",
5079
+ "concepts",
5080
+ "trigger",
5081
+ "nodes",
5082
+ "cluster",
5083
+ "root",
5084
+ "chains",
5085
+ "agents",
5086
+ "vector",
5087
+ "stores",
5088
+ "miscellaneous",
5089
+ "document",
5090
+ "loaders",
5091
+ "language",
5092
+ "models",
5093
+ "memory",
5094
+ "output",
5095
+ "parsers",
5096
+ "retrievers",
5097
+ "text",
5098
+ "splitters",
5099
+ "tools",
5100
+ "embeddings"
5101
+ ],
5102
+ "useCases": [],
5103
+ "operations": [],
5104
+ "codeExamples": 0,
4874
5105
  "complexity": "intermediate",
4875
5106
  "readingTime": "4 min",
4876
5107
  "contentLength": 10758,
4877
5108
  "relatedPages": []
4878
5109
  },
4879
5110
  "searchIndex": {
4880
- "fullText": "populate a pinecone vector database from a website # langchain concepts in n8n\n\nthis page explains how langchain concepts and features map to n8n nodes.\n\nthis page includes lists of the langchain-focused nodes in n8n. you can use any n8n node in a workflow where you interact with langchain, to link langchain to other services. the langchain features uses n8n's [cluster nodes](../../../integrations/builtin/cluster-nodes/).\n\nn8n implements langchain js\n\nthis feature is n8n's implementation of [langchain's javascript framework](https://js.langchain.com/docs/get_started/introduction).\n\n## trigger nodes\n\n[chat trigger](../../../integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/)\n\n## cluster nodes\n\n[cluster nodes](../../../glossary/#cluster-node-n8n) are node groups that work together to provide functionality in an n8n workflow. instead of using a single node, you use a [root node](../../../glossary/#root-node-n8n) and one or more [sub-nodes](../../../glossary/#sub-node-n8n) that extend the functionality of the node.\n\n### root nodes\n\neach cluster starts with one [root node](../../../glossary/#root-node-n8n).\n\n#### chains\n\na [chain](../../../glossary/#ai-chain) is a series of llms, and related tools, linked together to support functionality that can't be provided by a single llm alone.\n\navailable nodes:\n\n- [basic llm chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/)\n- [retrieval q&a chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainretrievalqa/)\n- [summarization chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainsummarization/)\n- [sentiment analysis](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.sentimentanalysis/)\n- [text classifier](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.text-classifier/)\n\nlearn more about [chaining in langchain](https://js.langchain.com/docs/concepts/lcel).\n\n#### agents\n\n> an [agent](../../../glossary/#ai-agent) has access to a suite of tools, and determines which ones to use depending on the user input. agents can use multiple tools, and use the output of one tool as the input to the next. [source](https://github.com/langchain-ai/langchainjs/blob/def3a26c054575e1ed40b9062087e8c0a8899633/docs/core_docs/docs/modules/agents/index.mdx)\n\navailable nodes:\n\n- [agent](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/)\n\nlearn more about [agents in langchain](https://js.langchain.com/docs/concepts/agents).\n\n#### vector stores\n\n[vector stores](../../../glossary/#ai-vector-store) store embedded data, and perform vector searches on it.\n\n- [simple vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreinmemory/)\n- [pgvector vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepgvector/)\n- [pinecone vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/)\n- [qdrant vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdrant/)\n- [supabase vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoresupabase/)\n- [zep vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorezep/)\n\nlearn more about [vector stores in langchain](https://js.langchain.com/docs/concepts/vectorstores/).\n\n#### miscellaneous\n\nutility nodes.\n\n[langchain code](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.code/): import langchain. this means if there is functionality you need that n8n hasn't created a node for, you can still use it.\n\n### sub-nodes\n\neach root node can have one or more [sub-nodes](../../../glossary/#sub-node-n8n) attached to it.\n\n#### document loaders\n\ndocument loaders add data to your chain as documents. the data source can be a file or web service.\n\navailable nodes:\n\n- [default document loader](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/)\n- [github document loader](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentgithubloader/)\n\nlearn more about [document loaders in langchain](https://js.langchain.com/docs/concepts/document_loaders).\n\n#### language models\n\n[llms (large language models)](../../../glossary/#large-language-model-llm) are programs that analyze datasets. they're the key element of working with ai.\n\navailable nodes:\n\n- [anthropic chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/)\n- [aws bedrock chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatawsbedrock/)\n- [cohere model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmcohere/)\n- [hugging face inference model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmopenhuggingfaceinference/)\n- [mistral cloud chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatmistralcloud/)\n- [ollama chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatollama/)\n- [ollama model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmollama/)\n- [openai chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/)\n\nlearn more about [language models in langchain](https://js.langchain.com/docs/concepts/chat_models).\n\n#### memory\n\n[memory](../../../glossary/#ai-memory) retains information about previous queries in a series of queries. for example, when a user interacts with a chat model, it's useful if your application can remember and call on the full conversation, not just the most recent query entered by the user.\n\navailable nodes:\n\n- [motorhead](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorymotorhead/)\n- [redis chat memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryredischat/)\n- [postgres chat memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorypostgreschat/)\n- [simple memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/)\n- [xata](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryxata/)\n- [zep](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryzep/)\n\nlearn more about [memory in langchain](https://langchain-ai.github.io/langgraphjs/concepts/memory/).\n\n#### output parsers\n\noutput parsers take the text generated by an llm and format it to match the structure you require.\n\navailable nodes:\n\n- [auto-fixing output parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserautofixing/)\n- [item list output parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparseritemlist/)\n- [structured output parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/)\n\nlearn more about [output parsers in langchain](https://js.langchain.com/docs/concepts/output_parsers/).\n\n#### retrievers\n\n- [contextual compression retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievercontextualcompression/)\n- [multiquery retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievermultiquery/)\n- [vector store retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievervectorstore/)\n- [workflow retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrieverworkflow/)\n\n#### text splitters\n\ntext splitters break down data (documents), making it easier for the llm to process the information and return accurate results.\n\navailable nodes:\n\n- [character text splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplittercharactertextsplitter/)\n- [recursive character text splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter/)\n- [token splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplittertokensplitter/)\n\nn8n's text splitter nodes implements parts of [langchain's text_splitter api](https://js.langchain.com/docs/concepts/text_splitters/).\n\n#### tools\n\nutility [tools](../../../glossary/#ai-tool).\n\n- [calculator](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/)\n- [code tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/)\n- [serpapi](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolserpapi/)\n- [think tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolthink/)\n- [vector store tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolvectorstore/)\n- [wikipedia](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwikipedia/)\n- [wolfram|alpha](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwolframalpha/)\n- [workflow tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolworkflow/)\n\n#### embeddings\n\n> [embeddings](../../../glossary/#ai-embedding) capture the \"relatedness\" of text, images, video, or other types of information. ([source](https://supabase.com/docs/guides/ai/concepts))\n\navailable nodes:\n\n- [embeddings aws bedrock](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsawsbedrock/)\n- [embeddings cohere](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingscohere/)\n- [embeddings google palm](../../../integrations/builtin/clus",
5111
+ "fullText": "langchain concepts in n8n # langchain concepts in n8n\n\nthis page explains how langchain concepts and features map to n8n nodes.\n\nthis page includes lists of the langchain-focused nodes in n8n. you can use any n8n node in a workflow where you interact with langchain, to link langchain to other services. the langchain features uses n8n's [cluster nodes](../../../integrations/builtin/cluster-nodes/).\n\nn8n implements langchain js\n\nthis feature is n8n's implementation of [langchain's javascript framework](https://js.langchain.com/docs/get_started/introduction).\n\n## trigger nodes\n\n[chat trigger](../../../integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/)\n\n## cluster nodes\n\n[cluster nodes](../../../glossary/#cluster-node-n8n) are node groups that work together to provide functionality in an n8n workflow. instead of using a single node, you use a [root node](../../../glossary/#root-node-n8n) and one or more [sub-nodes](../../../glossary/#sub-node-n8n) that extend the functionality of the node.\n\n### root nodes\n\neach cluster starts with one [root node](../../../glossary/#root-node-n8n).\n\n#### chains\n\na [chain](../../../glossary/#ai-chain) is a series of llms, and related tools, linked together to support functionality that can't be provided by a single llm alone.\n\navailable nodes:\n\n- [basic llm chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/)\n- [retrieval q&a chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainretrievalqa/)\n- [summarization chain](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainsummarization/)\n- [sentiment analysis](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.sentimentanalysis/)\n- [text classifier](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.text-classifier/)\n\nlearn more about [chaining in langchain](https://js.langchain.com/docs/concepts/lcel).\n\n#### agents\n\n> an [agent](../../../glossary/#ai-agent) has access to a suite of tools, and determines which ones to use depending on the user input. agents can use multiple tools, and use the output of one tool as the input to the next. [source](https://github.com/langchain-ai/langchainjs/blob/def3a26c054575e1ed40b9062087e8c0a8899633/docs/core_docs/docs/modules/agents/index.mdx)\n\navailable nodes:\n\n- [agent](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/)\n\nlearn more about [agents in langchain](https://js.langchain.com/docs/concepts/agents).\n\n#### vector stores\n\n[vector stores](../../../glossary/#ai-vector-store) store embedded data, and perform vector searches on it.\n\n- [simple vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreinmemory/)\n- [pgvector vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepgvector/)\n- [pinecone vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorepinecone/)\n- [qdrant vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdrant/)\n- [supabase vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoresupabase/)\n- [zep vector store](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstorezep/)\n\nlearn more about [vector stores in langchain](https://js.langchain.com/docs/concepts/vectorstores/).\n\n#### miscellaneous\n\nutility nodes.\n\n[langchain code](../../../integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.code/): import langchain. this means if there is functionality you need that n8n hasn't created a node for, you can still use it.\n\n### sub-nodes\n\neach root node can have one or more [sub-nodes](../../../glossary/#sub-node-n8n) attached to it.\n\n#### document loaders\n\ndocument loaders add data to your chain as documents. the data source can be a file or web service.\n\navailable nodes:\n\n- [default document loader](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentdefaultdataloader/)\n- [github document loader](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.documentgithubloader/)\n\nlearn more about [document loaders in langchain](https://js.langchain.com/docs/concepts/document_loaders).\n\n#### language models\n\n[llms (large language models)](../../../glossary/#large-language-model-llm) are programs that analyze datasets. they're the key element of working with ai.\n\navailable nodes:\n\n- [anthropic chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatanthropic/)\n- [aws bedrock chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatawsbedrock/)\n- [cohere model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmcohere/)\n- [hugging face inference model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmopenhuggingfaceinference/)\n- [mistral cloud chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatmistralcloud/)\n- [ollama chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatollama/)\n- [ollama model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmollama/)\n- [openai chat model](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/)\n\nlearn more about [language models in langchain](https://js.langchain.com/docs/concepts/chat_models).\n\n#### memory\n\n[memory](../../../glossary/#ai-memory) retains information about previous queries in a series of queries. for example, when a user interacts with a chat model, it's useful if your application can remember and call on the full conversation, not just the most recent query entered by the user.\n\navailable nodes:\n\n- [motorhead](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorymotorhead/)\n- [redis chat memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryredischat/)\n- [postgres chat memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorypostgreschat/)\n- [simple memory](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/)\n- [xata](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryxata/)\n- [zep](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memoryzep/)\n\nlearn more about [memory in langchain](https://langchain-ai.github.io/langgraphjs/concepts/memory/).\n\n#### output parsers\n\noutput parsers take the text generated by an llm and format it to match the structure you require.\n\navailable nodes:\n\n- [auto-fixing output parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserautofixing/)\n- [item list output parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparseritemlist/)\n- [structured output parser](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/)\n\nlearn more about [output parsers in langchain](https://js.langchain.com/docs/concepts/output_parsers/).\n\n#### retrievers\n\n- [contextual compression retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievercontextualcompression/)\n- [multiquery retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievermultiquery/)\n- [vector store retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievervectorstore/)\n- [workflow retriever](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrieverworkflow/)\n\n#### text splitters\n\ntext splitters break down data (documents), making it easier for the llm to process the information and return accurate results.\n\navailable nodes:\n\n- [character text splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplittercharactertextsplitter/)\n- [recursive character text splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter/)\n- [token splitter](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplittertokensplitter/)\n\nn8n's text splitter nodes implements parts of [langchain's text_splitter api](https://js.langchain.com/docs/concepts/text_splitters/).\n\n#### tools\n\nutility [tools](../../../glossary/#ai-tool).\n\n- [calculator](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/)\n- [code tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/)\n- [serpapi](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolserpapi/)\n- [think tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolthink/)\n- [vector store tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolvectorstore/)\n- [wikipedia](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwikipedia/)\n- [wolfram|alpha](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwolframalpha/)\n- [workflow tool](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolworkflow/)\n\n#### embeddings\n\n> [embeddings](../../../glossary/#ai-embedding) capture the \"relatedness\" of text, images, video, or other types of information. ([source](https://supabase.com/docs/guides/ai/concepts))\n\navailable nodes:\n\n- [embeddings aws bedrock](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingsawsbedrock/)\n- [embeddings cohere](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.embeddingscohere/)\n- [embeddings google palm](../../../integrations/builtin/cluster-nodes/sub-nodes/n8n-n",
4881
5112
  "importantTerms": [
4882
5113
  "nodes",
4883
5114
  "langchain",
@@ -4885,9 +5116,9 @@
4885
5116
  "integrations",
4886
5117
  "builtin",
4887
5118
  "root",
4888
- "vector",
4889
5119
  "concepts",
4890
5120
  "node",
5121
+ "vector",
4891
5122
  "https",
4892
5123
  "docs",
4893
5124
  "glossary",
@@ -18552,13 +18783,13 @@
18552
18783
  "nodeName": null,
18553
18784
  "nodeType": null,
18554
18785
  "content": {
18555
- "markdown": "# OpenTelemetry tracing\n\nThis feature is still under development - Initially available from 2.19.0\n\nAgent telemetry and open telemetry formatted metrics will be coming soon\n\nn8n can emit [OpenTelemetry](https://opentelemetry.io/) traces for workflow and node executions. Use these traces to monitor execution latency, debug failures, and track requests across services in your observability stack.\n\nFeature availability\n\nOpenTelemetry workflow tracing requires environment variables to be set, so it's available on self-hosted n8n only.\n\n## What you get\n\nWhen you turn on tracing, n8n exports two kinds of spans for each execution:\n\n- **`workflow.execute`**: One span per workflow execution. It records the workflow ID, name, version, node count, execution mode, status, and any error type.\n- **`node.execute`**: One span per node execution, nested inside its workflow span. It records the node ID, name, type, version, and the number of input and output items.\n\nEach span includes resource attributes that identify the n8n instance:\n\n- `service.name` (default `n8n`)\n- `service.version` (the n8n version)\n- `n8n.instance.id`\n- `n8n.instance.role` (for example, `main`, `worker`, or `webhook`)\n\nn8n also handles trace context propagation:\n\n- **Inbound**: If a webhook request includes a [W3C `traceparent` header](https://www.w3.org/TR/trace-context/), n8n uses it as the parent for the workflow span. This links the n8n workflow trace to the upstream caller.\n- **Outbound**: HTTP Request nodes (and other nodes that use the n8n HTTP helpers) can inject a `traceparent` header into outbound requests. Downstream services that support W3C trace context can therefore continue the trace.\n- **Sub-workflows**: A sub-workflow's span uses the parent workflow's span as its parent.\n- **Resumed workflows**: When a workflow resumes after a wait, the new span links back to the previous span using a span link.\n\n## Enable tracing\n\nSet the following environment variables on each n8n instance you want workflow tracing enabled (main, workers, and webhook processors):\n\n```\nexport N8N_OTEL_ENABLED=true\nexport N8N_OTEL_EXPORTER_OTLP_ENDPOINT=http://<your-collector-host>:4318\n```\n\nRestart n8n. The instance starts exporting spans over OTLP HTTP using the Protobuf encoding.\n\nn8n appends `/v1/traces` to the endpoint by default. Point `N8N_OTEL_EXPORTER_OTLP_ENDPOINT` at the base URL of your collector, not the traces path.\n\nIf your collector needs authentication, set `N8N_OTEL_EXPORTER_OTLP_HEADERS` to a comma-separated list of `key=value` pairs:\n\n```\nexport N8N_OTEL_EXPORTER_OTLP_HEADERS=\"authorization=Bearer <your-token>,x-tenant=acme\"\n\n// For added protection - It is recommended to use the `_FILE` postfix if you are putting a token in here:\nexport N8N_OTEL_EXPORTER_OTLP_HEADERS_FILE=/mnt/otel-headers\n```\n\nFor the full list of supported variables, refer to [OpenTelemetry environment variables](../../configuration/environment-variables/opentelemetry/).\n\nQueue mode\n\nIn [queue mode](../../scaling/queue-mode/), set the OpenTelemetry variables on the main, worker, and webhook instances. Trace context is propagated between main, worker and webhook instances.\n\n## Sampling\n\nBy default, n8n exports every trace. To reduce volume in busy instances, set `N8N_OTEL_TRACES_SAMPLE_RATE` to a value between `0` and `1`:\n\n```\n# Export 10% of traces\nexport N8N_OTEL_TRACES_SAMPLE_RATE=0.1\n```\n\nn8n uses a trace ID ratio sampler, so the same trace ID is either fully sampled or fully dropped across all spans in the trace.\n\nn8n will output a trace for every workflow execution - this includes published workflows, unpublished workflows and test executions - In a future release a toggle will be available to track only published workflows\n\n## Reduce span volume\n\nEach node in a workflow produces its own span. For workflows with lots of nodes, this can produce more data than you need. To export only workflow-level spans, set:\n\n```\nexport N8N_OTEL_TRACES_INCLUDE_NODE_SPANS=false\n```\n\nTo stop n8n from injecting `traceparent` headers into outbound HTTP requests, set:\n\n```\nexport N8N_OTEL_TRACES_INJECT_OUTBOUND=false\n```\n\n## Add custom attributes to node spans\n\nIf you're [building a custom node](../../../integrations/creating-nodes/overview/), you can attach custom key-value pairs to the node's span. Call `setMetadata` from the node's `execute` method:\n\n```\nasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\tthis.setMetadata({\n\t\ttracing: {\n\t\t\t'llm.model': 'gpt-4o',\n\t\t\t'llm.token.input': 1500,\n\t\t\t'llm.token.output': 340,\n\t\t},\n\t});\n\n\treturn [this.getInputData()];\n}\n```\n\nn8n prefixes each key with `n8n.node.custom.` on the exported span. Values must be strings, numbers, or boolean.\n\nThis API isn't available from the Code node. It's intended for node authors who want to enrich spans with domain-specific data.\n\n## Try it out with Jaeger\n\nYou can send traces to a local [Jaeger](https://www.jaegertracing.io/) instance to see them in action.\n\n1. Save the following as `docker-compose.yml`:\n\n```\nservices:\n jaeger:\n image: jaegertracing/jaeger:latest\n ports:\n - \"16686:16686\" # UI\n - \"4317:4317\" # OTLP gRPC\n - \"4318:4318\" # OTLP HTTP\n```\n\n2. Start Jaeger:\n\n```\ndocker compose up -d\n```\n\n3. Start n8n with tracing turned on and pointed at Jaeger. Information about [starting n8n](https://github.com/n8n-io/n8n/blob/master/CONTRIBUTING.md) can be found elsewhere in this documentation:\n\n```\nN8N_OTEL_ENABLED=true N8N_OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318 n8n start\n```\n\n5. Run a workflow, then open the Jaeger UI at <http://localhost:16686> - Select \"n8n\" as service\" and click \"Find traces\" to see the OpenTelemetry traces emitted by n8n.\n\n## Span attributes\n\nWorkflow and node spans include the following n8n-specific attributes.\n\n### Workflow span (`workflow.execute`)\n\n| Attribute | Description |\n| -------------------------- | ---------------------------------------------------------------------- |\n| `n8n.workflow.id` | Workflow ID. |\n| `n8n.workflow.name` | Workflow name. |\n| `n8n.workflow.version_id` | Workflow version ID. |\n| `n8n.workflow.node_count` | Number of nodes in the workflow. |\n| `n8n.execution.id` | Execution ID. |\n| `n8n.execution.mode` | Execution mode (for example, `manual`, `webhook`, `trigger`, `retry`). |\n| `n8n.execution.status` | Final execution status. |\n| `n8n.execution.is_retry` | `true` if the execution is a retry. |\n| `n8n.execution.retry_of` | The original execution ID, when the execution is a retry. |\n| `n8n.execution.error_type` | Error class name, set when the execution fails. |\n| `n8n.continuation.reason` | Set on a span link when the workflow resumes after a wait. |\n\n### Node span (`node.execute`)\n\n| Attribute | Description |\n| ----------------------------- | -------------------------------------------------------------------------------------- |\n| `n8n.node.id` | Node ID. |\n| `n8n.node.name` | Node name. |\n| `n8n.node.type` | Node type (for example, `n8n-nodes-base.httpRequest`). |\n| `n8n.node.type_version` | Node type version. |\n| `n8n.node.items.input` | Number of input items the node received. |\n| `n8n.node.items.output` | Number of output items the node produced. |\n| `n8n.node.termination_reason` | Why a node span ended without a normal completion (for example, `workflow_cancelled`). |\n| `n8n.node.custom.<key>` | Custom attributes set through `metadata.tracing` in the node output. |\n\nWhen a node fails, n8n records an `exception` event on the span with the standard OpenTelemetry exception attributes (`exception.type`, `exception.message`, `exception.stacktrace`).\n\n## Troubleshooting\n\n### No traces appear in your backend\n\nIf n8n can't reach the OTLP endpoint at startup, it logs an error:\n\n```\nFailed to connect to OpenTelemetry OTLP endpoint during startup\n```\n\nCheck that:\n\n- `N8N_OTEL_ENABLED` is set to `true`.\n- `N8N_OTEL_EXPORTER_OTLP_ENDPOINT` points at the base URL of the collector (not the `/v1/traces` path).\n- The collector is reachable from the n8n container or host.\n- Any required `N8N_OTEL_EXPORTER_OTLP_HEADERS` (such as authentication tokens) are set.\n\nn8n logs OpenTelemetry diagnostics at `warn` level by default. Set `N8N_LOG_LEVEL=debug` to see more detail.\n\n### Worker traces are missing parent context\n\nIn queue mode, workers read the parent trace context from the database. If you only set the OpenTelemetry environment variables on the main instance, worker spans won't link to the parent workflow trace. Set the same variables on every instance type.\n\n## Related resources\n\n- [OpenTelemetry environment variables](../../configuration/environment-variables/opentelemetry/)\n- [W3C Trace Context specification](https://www.w3.org/TR/trace-context/)\n- [OpenTelemetry Collector documentation](https://opentelemetry.io/docs/collector/)\n- [Logging in n8n](../logging/)\n- [Monitoring](../monitoring/)\n",
18556
- "excerpt": "# OpenTelemetry tracing This feature is still under development - Initially available from 2.19.0 Agent telemetry and open telemetry formatted metrics will be coming soon n8n can emit [OpenTelemetry](https://opentelemetry.io/) traces for workflow and node executions. Use these traces to monitor execution latency, debug failures, and track requests across services in your observability stack. Feature availability OpenTelemetry workflow tracing requires environment variables to be set, so it'...",
18786
+ "markdown": "# OpenTelemetry tracing\n\nThis feature is still under development\n\n- Initially available from 2.19.0\n- Open telemetry formatted metrics will be coming soon\n\nn8n can emit [OpenTelemetry](https://opentelemetry.io/) traces for workflow and node executions. Use these traces to monitor execution latency, debug failures, and track requests across services in your observability stack.\n\nFeature availability\n\nOpenTelemetry workflow tracing is only available on self-hosted n8n.\n\n## What you get\n\nWhen you turn on tracing, n8n exports two kinds of spans for each execution:\n\n- **`workflow.execute`**: One span per workflow execution. It records the workflow ID, name, version, node count, execution mode, status, and any error type.\n- **`node.execute`**: One span per node execution, nested inside its workflow span. It records the node ID, name, type, version, and the number of input and output items.\n\nEach span includes resource attributes that identify the n8n instance:\n\n- `service.name` (default `n8n`)\n- `service.version` (the n8n version)\n- `n8n.instance.id`\n- `n8n.instance.role` (for example, `main`, `worker`, or `webhook`)\n\nn8n also handles trace context propagation:\n\n- **Inbound**: If a webhook request includes a [W3C `traceparent` header](https://www.w3.org/TR/trace-context/), n8n uses it as the parent for the workflow span. This links the n8n workflow trace to the upstream caller.\n- **Outbound**: HTTP Request nodes (and other nodes that use the n8n HTTP helpers) can inject a `traceparent` header into outbound requests. Downstream services that support W3C trace context can therefore continue the trace.\n- **Sub-workflows**: A sub-workflow's span uses the parent workflow's span as its parent.\n- **Resumed workflows**: When a workflow resumes after a wait, the new span links back to the previous span using a span link.\n\n## Enable tracing\n\nSet the following environment variables on each n8n instance you want workflow tracing enabled (main, workers, and webhook processors):\n\n```\nexport N8N_OTEL_ENABLED=true\nexport N8N_OTEL_EXPORTER_OTLP_ENDPOINT=http://<your-collector-host>:4318\n```\n\nRestart n8n. The instance starts exporting spans over OTLP HTTP using the Protobuf encoding.\n\nn8n appends `/v1/traces` to the endpoint by default. Point `N8N_OTEL_EXPORTER_OTLP_ENDPOINT` at the base URL of your collector, not the traces path.\n\nIf your collector needs authentication, set `N8N_OTEL_EXPORTER_OTLP_HEADERS` to a comma-separated list of `key=value` pairs:\n\n```\nexport N8N_OTEL_EXPORTER_OTLP_HEADERS=\"authorization=Bearer <your-token>,x-tenant=acme\"\n\n// For added protection - It is recommended to use the `_FILE` postfix if you are putting a token in here:\nexport N8N_OTEL_EXPORTER_OTLP_HEADERS_FILE=/mnt/otel-headers\n```\n\nFor the full list of supported variables, refer to [OpenTelemetry environment variables](../../configuration/environment-variables/opentelemetry/).\n\nQueue mode\n\nIn [queue mode](../../scaling/queue-mode/), the OpenTelemetry variables must be set on all instances. Trace context is propagated between instances.\n\n## Sampling\n\nBy default, n8n exports every trace. To reduce volume in busy instances, set `N8N_OTEL_TRACES_SAMPLE_RATE` to a value between `0` and `1`:\n\n```\n# Export 10% of traces\nexport N8N_OTEL_TRACES_SAMPLE_RATE=0.1\n```\n\nn8n uses a trace ID ratio sampler, so the same trace ID is either fully sampled or fully dropped across all spans in the trace.\n\nn8n will output a trace for every workflow execution - this includes published workflows, unpublished workflows and test executions - In a future release a toggle will be available to track only published workflows\n\n## Reduce span volume\n\nEach node in a workflow produces its own span. For workflows with lots of nodes, this can produce more data than you need. To export only workflow-level spans, set:\n\n```\nexport N8N_OTEL_TRACES_INCLUDE_NODE_SPANS=false\n```\n\nTo stop n8n from injecting `traceparent` headers into outbound HTTP requests, set:\n\n```\nexport N8N_OTEL_TRACES_INJECT_OUTBOUND=false\n```\n\n## Add custom attributes to node spans\n\nIf you're [building a custom node](../../../integrations/creating-nodes/overview/), you can attach custom key-value pairs to the node's span. Call `setMetadata` from the node's `execute` method:\n\n```\nasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\tthis.setMetadata({\n\t\ttracing: {\n\t\t\t'llm.model': 'gpt-4o',\n\t\t\t'llm.token.input': 1500,\n\t\t\t'llm.token.output': 340,\n\t\t},\n\t});\n\n\treturn [this.getInputData()];\n}\n```\n\nn8n prefixes each key with `n8n.node.custom.` on the exported span. Values must be strings, numbers, or boolean.\n\nThis API isn't available from the Code node. It's intended for node authors who want to enrich spans with domain-specific data.\n\n## Try it out with Jaeger\n\nYou can send traces to a local [Jaeger](https://www.jaegertracing.io/) instance to see them in action.\n\n1. Save the following as `docker-compose.yml`:\n\n```\nservices:\n jaeger:\n image: jaegertracing/jaeger:latest\n ports:\n - \"16686:16686\" # UI\n - \"4317:4317\" # OTLP gRPC\n - \"4318:4318\" # OTLP HTTP\n```\n\n2. Start Jaeger:\n\n```\ndocker compose up -d\n```\n\n3. Start n8n with tracing turned on and pointed at Jaeger. Information about [starting n8n](https://github.com/n8n-io/n8n/blob/master/CONTRIBUTING.md) can be found elsewhere in this documentation:\n\n```\nN8N_OTEL_ENABLED=true N8N_OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318 n8n start\n```\n\n5. Run a workflow, then open the Jaeger UI at <http://localhost:16686> - Select \"n8n\" as service\" and click \"Find traces\" to see the OpenTelemetry traces emitted by n8n.\n\n## Span attributes\n\nWorkflow and node spans include the following n8n-specific attributes.\n\n### Workflow span (`workflow.execute`)\n\n| Attribute | Description |\n| -------------------------- | ---------------------------------------------------------------------- |\n| `n8n.workflow.id` | Workflow ID. |\n| `n8n.workflow.name` | Workflow name. |\n| `n8n.workflow.version_id` | Workflow version ID. |\n| `n8n.workflow.node_count` | Number of nodes in the workflow. |\n| `n8n.execution.id` | Execution ID. |\n| `n8n.execution.mode` | Execution mode (for example, `manual`, `webhook`, `trigger`, `retry`). |\n| `n8n.execution.status` | Final execution status. |\n| `n8n.execution.is_retry` | `true` if the execution is a retry. |\n| `n8n.execution.retry_of` | The original execution ID, when the execution is a retry. |\n| `n8n.execution.error_type` | Error class name, set when the execution fails. |\n| `n8n.continuation.reason` | Set on a span link when the workflow resumes after a wait. |\n\n### Node span (`node.execute`)\n\n| Attribute | Description |\n| ----------------------------- | -------------------------------------------------------------------------------------- |\n| `n8n.node.id` | Node ID. |\n| `n8n.node.name` | Node name. |\n| `n8n.node.type` | Node type (for example, `n8n-nodes-base.httpRequest`). |\n| `n8n.node.type_version` | Node type version. |\n| `n8n.node.items.input` | Number of input items the node received. |\n| `n8n.node.items.output` | Number of output items the node produced. |\n| `n8n.node.termination_reason` | Why a node span ended without a normal completion (for example, `workflow_cancelled`). |\n| `n8n.node.custom.<key>` | Custom attributes set through `metadata.tracing` in the node output. |\n\nWhen a node fails, n8n records an `exception` event on the span with the standard OpenTelemetry exception attributes (`exception.type`, `exception.message`, `exception.stacktrace`).\n\n## Troubleshooting\n\n### No traces appear in your backend\n\nIf n8n can't reach the OTLP endpoint at startup, it logs an error:\n\n```\nFailed to connect to OpenTelemetry OTLP endpoint during startup\n```\n\nCheck that:\n\n- `N8N_OTEL_ENABLED` is set to `true`.\n- `N8N_OTEL_EXPORTER_OTLP_ENDPOINT` points at the base URL of the collector (not the `/v1/traces` path).\n- The collector is reachable from the n8n container or host.\n- Any required `N8N_OTEL_EXPORTER_OTLP_HEADERS` (such as authentication tokens) are set.\n\nn8n logs OpenTelemetry diagnostics at `warn` level by default. Set `N8N_LOG_LEVEL=debug` to see more detail.\n\n### Worker traces are missing parent context\n\nIn queue mode, workers read the parent trace context from the database. If you only set the OpenTelemetry environment variables on the main instance, worker spans won't link to the parent workflow trace. Set the same variables on every instance type.\n\n## Related resources\n\n- [OpenTelemetry environment variables](../../configuration/environment-variables/opentelemetry/)\n- [W3C Trace Context specification](https://www.w3.org/TR/trace-context/)\n- [OpenTelemetry Collector documentation](https://opentelemetry.io/docs/collector/)\n- [Logging in n8n](../logging/)\n- [Monitoring](../monitoring/)\n",
18787
+ "excerpt": "# OpenTelemetry tracing This feature is still under development - Initially available from 2.19.0 - Open telemetry formatted metrics will be coming soon n8n can emit [OpenTelemetry](https://opentelemetry.io/) traces for workflow and node executions. Use these traces to monitor execution latency, debug failures, and track requests across services in your observability stack. Feature availability OpenTelemetry workflow tracing is only available on self-hosted n8n. ## What you get When you t...",
18557
18788
  "sections": [
18558
18789
  {
18559
18790
  "title": "OpenTelemetry tracing",
18560
18791
  "level": 1,
18561
- "content": "This feature is still under development - Initially available from 2.19.0\n\nAgent telemetry and open telemetry formatted metrics will be coming soon\n\nn8n can emit [OpenTelemetry](https://opentelemetry.io/) traces for workflow and node executions. Use these traces to monitor execution latency, debug failures, and track requests across services in your observability stack.\n\nFeature availability\n\nOpenTelemetry workflow tracing requires environment variables to be set, so it's available on self-hosted n8n only."
18792
+ "content": "This feature is still under development\n\n- Initially available from 2.19.0\n- Open telemetry formatted metrics will be coming soon\n\nn8n can emit [OpenTelemetry](https://opentelemetry.io/) traces for workflow and node executions. Use these traces to monitor execution latency, debug failures, and track requests across services in your observability stack.\n\nFeature availability\n\nOpenTelemetry workflow tracing is only available on self-hosted n8n."
18562
18793
  },
18563
18794
  {
18564
18795
  "title": "Export 10% of traces",
@@ -18605,11 +18836,11 @@
18605
18836
  "codeExamples": 10,
18606
18837
  "complexity": "intermediate",
18607
18838
  "readingTime": "6 min",
18608
- "contentLength": 9887,
18839
+ "contentLength": 9779,
18609
18840
  "relatedPages": []
18610
18841
  },
18611
18842
  "searchIndex": {
18612
- "fullText": "opentelemetry tracing # opentelemetry tracing\n\nthis feature is still under development - initially available from 2.19.0\n\nagent telemetry and open telemetry formatted metrics will be coming soon\n\nn8n can emit [opentelemetry](https://opentelemetry.io/) traces for workflow and node executions. use these traces to monitor execution latency, debug failures, and track requests across services in your observability stack.\n\nfeature availability\n\nopentelemetry workflow tracing requires environment variables to be set, so it's available on self-hosted n8n only.\n\n## what you get\n\nwhen you turn on tracing, n8n exports two kinds of spans for each execution:\n\n- **`workflow.execute`**: one span per workflow execution. it records the workflow id, name, version, node count, execution mode, status, and any error type.\n- **`node.execute`**: one span per node execution, nested inside its workflow span. it records the node id, name, type, version, and the number of input and output items.\n\neach span includes resource attributes that identify the n8n instance:\n\n- `service.name` (default `n8n`)\n- `service.version` (the n8n version)\n- `n8n.instance.id`\n- `n8n.instance.role` (for example, `main`, `worker`, or `webhook`)\n\nn8n also handles trace context propagation:\n\n- **inbound**: if a webhook request includes a [w3c `traceparent` header](https://www.w3.org/tr/trace-context/), n8n uses it as the parent for the workflow span. this links the n8n workflow trace to the upstream caller.\n- **outbound**: http request nodes (and other nodes that use the n8n http helpers) can inject a `traceparent` header into outbound requests. downstream services that support w3c trace context can therefore continue the trace.\n- **sub-workflows**: a sub-workflow's span uses the parent workflow's span as its parent.\n- **resumed workflows**: when a workflow resumes after a wait, the new span links back to the previous span using a span link.\n\n## enable tracing\n\nset the following environment variables on each n8n instance you want workflow tracing enabled (main, workers, and webhook processors):\n\n```\nexport n8n_otel_enabled=true\nexport n8n_otel_exporter_otlp_endpoint=http://<your-collector-host>:4318\n```\n\nrestart n8n. the instance starts exporting spans over otlp http using the protobuf encoding.\n\nn8n appends `/v1/traces` to the endpoint by default. point `n8n_otel_exporter_otlp_endpoint` at the base url of your collector, not the traces path.\n\nif your collector needs authentication, set `n8n_otel_exporter_otlp_headers` to a comma-separated list of `key=value` pairs:\n\n```\nexport n8n_otel_exporter_otlp_headers=\"authorization=bearer <your-token>,x-tenant=acme\"\n\n// for added protection - it is recommended to use the `_file` postfix if you are putting a token in here:\nexport n8n_otel_exporter_otlp_headers_file=/mnt/otel-headers\n```\n\nfor the full list of supported variables, refer to [opentelemetry environment variables](../../configuration/environment-variables/opentelemetry/).\n\nqueue mode\n\nin [queue mode](../../scaling/queue-mode/), set the opentelemetry variables on the main, worker, and webhook instances. trace context is propagated between main, worker and webhook instances.\n\n## sampling\n\nby default, n8n exports every trace. to reduce volume in busy instances, set `n8n_otel_traces_sample_rate` to a value between `0` and `1`:\n\n```\n# export 10% of traces\nexport n8n_otel_traces_sample_rate=0.1\n```\n\nn8n uses a trace id ratio sampler, so the same trace id is either fully sampled or fully dropped across all spans in the trace.\n\nn8n will output a trace for every workflow execution - this includes published workflows, unpublished workflows and test executions - in a future release a toggle will be available to track only published workflows\n\n## reduce span volume\n\neach node in a workflow produces its own span. for workflows with lots of nodes, this can produce more data than you need. to export only workflow-level spans, set:\n\n```\nexport n8n_otel_traces_include_node_spans=false\n```\n\nto stop n8n from injecting `traceparent` headers into outbound http requests, set:\n\n```\nexport n8n_otel_traces_inject_outbound=false\n```\n\n## add custom attributes to node spans\n\nif you're [building a custom node](../../../integrations/creating-nodes/overview/), you can attach custom key-value pairs to the node's span. call `setmetadata` from the node's `execute` method:\n\n```\nasync execute(this: iexecutefunctions): promise<inodeexecutiondata[][]> {\n\tthis.setmetadata({\n\t\ttracing: {\n\t\t\t'llm.model': 'gpt-4o',\n\t\t\t'llm.token.input': 1500,\n\t\t\t'llm.token.output': 340,\n\t\t},\n\t});\n\n\treturn [this.getinputdata()];\n}\n```\n\nn8n prefixes each key with `n8n.node.custom.` on the exported span. values must be strings, numbers, or boolean.\n\nthis api isn't available from the code node. it's intended for node authors who want to enrich spans with domain-specific data.\n\n## try it out with jaeger\n\nyou can send traces to a local [jaeger](https://www.jaegertracing.io/) instance to see them in action.\n\n1. save the following as `docker-compose.yml`:\n\n```\nservices:\n jaeger:\n image: jaegertracing/jaeger:latest\n ports:\n - \"16686:16686\" # ui\n - \"4317:4317\" # otlp grpc\n - \"4318:4318\" # otlp http\n```\n\n2. start jaeger:\n\n```\ndocker compose up -d\n```\n\n3. start n8n with tracing turned on and pointed at jaeger. information about [starting n8n](https://github.com/n8n-io/n8n/blob/master/contributing.md) can be found elsewhere in this documentation:\n\n```\nn8n_otel_enabled=true n8n_otel_exporter_otlp_endpoint=http://127.0.0.1:4318 n8n start\n```\n\n5. run a workflow, then open the jaeger ui at <http://localhost:16686> - select \"n8n\" as service\" and click \"find traces\" to see the opentelemetry traces emitted by n8n.\n\n## span attributes\n\nworkflow and node spans include the following n8n-specific attributes.\n\n### workflow span (`workflow.execute`)\n\n| attribute | description |\n| -------------------------- | ---------------------------------------------------------------------- |\n| `n8n.workflow.id` | workflow id. |\n| `n8n.workflow.name` | workflow name. |\n| `n8n.workflow.version_id` | workflow version id. |\n| `n8n.workflow.node_count` | number of nodes in the workflow. |\n| `n8n.execution.id` | execution id. |\n| `n8n.execution.mode` | execution mode (for example, `manual`, `webhook`, `trigger`, `retry`). |\n| `n8n.execution.status` | final execution status. |\n| `n8n.execution.is_retry` | `true` if the execution is a retry. |\n| `n8n.execution.retry_of` | the original execution id, when the execution is a retry. |\n| `n8n.execution.error_type` | error class name, set when the execution fails. |\n| `n8n.continuation.reason` | set on a span link when the workflow resumes after a wait. |\n\n### node span (`node.execute`)\n\n| attribute | description |\n| ----------------------------- | -------------------------------------------------------------------------------------- |\n| `n8n.node.id` | node id. |\n| `n8n.node.name` | node name. |\n| `n8n.node.type` | node type (for example, `n8n-nodes-base.httprequest`). |\n| `n8n.node.type_version` | node type version. |\n| `n8n.node.items.input` | number of input items the node received. |\n| `n8n.node.items.output` | number of output items the node produced. |\n| `n8n.node.termination_reason` | why a node span ended without a normal completion (for example, `workflow_cancelled`). |\n| `n8n.node.custom.<key>` | custom attributes set through `metadata.tracing` in the node output. |\n\nwhen a node fails, n8n records an `exception` event on the span with the standard opentelemetry exception attributes (`exception.type`, `exception.message`, `exception.stacktrace`).\n\n## troubleshooting\n\n### no traces appear in your backend\n\nif n8n can't reach the otlp endpoint at startup, it logs an error:\n\n```\nfailed to connect to opentelemetry otlp endpoint during startup\n```\n\ncheck that:\n\n- `n8n_otel_enabled` is set to `true`.\n- `n8n_otel_exporter_otlp_endpoint` points at the base url of the collector (not the `/v1/traces` path).\n- the collector is reachable from the n8n container or host.\n- any required `n8n_otel_exporter_otlp_headers` (such as authentication tokens) are set.\n\nn8n logs opentelemetry diagnostics at `warn` level by default. set `n8n_log_level=debug` to see more detail.\n\n### worker traces are missing parent context\n\nin queue mode, workers read the parent trace context from the database. if you only set the opentelemetry environment variables on the main instance, worker spans won't link to the parent workflow trace. set the same variables on every instance type.\n\n## related resources\n\n- [opentelemetry environment variables](../../configuration/environment-variables/opentelemetry/)\n- [w3c trace context specification](https://www.w3.org/tr/trace-context/)\n- [opentelemetry collector documentation](https://opentelemetry.io/docs/collector/)\n- [logging in n8n](../logging/)\n- [monitoring](../monitoring/)\n opentelemetry tracing export 10% of traces",
18843
+ "fullText": "opentelemetry tracing # opentelemetry tracing\n\nthis feature is still under development\n\n- initially available from 2.19.0\n- open telemetry formatted metrics will be coming soon\n\nn8n can emit [opentelemetry](https://opentelemetry.io/) traces for workflow and node executions. use these traces to monitor execution latency, debug failures, and track requests across services in your observability stack.\n\nfeature availability\n\nopentelemetry workflow tracing is only available on self-hosted n8n.\n\n## what you get\n\nwhen you turn on tracing, n8n exports two kinds of spans for each execution:\n\n- **`workflow.execute`**: one span per workflow execution. it records the workflow id, name, version, node count, execution mode, status, and any error type.\n- **`node.execute`**: one span per node execution, nested inside its workflow span. it records the node id, name, type, version, and the number of input and output items.\n\neach span includes resource attributes that identify the n8n instance:\n\n- `service.name` (default `n8n`)\n- `service.version` (the n8n version)\n- `n8n.instance.id`\n- `n8n.instance.role` (for example, `main`, `worker`, or `webhook`)\n\nn8n also handles trace context propagation:\n\n- **inbound**: if a webhook request includes a [w3c `traceparent` header](https://www.w3.org/tr/trace-context/), n8n uses it as the parent for the workflow span. this links the n8n workflow trace to the upstream caller.\n- **outbound**: http request nodes (and other nodes that use the n8n http helpers) can inject a `traceparent` header into outbound requests. downstream services that support w3c trace context can therefore continue the trace.\n- **sub-workflows**: a sub-workflow's span uses the parent workflow's span as its parent.\n- **resumed workflows**: when a workflow resumes after a wait, the new span links back to the previous span using a span link.\n\n## enable tracing\n\nset the following environment variables on each n8n instance you want workflow tracing enabled (main, workers, and webhook processors):\n\n```\nexport n8n_otel_enabled=true\nexport n8n_otel_exporter_otlp_endpoint=http://<your-collector-host>:4318\n```\n\nrestart n8n. the instance starts exporting spans over otlp http using the protobuf encoding.\n\nn8n appends `/v1/traces` to the endpoint by default. point `n8n_otel_exporter_otlp_endpoint` at the base url of your collector, not the traces path.\n\nif your collector needs authentication, set `n8n_otel_exporter_otlp_headers` to a comma-separated list of `key=value` pairs:\n\n```\nexport n8n_otel_exporter_otlp_headers=\"authorization=bearer <your-token>,x-tenant=acme\"\n\n// for added protection - it is recommended to use the `_file` postfix if you are putting a token in here:\nexport n8n_otel_exporter_otlp_headers_file=/mnt/otel-headers\n```\n\nfor the full list of supported variables, refer to [opentelemetry environment variables](../../configuration/environment-variables/opentelemetry/).\n\nqueue mode\n\nin [queue mode](../../scaling/queue-mode/), the opentelemetry variables must be set on all instances. trace context is propagated between instances.\n\n## sampling\n\nby default, n8n exports every trace. to reduce volume in busy instances, set `n8n_otel_traces_sample_rate` to a value between `0` and `1`:\n\n```\n# export 10% of traces\nexport n8n_otel_traces_sample_rate=0.1\n```\n\nn8n uses a trace id ratio sampler, so the same trace id is either fully sampled or fully dropped across all spans in the trace.\n\nn8n will output a trace for every workflow execution - this includes published workflows, unpublished workflows and test executions - in a future release a toggle will be available to track only published workflows\n\n## reduce span volume\n\neach node in a workflow produces its own span. for workflows with lots of nodes, this can produce more data than you need. to export only workflow-level spans, set:\n\n```\nexport n8n_otel_traces_include_node_spans=false\n```\n\nto stop n8n from injecting `traceparent` headers into outbound http requests, set:\n\n```\nexport n8n_otel_traces_inject_outbound=false\n```\n\n## add custom attributes to node spans\n\nif you're [building a custom node](../../../integrations/creating-nodes/overview/), you can attach custom key-value pairs to the node's span. call `setmetadata` from the node's `execute` method:\n\n```\nasync execute(this: iexecutefunctions): promise<inodeexecutiondata[][]> {\n\tthis.setmetadata({\n\t\ttracing: {\n\t\t\t'llm.model': 'gpt-4o',\n\t\t\t'llm.token.input': 1500,\n\t\t\t'llm.token.output': 340,\n\t\t},\n\t});\n\n\treturn [this.getinputdata()];\n}\n```\n\nn8n prefixes each key with `n8n.node.custom.` on the exported span. values must be strings, numbers, or boolean.\n\nthis api isn't available from the code node. it's intended for node authors who want to enrich spans with domain-specific data.\n\n## try it out with jaeger\n\nyou can send traces to a local [jaeger](https://www.jaegertracing.io/) instance to see them in action.\n\n1. save the following as `docker-compose.yml`:\n\n```\nservices:\n jaeger:\n image: jaegertracing/jaeger:latest\n ports:\n - \"16686:16686\" # ui\n - \"4317:4317\" # otlp grpc\n - \"4318:4318\" # otlp http\n```\n\n2. start jaeger:\n\n```\ndocker compose up -d\n```\n\n3. start n8n with tracing turned on and pointed at jaeger. information about [starting n8n](https://github.com/n8n-io/n8n/blob/master/contributing.md) can be found elsewhere in this documentation:\n\n```\nn8n_otel_enabled=true n8n_otel_exporter_otlp_endpoint=http://127.0.0.1:4318 n8n start\n```\n\n5. run a workflow, then open the jaeger ui at <http://localhost:16686> - select \"n8n\" as service\" and click \"find traces\" to see the opentelemetry traces emitted by n8n.\n\n## span attributes\n\nworkflow and node spans include the following n8n-specific attributes.\n\n### workflow span (`workflow.execute`)\n\n| attribute | description |\n| -------------------------- | ---------------------------------------------------------------------- |\n| `n8n.workflow.id` | workflow id. |\n| `n8n.workflow.name` | workflow name. |\n| `n8n.workflow.version_id` | workflow version id. |\n| `n8n.workflow.node_count` | number of nodes in the workflow. |\n| `n8n.execution.id` | execution id. |\n| `n8n.execution.mode` | execution mode (for example, `manual`, `webhook`, `trigger`, `retry`). |\n| `n8n.execution.status` | final execution status. |\n| `n8n.execution.is_retry` | `true` if the execution is a retry. |\n| `n8n.execution.retry_of` | the original execution id, when the execution is a retry. |\n| `n8n.execution.error_type` | error class name, set when the execution fails. |\n| `n8n.continuation.reason` | set on a span link when the workflow resumes after a wait. |\n\n### node span (`node.execute`)\n\n| attribute | description |\n| ----------------------------- | -------------------------------------------------------------------------------------- |\n| `n8n.node.id` | node id. |\n| `n8n.node.name` | node name. |\n| `n8n.node.type` | node type (for example, `n8n-nodes-base.httprequest`). |\n| `n8n.node.type_version` | node type version. |\n| `n8n.node.items.input` | number of input items the node received. |\n| `n8n.node.items.output` | number of output items the node produced. |\n| `n8n.node.termination_reason` | why a node span ended without a normal completion (for example, `workflow_cancelled`). |\n| `n8n.node.custom.<key>` | custom attributes set through `metadata.tracing` in the node output. |\n\nwhen a node fails, n8n records an `exception` event on the span with the standard opentelemetry exception attributes (`exception.type`, `exception.message`, `exception.stacktrace`).\n\n## troubleshooting\n\n### no traces appear in your backend\n\nif n8n can't reach the otlp endpoint at startup, it logs an error:\n\n```\nfailed to connect to opentelemetry otlp endpoint during startup\n```\n\ncheck that:\n\n- `n8n_otel_enabled` is set to `true`.\n- `n8n_otel_exporter_otlp_endpoint` points at the base url of the collector (not the `/v1/traces` path).\n- the collector is reachable from the n8n container or host.\n- any required `n8n_otel_exporter_otlp_headers` (such as authentication tokens) are set.\n\nn8n logs opentelemetry diagnostics at `warn` level by default. set `n8n_log_level=debug` to see more detail.\n\n### worker traces are missing parent context\n\nin queue mode, workers read the parent trace context from the database. if you only set the opentelemetry environment variables on the main instance, worker spans won't link to the parent workflow trace. set the same variables on every instance type.\n\n## related resources\n\n- [opentelemetry environment variables](../../configuration/environment-variables/opentelemetry/)\n- [w3c trace context specification](https://www.w3.org/tr/trace-context/)\n- [opentelemetry collector documentation](https://opentelemetry.io/docs/collector/)\n- [logging in n8n](../logging/)\n- [monitoring](../monitoring/)\n opentelemetry tracing export 10% of traces",
18613
18844
  "importantTerms": [
18614
18845
  "node",
18615
18846
  "workflow",
@@ -18619,15 +18850,14 @@
18619
18850
  "trace",
18620
18851
  "traces",
18621
18852
  "tracing",
18622
- "variables",
18623
18853
  "export",
18624
18854
  "this",
18855
+ "variables",
18625
18856
  "spans",
18626
18857
  "name",
18627
18858
  "instance",
18628
18859
  "context",
18629
18860
  "http",
18630
- "environment",
18631
18861
  "mode",
18632
18862
  "type",
18633
18863
  "collector",
@@ -18640,16 +18870,14 @@
18640
18870
  "version",
18641
18871
  "output",
18642
18872
  "attributes",
18643
- "webhook",
18644
18873
  "parent",
18645
18874
  "nodes",
18646
18875
  "workflows",
18876
+ "environment",
18647
18877
  "with",
18648
18878
  "custom",
18649
18879
  "each",
18650
18880
  "items",
18651
- "main",
18652
- "worker",
18653
18881
  "otlp",
18654
18882
  "exception",
18655
18883
  "available",
@@ -18659,8 +18887,11 @@
18659
18887
  "that",
18660
18888
  "default",
18661
18889
  "example",
18890
+ "webhook",
18662
18891
  "true",
18663
- "token"
18892
+ "token",
18893
+ "queue",
18894
+ "will"
18664
18895
  ]
18665
18896
  }
18666
18897
  },
@@ -94034,7 +94265,7 @@
94034
94265
  "page-0028",
94035
94266
  "page-0029",
94036
94267
  "page-0030",
94037
- "page-0037",
94268
+ "page-0038",
94038
94269
  "page-0053",
94039
94270
  "page-0147",
94040
94271
  "page-0558",
@@ -95137,6 +95368,7 @@
95137
95368
  "page-0003",
95138
95369
  "page-0008",
95139
95370
  "page-0013",
95371
+ "page-0040",
95140
95372
  "page-0044",
95141
95373
  "page-0051",
95142
95374
  "page-0073",
@@ -95580,7 +95812,7 @@
95580
95812
  "from": [
95581
95813
  "page-0003",
95582
95814
  "page-0015",
95583
- "page-0037",
95815
+ "page-0038",
95584
95816
  "page-0043",
95585
95817
  "page-0044",
95586
95818
  "page-0050",
@@ -96024,6 +96256,7 @@
96024
96256
  "page-0020",
96025
96257
  "page-0026",
96026
96258
  "page-0035",
96259
+ "page-0037",
96027
96260
  "page-0541",
96028
96261
  "page-0558",
96029
96262
  "page-0559",
@@ -96484,6 +96717,7 @@
96484
96717
  "page-0003",
96485
96718
  "page-0006",
96486
96719
  "page-0034",
96720
+ "page-0040",
96487
96721
  "page-0209",
96488
96722
  "page-0215",
96489
96723
  "page-0220",
@@ -97500,7 +97734,7 @@
97500
97734
  "page-0028",
97501
97735
  "page-0029",
97502
97736
  "page-0030",
97503
- "page-0037",
97737
+ "page-0038",
97504
97738
  "page-0043",
97505
97739
  "page-0047",
97506
97740
  "page-0049",
@@ -98064,7 +98298,8 @@
98064
98298
  "page-0006",
98065
98299
  "page-0022",
98066
98300
  "page-0036",
98067
- "page-0037",
98301
+ "page-0038",
98302
+ "page-0040",
98068
98303
  "page-0528",
98069
98304
  "page-0558",
98070
98305
  "page-0559",
@@ -98093,6 +98328,7 @@
98093
98328
  ],
98094
98329
  "cluster": [
98095
98330
  "page-0006",
98331
+ "page-0040",
98096
98332
  "page-0165",
98097
98333
  "page-0201",
98098
98334
  "page-0202",
@@ -98162,6 +98398,8 @@
98162
98398
  ],
98163
98399
  "langchain": [
98164
98400
  "page-0006",
98401
+ "page-0039",
98402
+ "page-0040",
98165
98403
  "page-0042",
98166
98404
  "page-0057",
98167
98405
  "page-0554",
@@ -98174,6 +98412,7 @@
98174
98412
  ],
98175
98413
  "language": [
98176
98414
  "page-0006",
98415
+ "page-0040",
98177
98416
  "page-0327",
98178
98417
  "page-0556",
98179
98418
  "page-0634",
@@ -98183,6 +98422,7 @@
98183
98422
  "model": [
98184
98423
  "page-0006",
98185
98424
  "page-0018",
98425
+ "page-0037",
98186
98426
  "page-0495",
98187
98427
  "page-0498",
98188
98428
  "page-0499",
@@ -98226,6 +98466,7 @@
98226
98466
  ],
98227
98467
  "root": [
98228
98468
  "page-0006",
98469
+ "page-0040",
98229
98470
  "page-0114",
98230
98471
  "page-0129",
98231
98472
  "page-0204",
@@ -98249,6 +98490,7 @@
98249
98490
  "page-0017",
98250
98491
  "page-0021",
98251
98492
  "page-0023",
98493
+ "page-0040",
98252
98494
  "page-0043",
98253
98495
  "page-0074",
98254
98496
  "page-0085",
@@ -98641,7 +98883,8 @@
98641
98883
  "page-1221"
98642
98884
  ],
98643
98885
  "learning": [
98644
- "page-0009"
98886
+ "page-0009",
98887
+ "page-0039"
98645
98888
  ],
98646
98889
  "path": [
98647
98890
  "page-0009",
@@ -98704,6 +98947,7 @@
98704
98947
  "page-0009",
98705
98948
  "page-0022",
98706
98949
  "page-0036",
98950
+ "page-0040",
98707
98951
  "page-0071",
98708
98952
  "page-0325",
98709
98953
  "page-0385",
@@ -99251,7 +99495,7 @@
99251
99495
  "page-0029",
99252
99496
  "page-0030",
99253
99497
  "page-0036",
99254
- "page-0037",
99498
+ "page-0038",
99255
99499
  "page-0052",
99256
99500
  "page-0110",
99257
99501
  "page-0111",
@@ -101193,6 +101437,7 @@
101193
101437
  "resources": [
101194
101438
  "page-0017",
101195
101439
  "page-0020",
101440
+ "page-0039",
101196
101441
  "page-0043",
101197
101442
  "page-0051",
101198
101443
  "page-0052",
@@ -101758,6 +102003,7 @@
101758
102003
  ],
101759
102004
  "templates": [
101760
102005
  "page-0017",
102006
+ "page-0037",
101761
102007
  "page-0063",
101762
102008
  "page-0161",
101763
102009
  "page-0242",
@@ -102272,6 +102518,7 @@
102272
102518
  "page-0022",
102273
102519
  "page-0027",
102274
102520
  "page-0032",
102521
+ "page-0040",
102275
102522
  "page-0653"
102276
102523
  ],
102277
102524
  "managing": [
@@ -102374,6 +102621,7 @@
102374
102621
  "tools": [
102375
102622
  "page-0020",
102376
102623
  "page-0035",
102624
+ "page-0040",
102377
102625
  "page-0043",
102378
102626
  "page-0044",
102379
102627
  "page-0205",
@@ -102521,6 +102769,7 @@
102521
102769
  "concepts": [
102522
102770
  "page-0021",
102523
102771
  "page-0031",
102772
+ "page-0040",
102524
102773
  "page-0053",
102525
102774
  "page-0209",
102526
102775
  "page-0714"
@@ -102802,7 +103051,8 @@
102802
103051
  ],
102803
103052
  "chains": [
102804
103053
  "page-0027",
102805
- "page-0033"
103054
+ "page-0033",
103055
+ "page-0040"
102806
103056
  ],
102807
103057
  "demonstration": [
102808
103058
  "page-0027"
@@ -102923,6 +103173,7 @@
102923
103173
  ],
102924
103174
  "examples": [
102925
103175
  "page-0031",
103176
+ "page-0037",
102926
103177
  "page-0043",
102927
103178
  "page-0050",
102928
103179
  "page-0060",
@@ -103416,25 +103667,211 @@
103416
103667
  ],
103417
103668
  "document": [
103418
103669
  "page-0036",
103670
+ "page-0040",
103419
103671
  "page-0522",
103420
103672
  "page-0523",
103421
103673
  "page-0538",
103422
103674
  "page-0583"
103423
103675
  ],
103424
103676
  "loaders": [
103425
- "page-0036"
103677
+ "page-0036",
103678
+ "page-0040"
103426
103679
  ],
103427
- "populate": [
103680
+ "specify": [
103681
+ "page-0037",
103682
+ "page-0160",
103683
+ "page-0169",
103684
+ "page-0292",
103685
+ "page-0428",
103686
+ "page-0465"
103687
+ ],
103688
+ "parameters": [
103689
+ "page-0037",
103690
+ "page-0044",
103691
+ "page-0070",
103692
+ "page-0074",
103693
+ "page-0161",
103694
+ "page-0309",
103695
+ "page-0364",
103696
+ "page-0392",
103697
+ "page-0483",
103698
+ "page-0506",
103699
+ "page-0524",
103700
+ "page-0528",
103701
+ "page-0529",
103702
+ "page-0530",
103703
+ "page-0538",
103704
+ "page-0540",
103705
+ "page-0544",
103706
+ "page-0552",
103707
+ "page-0553",
103708
+ "page-0554",
103709
+ "page-0555",
103710
+ "page-0556",
103711
+ "page-0557",
103712
+ "page-0558",
103713
+ "page-0559",
103714
+ "page-0560",
103715
+ "page-0561",
103716
+ "page-0562",
103717
+ "page-0563",
103718
+ "page-0564",
103719
+ "page-0565",
103720
+ "page-0566",
103721
+ "page-0567",
103722
+ "page-0568",
103723
+ "page-0569",
103724
+ "page-0572",
103725
+ "page-0573",
103726
+ "page-0574",
103727
+ "page-0575",
103728
+ "page-0576",
103729
+ "page-0577",
103730
+ "page-0578",
103731
+ "page-0582",
103732
+ "page-0583",
103733
+ "page-0584",
103734
+ "page-0586",
103735
+ "page-0587",
103736
+ "page-0588",
103737
+ "page-0589",
103738
+ "page-0590",
103739
+ "page-0591",
103740
+ "page-0592",
103741
+ "page-0593",
103742
+ "page-0596",
103743
+ "page-0597",
103744
+ "page-0598",
103745
+ "page-0599",
103746
+ "page-0600",
103747
+ "page-0601",
103748
+ "page-0602",
103749
+ "page-0603",
103750
+ "page-0604",
103751
+ "page-0605",
103752
+ "page-0606",
103753
+ "page-0608",
103754
+ "page-0609",
103755
+ "page-0610",
103756
+ "page-0612",
103757
+ "page-0613",
103758
+ "page-0614",
103759
+ "page-0615",
103760
+ "page-0616",
103761
+ "page-0617",
103762
+ "page-0618",
103763
+ "page-0619",
103764
+ "page-0620",
103765
+ "page-0621",
103766
+ "page-0624",
103767
+ "page-0627",
103768
+ "page-0628",
103769
+ "page-0629",
103770
+ "page-0630",
103771
+ "page-0631",
103772
+ "page-0632",
103773
+ "page-0634",
103774
+ "page-0636",
103775
+ "page-0640",
103776
+ "page-0643",
103777
+ "page-0644",
103778
+ "page-0645",
103779
+ "page-0646",
103780
+ "page-0647",
103781
+ "page-0648",
103782
+ "page-0649",
103783
+ "page-0650",
103784
+ "page-0652",
103785
+ "page-0653",
103786
+ "page-0655",
103787
+ "page-0656",
103788
+ "page-0657",
103789
+ "page-0658",
103790
+ "page-0659",
103791
+ "page-0661",
103792
+ "page-0663",
103793
+ "page-0664",
103794
+ "page-0665",
103795
+ "page-0668",
103796
+ "page-0669",
103797
+ "page-0672",
103798
+ "page-0673",
103799
+ "page-0674",
103800
+ "page-0675",
103801
+ "page-0678",
103802
+ "page-0681",
103803
+ "page-0683",
103804
+ "page-0684",
103805
+ "page-0686",
103806
+ "page-0687",
103807
+ "page-0689",
103808
+ "page-0692",
103809
+ "page-0693",
103810
+ "page-0694",
103811
+ "page-0695",
103812
+ "page-0696",
103813
+ "page-0697",
103814
+ "page-0698",
103815
+ "page-0699",
103816
+ "page-0700",
103817
+ "page-0701",
103818
+ "page-0703",
103819
+ "page-0704",
103820
+ "page-0705",
103821
+ "page-0706",
103822
+ "page-0708",
103823
+ "page-0709",
103824
+ "page-0710",
103825
+ "page-0711",
103826
+ "page-0712",
103827
+ "page-0713",
103828
+ "page-0720",
103829
+ "page-0722",
103830
+ "page-0723",
103831
+ "page-0724",
103832
+ "page-0726",
103833
+ "page-0728",
103834
+ "page-0731",
103835
+ "page-0750",
103836
+ "page-1058",
103837
+ "page-1121",
103838
+ "page-1152",
103839
+ "page-1178",
103840
+ "page-1189",
103841
+ "page-1191",
103842
+ "page-1192",
103843
+ "page-1266"
103844
+ ],
103845
+ "fill": [
103846
+ "page-0037"
103847
+ ],
103848
+ "parameter": [
103428
103849
  "page-0037",
103850
+ "page-0723",
103851
+ "page-1177",
103852
+ "page-1185",
103853
+ "page-1186",
103854
+ "page-1245"
103855
+ ],
103856
+ "`$fromai()`": [
103857
+ "page-0037",
103858
+ "page-0577",
103859
+ "page-0632"
103860
+ ],
103861
+ "function": [
103862
+ "page-0037"
103863
+ ],
103864
+ "populate": [
103865
+ "page-0038",
103429
103866
  "page-0530"
103430
103867
  ],
103431
103868
  "pinecone": [
103432
- "page-0037",
103869
+ "page-0038",
103433
103870
  "page-0564",
103434
103871
  "page-0934"
103435
103872
  ],
103436
103873
  "database": [
103437
- "page-0037",
103874
+ "page-0038",
103438
103875
  "page-0148",
103439
103876
  "page-0154",
103440
103877
  "page-0175",
@@ -103457,9 +103894,73 @@
103457
103894
  "page-0996"
103458
103895
  ],
103459
103896
  "website": [
103460
- "page-0037",
103897
+ "page-0038",
103461
103898
  "page-0732"
103462
103899
  ],
103900
+ "stores": [
103901
+ "page-0040",
103902
+ "page-0209"
103903
+ ],
103904
+ "miscellaneous": [
103905
+ "page-0040"
103906
+ ],
103907
+ "models": [
103908
+ "page-0040"
103909
+ ],
103910
+ "output": [
103911
+ "page-0040",
103912
+ "page-0044",
103913
+ "page-0050",
103914
+ "page-0061",
103915
+ "page-0066",
103916
+ "page-0099",
103917
+ "page-0108",
103918
+ "page-0210",
103919
+ "page-0552",
103920
+ "page-0572",
103921
+ "page-0573",
103922
+ "page-0574",
103923
+ "page-0575",
103924
+ "page-0577",
103925
+ "page-0622",
103926
+ "page-0623",
103927
+ "page-0646",
103928
+ "page-0652",
103929
+ "page-0653",
103930
+ "page-0658",
103931
+ "page-0672",
103932
+ "page-0693",
103933
+ "page-0697",
103934
+ "page-0704",
103935
+ "page-1186",
103936
+ "page-1221",
103937
+ "page-1235"
103938
+ ],
103939
+ "parsers": [
103940
+ "page-0040",
103941
+ "page-0686"
103942
+ ],
103943
+ "retrievers": [
103944
+ "page-0040"
103945
+ ],
103946
+ "splitters": [
103947
+ "page-0040"
103948
+ ],
103949
+ "embeddings": [
103950
+ "page-0040",
103951
+ "page-0584",
103952
+ "page-0585",
103953
+ "page-0586",
103954
+ "page-0587",
103955
+ "page-0588",
103956
+ "page-0589",
103957
+ "page-0590",
103958
+ "page-0591",
103959
+ "page-0592",
103960
+ "page-0593",
103961
+ "page-0594",
103962
+ "page-1221"
103963
+ ],
103463
103964
  "langsmith": [
103464
103965
  "page-0041"
103465
103966
  ],
@@ -103767,190 +104268,6 @@
103767
104268
  "page-1238",
103768
104269
  "page-1239"
103769
104270
  ],
103770
- "parameters": [
103771
- "page-0044",
103772
- "page-0070",
103773
- "page-0074",
103774
- "page-0161",
103775
- "page-0309",
103776
- "page-0364",
103777
- "page-0392",
103778
- "page-0483",
103779
- "page-0506",
103780
- "page-0524",
103781
- "page-0528",
103782
- "page-0529",
103783
- "page-0530",
103784
- "page-0538",
103785
- "page-0540",
103786
- "page-0544",
103787
- "page-0552",
103788
- "page-0553",
103789
- "page-0554",
103790
- "page-0555",
103791
- "page-0556",
103792
- "page-0557",
103793
- "page-0558",
103794
- "page-0559",
103795
- "page-0560",
103796
- "page-0561",
103797
- "page-0562",
103798
- "page-0563",
103799
- "page-0564",
103800
- "page-0565",
103801
- "page-0566",
103802
- "page-0567",
103803
- "page-0568",
103804
- "page-0569",
103805
- "page-0572",
103806
- "page-0573",
103807
- "page-0574",
103808
- "page-0575",
103809
- "page-0576",
103810
- "page-0577",
103811
- "page-0578",
103812
- "page-0582",
103813
- "page-0583",
103814
- "page-0584",
103815
- "page-0586",
103816
- "page-0587",
103817
- "page-0588",
103818
- "page-0589",
103819
- "page-0590",
103820
- "page-0591",
103821
- "page-0592",
103822
- "page-0593",
103823
- "page-0596",
103824
- "page-0597",
103825
- "page-0598",
103826
- "page-0599",
103827
- "page-0600",
103828
- "page-0601",
103829
- "page-0602",
103830
- "page-0603",
103831
- "page-0604",
103832
- "page-0605",
103833
- "page-0606",
103834
- "page-0608",
103835
- "page-0609",
103836
- "page-0610",
103837
- "page-0612",
103838
- "page-0613",
103839
- "page-0614",
103840
- "page-0615",
103841
- "page-0616",
103842
- "page-0617",
103843
- "page-0618",
103844
- "page-0619",
103845
- "page-0620",
103846
- "page-0621",
103847
- "page-0624",
103848
- "page-0627",
103849
- "page-0628",
103850
- "page-0629",
103851
- "page-0630",
103852
- "page-0631",
103853
- "page-0632",
103854
- "page-0634",
103855
- "page-0636",
103856
- "page-0640",
103857
- "page-0643",
103858
- "page-0644",
103859
- "page-0645",
103860
- "page-0646",
103861
- "page-0647",
103862
- "page-0648",
103863
- "page-0649",
103864
- "page-0650",
103865
- "page-0652",
103866
- "page-0653",
103867
- "page-0655",
103868
- "page-0656",
103869
- "page-0657",
103870
- "page-0658",
103871
- "page-0659",
103872
- "page-0661",
103873
- "page-0663",
103874
- "page-0664",
103875
- "page-0665",
103876
- "page-0668",
103877
- "page-0669",
103878
- "page-0672",
103879
- "page-0673",
103880
- "page-0674",
103881
- "page-0675",
103882
- "page-0678",
103883
- "page-0681",
103884
- "page-0683",
103885
- "page-0684",
103886
- "page-0686",
103887
- "page-0687",
103888
- "page-0689",
103889
- "page-0692",
103890
- "page-0693",
103891
- "page-0694",
103892
- "page-0695",
103893
- "page-0696",
103894
- "page-0697",
103895
- "page-0698",
103896
- "page-0699",
103897
- "page-0700",
103898
- "page-0701",
103899
- "page-0703",
103900
- "page-0704",
103901
- "page-0705",
103902
- "page-0706",
103903
- "page-0708",
103904
- "page-0709",
103905
- "page-0710",
103906
- "page-0711",
103907
- "page-0712",
103908
- "page-0713",
103909
- "page-0720",
103910
- "page-0722",
103911
- "page-0723",
103912
- "page-0724",
103913
- "page-0726",
103914
- "page-0728",
103915
- "page-0731",
103916
- "page-0750",
103917
- "page-1058",
103918
- "page-1121",
103919
- "page-1152",
103920
- "page-1178",
103921
- "page-1189",
103922
- "page-1191",
103923
- "page-1192",
103924
- "page-1266"
103925
- ],
103926
- "output": [
103927
- "page-0044",
103928
- "page-0050",
103929
- "page-0061",
103930
- "page-0066",
103931
- "page-0099",
103932
- "page-0108",
103933
- "page-0210",
103934
- "page-0552",
103935
- "page-0572",
103936
- "page-0573",
103937
- "page-0574",
103938
- "page-0575",
103939
- "page-0577",
103940
- "page-0622",
103941
- "page-0623",
103942
- "page-0646",
103943
- "page-0652",
103944
- "page-0653",
103945
- "page-0658",
103946
- "page-0672",
103947
- "page-0693",
103948
- "page-0697",
103949
- "page-0704",
103950
- "page-1186",
103951
- "page-1221",
103952
- "page-1235"
103953
- ],
103954
104271
  "details": [
103955
104272
  "page-0044",
103956
104273
  "page-0144",
@@ -107934,13 +108251,6 @@
107934
108251
  "trust": [
107935
108252
  "page-0159"
107936
108253
  ],
107937
- "specify": [
107938
- "page-0160",
107939
- "page-0169",
107940
- "page-0292",
107941
- "page-0428",
107942
- "page-0465"
107943
- ],
107944
108254
  "location": [
107945
108255
  "page-0160",
107946
108256
  "page-0210",
@@ -108705,9 +109015,6 @@
108705
109015
  "database,": [
108706
109016
  "page-0209"
108707
109017
  ],
108708
- "stores": [
108709
- "page-0209"
108710
- ],
108711
109018
  "openshift:": [
108712
109019
  "page-0209"
108713
109020
  ],
@@ -112064,10 +112371,6 @@
112064
112371
  "page-0577",
112065
112372
  "page-1271"
112066
112373
  ],
112067
- "`$fromai()`": [
112068
- "page-0577",
112069
- "page-0632"
112070
- ],
112071
112374
  "produce": [
112072
112375
  "page-0579"
112073
112376
  ],
@@ -112087,20 +112390,6 @@
112087
112390
  "page-0582",
112088
112391
  "page-0583"
112089
112392
  ],
112090
- "embeddings": [
112091
- "page-0584",
112092
- "page-0585",
112093
- "page-0586",
112094
- "page-0587",
112095
- "page-0588",
112096
- "page-0589",
112097
- "page-0590",
112098
- "page-0591",
112099
- "page-0592",
112100
- "page-0593",
112101
- "page-0594",
112102
- "page-1221"
112103
- ],
112104
112393
  "bedrock": [
112105
112394
  "page-0584",
112106
112395
  "page-0597"
@@ -112594,9 +112883,6 @@
112594
112883
  "page-1220",
112595
112884
  "page-1271"
112596
112885
  ],
112597
- "parsers": [
112598
- "page-0686"
112599
- ],
112600
112886
  "position": [
112601
112887
  "page-0687"
112602
112888
  ],
@@ -112845,13 +113131,6 @@
112845
113131
  "could": [
112846
113132
  "page-0723"
112847
113133
  ],
112848
- "parameter": [
112849
- "page-0723",
112850
- "page-1177",
112851
- "page-1185",
112852
- "page-1186",
112853
- "page-1245"
112854
- ],
112855
113134
  "duplicates": [
112856
113135
  "page-0724",
112857
113136
  "page-0725",
@@ -114974,6 +115253,9 @@
114974
115253
  "page-0035",
114975
115254
  "page-0036",
114976
115255
  "page-0037",
115256
+ "page-0038",
115257
+ "page-0039",
115258
+ "page-0040",
114977
115259
  "page-0041",
114978
115260
  "page-0042",
114979
115261
  "page-0043",