# nodes

node_type: nodes-base.aggregate
package_name: n8n-nodes-base
display_name: Aggregate
description: Combine a field from many items into a list in a single item
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Aggregate
  description: Documentation for the Aggregate node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # Aggregate

  Use the Aggregate node to take separate items, or portions of them, and group them together into individual items.

  ## Node parameters

  To begin using the node, select the **Aggregate** you'd like to use:

  * [**Individual Fields**](#individual-fields): Aggregate individual fields separately.
  * [**All Item Data**](#all-item-data): Aggregate all item data into a single list.

  ### Individual Fields

  * **Input Field Name**: Enter the name of the field in the input data to aggregate together.
  * **Rename Field**: This toggle controls whether to give the field a different name in the aggregated output data. Turn this on to add a different field name. If you're aggregating multiple fields, you must provide new output field names. You can't leave multiple fields undefined.
  	* **Output Field Name**: This field is displayed when you turn on **Rename Field**. Enter the field name for the aggregated output data.

  Refer to [Node options](#node-options) for more configuration options.

  ### All Item Data

  * **Put Output in Field**: Enter the name of the field to output the data in.
  * **Include**: Select which fields to include in the output. Choose from:
  	* **All fields**: The output includes data from all fields with no further parameters.
  	* **Specified Fields**: If you select this option, enter a comma-separated list of fields the output should include data from in the **Fields To Include** parameter. The output will include only the fields in this list.
  	* **All Fields Except**: If you select this option, enter a comma-separated list of fields the output should exclude data from in the **Fields To Exclude** parameter. The output will include all fields not in this list.

  Refer to [Node options](#node-options) for more configuration options.

  ## Node options

  You can further configure this node using these **Options**:

  * **Disable Dot Notation**: The node displays this toggle when you select the **Individual Fields** Aggregate. It controls whether to disallow referencing child fields using `parent.child` in the field name (turned on), or allow it (turned off, default).
  * **Merge Lists**: The node displays this toggle when you select the **Individual Fields** Aggregate. Turn it on if the field to aggregate is a list and you want to output a single flat list rather than a list of lists.
  * **Include Binaries**: The node displays this toggle for both Aggregate types. Turn it on if you want to include binary data from the input in the new output.
  * **Keep Missing And Null Values**: The node displays this toggle when you select the **Individual Fields** Aggregate. Turn it on to add a null (empty) entry in the output list when there is a null or missing value in the input. If turned off, the output ignores null or empty values.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'aggregate') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Aggregate",
      "name": "aggregate",
      "type": "options",
      "default": "aggregateIndividualFields",
      "options": [
        {
          "name": "Individual Fields",
          "value": "aggregateIndividualFields"
        },
        {
          "name": "All Item Data (Into a Single List)",
          "value": "aggregateAllItemData"
        }
      ]
    },
    {
      "displayName": "Fields To Aggregate",
      "name": "fieldsToAggregate",
      "type": "fixedCollection",
      "default": {
        "fieldToAggregate": [
          {
            "fieldToAggregate": "",
            "renameField": false
          }
        ]
      },
      "options": [
        {
          "displayName": "",
          "name": "fieldToAggregate",
          "values": [
            {
              "displayName": "Input Field Name",
              "name": "fieldToAggregate",
              "type": "string",
              "default": "",
              "description": "The name of a field in the input items to aggregate together",
              "placeholder": "e.g. id",
              "hint": " Enter the field name as text",
              "requiresDataPath": "single"
            },
            {
              "displayName": "Rename Field",
              "name": "renameField",
              "type": "boolean",
              "default": false,
              "description": "Whether to give the field a different name in the output"
            },
            {
              "displayName": "Output Field Name",
              "name": "outputFieldName",
              "displayOptions": {
                "show": {
                  "renameField": [
                    true
                  ]
                }
              },
              "type": "string",
              "default": "",
              "description": "The name of the field to put the aggregated data in. Leave blank to use the input field name.",
              "requiresDataPath": "single"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateIndividualFields"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Put Output in Field",
      "name": "destinationFieldName",
      "type": "string",
      "default": "data",
      "description": "The name of the output field to put the data in",
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateAllItemData"
          ]
        }
      }
    },
    {
      "displayName": "Include",
      "name": "include",
      "type": "options",
      "default": "allFields",
      "options": [
        {
          "name": "All Fields",
          "value": "allFields"
        },
        {
          "name": "Specified Fields",
          "value": "specifiedFields"
        },
        {
          "name": "All Fields Except",
          "value": "allFieldsExcept"
        }
      ],
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateAllItemData"
          ]
        }
      }
    },
    {
      "displayName": "Fields To Exclude",
      "name": "fieldsToExclude",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateAllItemData"
          ],
          "include": [
            "allFieldsExcept"
          ]
        }
      }
    },
    {
      "displayName": "Fields To Include",
      "name": "fieldsToInclude",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "aggregate": [
            "aggregateAllItemData"
          ],
          "include": [
            "specifiedFields"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name",
          "displayOptions": {
            "hide": {
              "/aggregate": [
                "aggregateAllItemData"
              ]
            }
          }
        },
        {
          "displayName": "Merge Lists",
          "name": "mergeLists",
          "type": "boolean",
          "default": false,
          "description": "Whether to merge the output into a single flat list (rather than a list of lists), if the field to aggregate is a list",
          "displayOptions": {
            "hide": {
              "/aggregate": [
                "aggregateAllItemData"
              ]
            }
          }
        },
        {
          "displayName": "Include Binaries",
          "name": "includeBinaries",
          "type": "boolean",
          "default": false,
          "description": "Whether to include the binary data in the new item"
        },
        {
          "displayName": "Keep Only Unique Binaries",
          "name": "keepOnlyUnique",
          "type": "boolean",
          "default": false,
          "description": "Whether to keep only unique binaries by comparing mime types, file types, file sizes and file extensions",
          "displayOptions": {
            "show": {
              "includeBinaries": [
                true
              ]
            }
          }
        },
        {
          "displayName": "Keep Missing And Null Values",
          "name": "keepMissing",
          "type": "boolean",
          "default": false,
          "description": "Whether to add a null entry to the aggregated list when there is a missing or null value",
          "displayOptions": {
            "hide": {
              "/aggregate": [
                "aggregateAllItemData"
              ]
            }
          }
        }
      ]
    }
  ]


node_type: nodes-base.limit
package_name: n8n-nodes-base
display_name: Limit
description: Restrict the number of items
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Limit
  description: Documentation for the Limit node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # Limit

  Use the Limit node to remove items beyond a defined maximum number. You can choose whether n8n takes the items from the beginning or end of the input data.

  ## Node parameters

  Configure this node using the following parameters.

  ### Max Items

  Enter the maximum number of items that n8n should keep. If the input data contains more than this value, n8n removes the items.

  ### Keep

  If the node has to remove items, select where it keeps the input items from:

  * **First Items**: Keeps the **Max Items** number of items from the beginning of the input data.
  * **Last Items**: Keeps the **Max Items** number of items from the end of the input data.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'limit') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Max Items",
      "name": "maxItems",
      "type": "number",
      "default": 1,
      "description": "If there are more items than this number, some are removed",
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Keep",
      "name": "keep",
      "type": "options",
      "default": "firstItems",
      "description": "When removing items, whether to keep the ones at the start or the ending",
      "options": [
        {
          "name": "First Items",
          "value": "firstItems"
        },
        {
          "name": "Last Items",
          "value": "lastItems"
        }
      ]
    }
  ]


node_type: nodes-base.removeDuplicates
package_name: n8n-nodes-base
display_name: Remove Duplicates
description: Delete items with matching field values
category: transform
development_style: programmatic
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

output_names:
  [
  "Kept",
  "Discarded"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Remove Duplicates node documentation
  description: Documentation for the Remove Duplicates node in n8n, a workflow automation platform. Includes guidance on usage and links to examples.
  contentType: [integration, reference]
  priority: medium
  ---

  # Remove Duplicates node

  Use the Remove Duplicates node to identify and delete items that are:

  * identical across all fields or a subset of fields in a single execution
  * identical to or surpassed by items seen in previous executions

  This is helpful in situations where you can end up with duplicate data, such as a user creating multiple accounts, or a customer submitting the same order multiple times. When working with large datasets it becomes more difficult to spot and remove these items.

  By comparing against data from previous executions, the Remove Duplicates node can  delete items seen in earlier executions. It can also ensure that new items have a later date or a higher value than previous values.

  /// note | Major changes in 1.64.0
  The n8n team overhauled this node in n8n 1.64.0. This document reflects the latest version of the node. If you're using an older version of n8n, you can find the previous version of this document [here](https://github.com/n8n-io/n8n-docs/blob/7a66308290e6e5b104fcb82a3beafa0d6987df36/docs/integrations/builtin/core-nodes/n8n-nodes-base.removeduplicates.md){:target=_blank .external-link}.
  ///

  ## Operation modes

  The remove duplication node works differently depending on the value of the **operation** parameter:

  * **[Remove Items Repeated Within Current Input](#remove-items-repeated-within-current-input)**: Identify and remove duplicate items in the current input across all fields or a subset of fields.
  * **[Remove Items Processed in Previous Executions](#remove-items-processed-in-previous-executions)**: Compare items in the current input to items from previous executions and remove duplicates.
  * **[Clear Deduplication History](#clear-deduplication-history)**: Wipe the memory of items from previous executions.

  ### Remove Items Repeated Within Current Input

  When you set the "Operations" field to **Remove Items Repeated Within Current Input**, the Remove Duplicate node identifies and removes duplicate items in the current input. It can do this across all fields, or within a subset of fields.

  #### Remove Items Repeated Within Current Input parameters

  When using the **Remove Items Repeated Within Current Input** operation, the following parameter is available:

  * **Compare**: Select which fields of the input data n8n should compare to check if they're the same. The following options are available:
  	* **All Fields**: Compares all fields of the input data.
  	* **All Fields Except**: Enter which input data fields n8n should exclude from the comparison. You can provide multiple values separated by commas.
  	* **Selected Fields**: Enter which input data fields n8n should include in the comparison. You can provide multiple values separated by commas.

  #### Remove Items Repeated Within Current Input options

  If you choose **All Fields Except** or **Selected Fields** as your compare type, you can add these options:

  * **Disable Dot Notation**: Set whether to use dot notation to reference child fields in the format `parent.child` (turned off) or not (turn on).
  * **Remove Other Fields**: Set whether to remove any fields that aren't used in the comparison (turned on) or not (turned off).

  ### Remove Items Processed in Previous Executions

  When you set the "Operation" field to **Remove Items Processed in Previous Executions**, the Remove Duplicate node compares items in the current input to items from previous executions.

  #### Remove Items Processed in Previous Executions parameters

  When using the **Remove Items Processed in Previous Executions** operation, the following parameters are available:

  * **Keep Items Where**: Select how n8n decides which items to keep. The following options are available:
  	* **Value Is New**: n8n removes items if their value matches items from earlier executions.
  	* **Value Is Higher than Any Previous Value**: n8n removes items if the current value isn't higher than previous values.
  	* **Value Is a Date Later than Any Previous Date**: n8n removes date items if the current date isn't later than previous dates.

  * **Value to Dedupe On**: The input field or fields to compare. The option you select for the **Keep Items Where** parameter determines the exact format you need:
  	* When using **Value Is New**, this must be an input field or combination of fields with a unique ID.
  	* When using **Value Is Higher than Any Previous Value**, this must be an input field or combination of fields that has an incremental value.
  	* When using **Value Is a Date Later than Any Previous Date**, this must be an input field that has a date value in ISO format.

  #### Remove Items Processed in Previous Executions options

  When using the **Remove Items Processed in Previous Executions** operation, the following option is available:

  * **Scope**: Sets how n8n stores and uses the deduplication data for comparisons. The following options are available:
  	* **Node**: (default) Stores the data for this node independently from other Remove Duplicates instances in the workflow. When you use this scope, you can [clear the duplication history](#clear-deduplication-history) for this node instance without affecting other nodes.
  	* **Workflow**: Stores the duplication data at the workflow level. This shares duplication data with any other Remove Duplicate nodes set to use "workflow" scope.  n8n will still manage the duplication data for other Remove Duplicate nodes set to "node" scope independently.

  When you select **Value Is New** as your **Keep Items Where** choice, this option is also available:

  * **History Size**: The number of items for n8n to store to track duplicates across executions. The value of the **Scope** option determines whether this history size is specific to this individual Remove Duplicate node instance or shared with other instances in the workflow. By default, n8n stores 10,000 items.

  ### Clear Deduplication History

  When you set the "Operation" field to **Clear Deduplication History**, the Remove Duplicates node manages and clears the stored items from previous executions. This operation doesn't affect any items in the current input. Instead, it manages the database of items that the "Remove Items Processed in Previous Executions" operation uses.

  #### Clear Deduplication History parameters

  When using the **Clear Deduplication History** operation, the following parameter is available:

  * **Mode**: How you want to manage the key / value items stored in the database. The following option is available:
  	* **Clean Database**: Deletes all duplication data stored in the database. This resets the duplication database to its original state.

  #### Clear Deduplication History options

  When using the **Clear Deduplication History** operation, the following option is available:

  * **Scope**: Sets the scope n8n uses when managing the duplication database.
  	* **Node**: (default) Manages the duplication database specific to this Remove Duplicates node instance.
  	* **Workflow**: Manages the duplication database shared by all Remove Duplicate node instances that use workflow scope.

  ## Templates and examples

  For templates using the Remove Duplicates node and examples of how to use it, refer to [Templates and examples](/integrations/builtin/core-nodes/n8n-nodes-base.removeduplicates/templates-and-examples.md).

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "removeDuplicateInputItems",
      "options": [
        {
          "name": "Remove Items Repeated Within Current Input",
          "value": "removeDuplicateInputItems",
          "description": "Remove duplicates from incoming items",
          "action": "Remove items repeated within current input"
        },
        {
          "name": "Remove Items Processed in Previous Executions",
          "value": "removeItemsSeenInPreviousExecutions",
          "description": "Deduplicate items already seen in previous executions",
          "action": "Remove items processed in previous executions"
        },
        {
          "name": "Clear Deduplication History",
          "value": "clearDeduplicationHistory",
          "description": "Wipe the store of previous items",
          "action": "Clear deduplication history"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Compare",
      "name": "compare",
      "type": "options",
      "default": "allFields",
      "description": "The fields of the input items to compare to see if they are the same",
      "options": [
        {
          "name": "All Fields",
          "value": "allFields"
        },
        {
          "name": "All Fields Except",
          "value": "allFieldsExcept"
        },
        {
          "name": "Selected Fields",
          "value": "selectedFields"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "removeDuplicateInputItems"
          ]
        }
      }
    },
    {
      "displayName": "Fields To Exclude",
      "name": "fieldsToExclude",
      "type": "string",
      "default": "",
      "description": "Fields in the input to exclude from the comparison",
      "displayOptions": {
        "show": {
          "compare": [
            "allFieldsExcept"
          ]
        }
      }
    },
    {
      "displayName": "Fields To Compare",
      "name": "fieldsToCompare",
      "type": "string",
      "default": "",
      "description": "Fields in the input to add to the comparison",
      "displayOptions": {
        "show": {
          "compare": [
            "selectedFields"
          ]
        }
      }
    },
    {
      "displayName": "Keep Items Where",
      "name": "logic",
      "type": "options",
      "default": "removeItemsWithAlreadySeenKeyValues",
      "description": "How to select input items to remove by comparing them with key values previously processed",
      "options": [
        {
          "name": "Value Is New",
          "value": "removeItemsWithAlreadySeenKeyValues",
          "description": "Remove all input items with values matching those already processed"
        },
        {
          "name": "Value Is Higher than Any Previous Value",
          "value": "removeItemsUpToStoredIncrementalKey",
          "description": "Works with incremental values, removes all input items with values up to the stored value"
        },
        {
          "name": "Value Is a Date Later than Any Previous Date",
          "value": "removeItemsUpToStoredDate",
          "description": "Works with date values, removes all input items with values up to the stored date"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "removeItemsSeenInPreviousExecutions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Value to Dedupe On",
      "name": "dedupeValue",
      "type": "string",
      "default": "",
      "description": "Use an input field (or a combination of fields) that has a unique ID value",
      "required": true,
      "displayOptions": {
        "show": {
          "logic": [
            "removeItemsWithAlreadySeenKeyValues"
          ],
          "/operation": [
            "removeItemsSeenInPreviousExecutions"
          ]
        }
      }
    },
    {
      "displayName": "Value to Dedupe On",
      "name": "incrementalDedupeValue",
      "type": "number",
      "default": "",
      "description": "Use an input field (or a combination of fields) that has an incremental value",
      "displayOptions": {
        "show": {
          "logic": [
            "removeItemsUpToStoredIncrementalKey"
          ],
          "/operation": [
            "removeItemsSeenInPreviousExecutions"
          ]
        }
      }
    },
    {
      "displayName": "Value to Dedupe On",
      "name": "dateDedupeValue",
      "type": "dateTime",
      "default": "",
      "description": "Use an input field that has a date value in ISO format",
      "displayOptions": {
        "show": {
          "logic": [
            "removeItemsUpToStoredDate"
          ],
          "/operation": [
            "removeItemsSeenInPreviousExecutions"
          ]
        }
      }
    },
    {
      "displayName": "Mode",
      "name": "mode",
      "type": "options",
      "default": "cleanDatabase",
      "description": "How you want to modify the key values stored on the database. None of these modes removes input items.",
      "options": [
        {
          "name": "Clean Database",
          "value": "cleanDatabase",
          "description": "Clear all values stored for a key in the database"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "clearDeduplicationHistory"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "displayOptions": {
            "show": {
              "/operation": [
                "removeDuplicateInputItems"
              ]
            },
            "hide": {
              "/compare": [
                "allFields"
              ]
            }
          },
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name"
        },
        {
          "displayName": "Remove Other Fields",
          "name": "removeOtherFields",
          "type": "boolean",
          "default": false,
          "displayOptions": {
            "show": {
              "/operation": [
                "removeDuplicateInputItems"
              ]
            },
            "hide": {
              "/compare": [
                "allFields"
              ]
            }
          },
          "description": "Whether to remove any fields that are not being compared. If disabled, will keep the values from the first of the duplicates."
        },
        {
          "displayName": "Scope",
          "name": "scope",
          "type": "options",
          "default": "node",
          "displayOptions": {
            "show": {
              "/operation": [
                "clearDeduplicationHistory",
                "removeItemsSeenInPreviousExecutions"
              ]
            }
          },
          "description": "If set to ‘workflow,’ key values will be shared across all nodes in the workflow. If set to ‘node,’ key values will be specific to this node.",
          "options": [
            {
              "name": "Workflow",
              "value": "workflow",
              "description": "Deduplication info will be shared by all the nodes in the workflow"
            },
            {
              "name": "Node",
              "value": "node",
              "description": "Deduplication info will be stored only for this node"
            }
          ]
        },
        {
          "displayName": "History Size",
          "name": "historySize",
          "type": "number",
          "default": 10000,
          "hint": "The max number of past items to store for deduplication",
          "displayOptions": {
            "show": {
              "/logic": [
                "removeItemsWithAlreadySeenKeyValues"
              ],
              "/operation": [
                "removeItemsSeenInPreviousExecutions"
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "removeDuplicateInputItems",
            "removeItemsSeenInPreviousExecutions",
            "clearDeduplicationHistory"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "removeDuplicateInputItems",
      "name": "Remove Items Repeated Within Current Input",
      "description": "Remove duplicates from incoming items"
    },
    {
      "operation": "removeItemsSeenInPreviousExecutions",
      "name": "Remove Items Processed in Previous Executions",
      "description": "Deduplicate items already seen in previous executions"
    },
    {
      "operation": "clearDeduplicationHistory",
      "name": "Clear Deduplication History",
      "description": "Wipe the store of previous items"
    }
  ]


node_type: nodes-base.splitOut
package_name: n8n-nodes-base
display_name: Split Out
description: Turn a list inside item(s) into separate items
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Split Out
  description: Documentation for the Split Out node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # Split Out

  Use the Split Out node to separate a single data item containing a list into multiple items. For example, a list of customers, and you want to split them so that you have an item for each customer.

  ## Node parameters

  Configure this node using the following parameters.

  ### Field to Split Out

  Enter the field containing the list you want to separate out into individual items.

  If you're working with binary data inputs, use `$binary` in an expression to set the field to split out.

  ### Include

  Select whether and how you want n8n to keep any other fields from the input data with each new individual item.

  You can select:

  * **No Other Fields**: No other fields will be included.
  * **All Other Fields**: All other fields will be included.
  * **Selected Other Fields**: Only the selected fields will be included.
      * **Fields to Include**: Enter a comma separated list of the fields you want to include.

  ## Node options

  ### Disable Dot Notation

  By default, n8n enables dot notation to reference child fields in the format `parent.child`. Use this option to disable dot notation (turned on) or to continue using dot (turned off).

  ### Destination Field Name

  Enter the field in the output where the split field contents should go.

  ### Include Binary

  Choose whether to include binary data from the input in the new output (turned on) or not (turned off).

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'split-out') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Fields To Split Out",
      "name": "fieldToSplitOut",
      "type": "string",
      "default": "",
      "description": "The name of the input fields to break out into separate items. Separate multiple field names by commas. For binary data, use $binary.",
      "required": true
    },
    {
      "displayName": "Include",
      "name": "include",
      "type": "options",
      "default": "noOtherFields",
      "description": "Whether to copy any other fields into the new items",
      "options": [
        {
          "name": "No Other Fields",
          "value": "noOtherFields"
        },
        {
          "name": "All Other Fields",
          "value": "allOtherFields"
        },
        {
          "name": "Selected Other Fields",
          "value": "selectedOtherFields"
        }
      ]
    },
    {
      "displayName": "Fields To Include",
      "name": "fieldsToInclude",
      "type": "string",
      "default": "",
      "description": "Fields in the input items to aggregate together",
      "displayOptions": {
        "show": {
          "include": [
            "selectedOtherFields"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name"
        },
        {
          "displayName": "Destination Field Name",
          "name": "destinationFieldName",
          "type": "string",
          "requiresDataPath": "multiple",
          "default": "",
          "description": "The field in the output under which to put the split field contents"
        },
        {
          "displayName": "Include Binary",
          "name": "includeBinary",
          "type": "boolean",
          "default": false,
          "description": "Whether to include the binary data in the new items"
        }
      ]
    }
  ]


node_type: nodes-base.sort
package_name: n8n-nodes-base
display_name: Sort
description: Change items order
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Sort
  description: Documentation for the Sort node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: medium
  ---

  # Sort

  Use the Sort node to organize lists of items in a desired ordering, or generate a random selection.

  /// note | Array sort behavior
  The Sort operation uses the default JavaScript operation where the elements to be sorted are converted into strings and their values compared. Refer to [Mozilla's guide to Array sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort){:target=_blank .external-link} to learn more.
  ///

  ## Node parameters

  Configure this node using the **Type** parameter.

  Use the dropdown to select how you want to input the sorting from these options.

  ### Simple

  Performs an ascending or descending sort using the selected fields.

  When you select this **Type**:

  * Use the **Add Field To Sort By** button to input the **Field Name**.
  * Select whether to use **Ascending** or **Descending** order.

  #### Simple options

  When you select **Simple** as the **Type**, you have the option to **Disable Dot Notation**. By default, n8n enables dot notation to reference child fields in the format `parent.child`. Use this option to disable dot notation (turned on) or to continue using dot (turned off).

  ### Random

  Creates a random order in the list.

  ### Code

  Input custom JavaScript code to perform the sort operation. This is a good option if a simple sort won't meet your needs.

  Enter your custom JavaScript code in the **Code** input field.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'sort') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Type",
      "name": "type",
      "type": "options",
      "default": "simple",
      "description": "The type of sorting to perform",
      "options": [
        {
          "name": "Simple",
          "value": "simple"
        },
        {
          "name": "Random",
          "value": "random"
        },
        {
          "name": "Code",
          "value": "code"
        }
      ]
    },
    {
      "displayName": "Fields To Sort By",
      "name": "sortFieldsUi",
      "type": "fixedCollection",
      "default": {},
      "description": "The fields of the input items to sort by",
      "options": [
        {
          "displayName": "",
          "name": "sortField",
          "values": [
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "type": "string",
              "required": true,
              "default": "",
              "description": "The field to sort by",
              "placeholder": "e.g. id",
              "hint": " Enter the field name as text",
              "requiresDataPath": "single"
            },
            {
              "displayName": "Order",
              "name": "order",
              "type": "options",
              "options": [
                {
                  "name": "Ascending",
                  "value": "ascending"
                },
                {
                  "name": "Descending",
                  "value": "descending"
                }
              ],
              "default": "ascending",
              "description": "The order to sort by"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "type": [
            "simple"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Code",
      "name": "code",
      "type": "string",
      "default": "// The two items to compare are in the variables a and b\n\t// Access the fields in a.json and b.json\n\t// Return -1 if a should go before b\n\t// Return 1 if b should go before a\n\t// Return 0 if there's no difference\n\n\tfieldName = 'myField';\n\n\tif (a.json[fieldName] < b.json[fieldName]) {\n\treturn -1;\n\t}\n\tif (a.json[fieldName] > b.json[fieldName]) {\n\treturn 1;\n\t}\n\treturn 0;",
      "description": "Javascript code to determine the order of any two items",
      "displayOptions": {
        "show": {
          "type": [
            "code"
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true,
        "editor": "jsEditor",
        "rows": 10
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name"
        }
      ],
      "displayOptions": {
        "show": {
          "type": [
            "simple"
          ]
        }
      }
    }
  ]


node_type: nodes-base.summarize
package_name: n8n-nodes-base
display_name: Summarize
description: Sum, count, max, etc. across items
category: transform
development_style: programmatic
version: 1.1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Summarize
  description: Documentation for the Summarize node in n8n, a workflow automation platform. Includes guidance on usage, and links to examples.
  contentType: [integration, reference]
  priority: high
  ---

  # Summarize

  Use the Summarize node to aggregate items together, in a manner similar to Excel pivot tables.

  ## Node parameters

  ### Fields to Summarize

  Use these fields to define how you want to summarize your input data.

  * **Aggregation**: Select the aggregation method to use on a given field. Options include:
  	* **Append**: Append 
  		* If you select this option, decide whether you want to **Include Empty Values** or not.
  	* **Average**: Calculate the numeric average of your input data.
  	* **Concatenate**: Combine together values in your input data.
  		* If you select this option, decide whether you want to **Include Empty Values** or not.
  		* **Separator**: Select the separator you want to insert between concatenated values.
  	* **Count**: Count the total number of values in your input data.
  	* **Count Unique**: Count the number of unique values in your input data.
  	* **Max**: Find the highest numeric value in your input data.
  	* **Min**: Find the lowest numeric value in your input data.
  	* **Sum**: Add together the numeric values in your input data.
  * **Field**: Enter the name of the field you want to perform the aggregation on.

  ### Fields to Split By

  Enter the name of the input fields that you want to split the summary by (similar to a group by statement). This allows you to get separate summaries based on values in other fields.

  For example, if our input data contains columns for `Sales Rep` and `Deal Amount` and we're performing a **Sum** on the `Deal Amount` field, we could split by `Sales Rep` to get a **Sum** total for each Sales Rep.

  To enter multiple fields to split by, enter a comma-separated list.

  ## Node options

  ### Continue if Field Not Found

  By default, if a **Field to Summarize** isn't in any items, the node throws an error. Use this option to continue and return a single empty item (turned on) instead or keep the default error behavior (turned off).

  ### Disable Dot Notation

  By default, n8n enables dot notation to reference child fields in the format `parent.child`. Use this option to disable dot notation (turned on) or to continue using dot (turned off).

  ### Output Format

  Select the format for your output format. This option is recommended if you're using **Fields to Split By**

  * **Each Split in a Separate Item**: Use this option to generate a separate output item for each split out field.
  * **All Splits in a Single Item**: Use this option to generate a single item that lists the split out fields.

  ## Ignore items without valid fields to group by

  Set whether to ignore input items that don't contain the **Fields to Split By** (turned on) or not (turned off).

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'summarize') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/core-nodes/data-transformation-actions/data-section-link.md"

properties_schema:
  [
    {
      "displayName": "Fields to Summarize",
      "name": "fieldsToSummarize",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "aggregation": "count",
            "field": ""
          }
        ]
      },
      "options": [
        {
          "displayName": "",
          "name": "values",
          "values": [
            {
              "displayName": "Aggregation",
              "name": "aggregation",
              "type": "options",
              "options": [
                {
                  "name": "Append",
                  "value": "append"
                },
                {
                  "name": "Average",
                  "value": "average"
                },
                {
                  "name": "Concatenate",
                  "value": "concatenate"
                },
                {
                  "name": "Count",
                  "value": "count"
                },
                {
                  "name": "Count Unique",
                  "value": "countUnique"
                },
                {
                  "name": "Max",
                  "value": "max"
                },
                {
                  "name": "Min",
                  "value": "min"
                },
                {
                  "name": "Sum",
                  "value": "sum"
                }
              ],
              "default": "count",
              "description": "How to combine the values of the field you want to summarize"
            },
            {
              "displayName": "Field",
              "name": "field",
              "type": "string",
              "default": "",
              "description": "The name of an input field that you want to summarize",
              "placeholder": "e.g. cost",
              "hint": " Enter the field name as text",
              "displayOptions": {
                "hide": {
                  "aggregation": [
                    "average",
                    "sum",
                    "countUnique",
                    "count",
                    "max",
                    "min"
                  ]
                }
              },
              "requiresDataPath": "single"
            },
            {
              "displayName": "Field",
              "name": "field",
              "type": "string",
              "default": "",
              "description": "The name of an input field that you want to summarize. The field should contain numerical values; null, undefined, empty strings would be ignored.",
              "placeholder": "e.g. cost",
              "hint": " Enter the field name as text",
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "average",
                    "sum"
                  ]
                }
              },
              "requiresDataPath": "single"
            },
            {
              "displayName": "Field",
              "name": "field",
              "type": "string",
              "default": "",
              "description": "The name of an input field that you want to summarize; null, undefined, empty strings would be ignored",
              "placeholder": "e.g. cost",
              "hint": " Enter the field name as text",
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "countUnique",
                    "count",
                    "max",
                    "min"
                  ]
                }
              },
              "requiresDataPath": "single"
            },
            {
              "displayName": "Include Empty Values",
              "name": "includeEmpty",
              "type": "boolean",
              "default": false,
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "append",
                    "concatenate",
                    "count",
                    "countUnique"
                  ]
                }
              }
            },
            {
              "displayName": "Separator",
              "name": "separateBy",
              "type": "options",
              "default": ",",
              "options": [
                {
                  "name": "Comma",
                  "value": ","
                },
                {
                  "name": "Comma and Space",
                  "value": ", "
                },
                {
                  "name": "New Line",
                  "value": "\n"
                },
                {
                  "name": "None",
                  "value": ""
                },
                {
                  "name": "Space",
                  "value": " "
                },
                {
                  "name": "Other",
                  "value": "other"
                }
              ],
              "hint": "What to insert between values",
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "concatenate"
                  ]
                }
              }
            },
            {
              "displayName": "Custom Separator",
              "name": "customSeparator",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "aggregation": [
                    "concatenate"
                  ],
                  "separateBy": [
                    "other"
                  ]
                }
              }
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Fields to Split By",
      "name": "fieldsToSplitBy",
      "type": "string",
      "default": "",
      "description": "The name of the input fields that you want to split the summary by",
      "displayOptions": {
        "hide": {
          "/options.outputFormat": [
            "singleItem"
          ]
        }
      }
    },
    {
      "displayName": "Fields to Group By",
      "name": "fieldsToSplitBy",
      "type": "string",
      "default": "",
      "description": "The name of the input fields that you want to split the summary by",
      "displayOptions": {
        "show": {
          "/options.outputFormat": [
            "singleItem"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Continue if Field Not Found",
          "name": "continueIfFieldNotFound",
          "type": "boolean",
          "default": false,
          "description": "Whether to continue if field to summarize can't be found in any items and return single empty item, otherwise an error would be thrown",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.1
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Disable Dot Notation",
          "name": "disableDotNotation",
          "type": "boolean",
          "default": false,
          "description": "Whether to disallow referencing child fields using `parent.child` in the field name"
        },
        {
          "displayName": "Output Format",
          "name": "outputFormat",
          "type": "options",
          "default": "separateItems",
          "options": [
            {
              "name": "Each Split in a Separate Item",
              "value": "separateItems"
            },
            {
              "name": "All Splits in a Single Item",
              "value": "singleItem"
            }
          ]
        },
        {
          "displayName": "Ignore items without valid fields to group by",
          "name": "skipEmptySplitFields",
          "type": "boolean",
          "default": false
        }
      ]
    }
  ]


node_type: nodes-langchain.anthropic
package_name: @n8n/n8n-nodes-langchain
display_name: Anthropic
description: Interact with Anthropic AI models
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "anthropicApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Prompt",
          "value": "prompt"
        },
        {
          "name": "Text",
          "value": "text"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Document",
          "value": "analyze",
          "action": "Analyze document",
          "description": "Take in documents and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-3-5-sonnet-20241022"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this document?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Document URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "documentUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the document(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the document(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxTokens",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload File",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a file to the Anthropic API for later use"
        },
        {
          "name": "Get File Metadata",
          "value": "get",
          "action": "Get file metadata",
          "description": "Get metadata for a file from the Anthropic API"
        },
        {
          "name": "List Files",
          "value": "list",
          "action": "List files",
          "description": "List files from the Anthropic API"
        },
        {
          "name": "Delete File",
          "value": "deleteFile",
          "action": "Delete a file",
          "description": "Delete a file from the Anthropic API"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "File ID",
      "name": "fileId",
      "type": "string",
      "default": "",
      "description": "ID of the file to delete",
      "displayOptions": {
        "show": {
          "operation": [
            "deleteFile"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "File ID",
      "name": "fileId",
      "type": "string",
      "default": "",
      "description": "ID of the file to get metadata for",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "list"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "returnAll": [
            false
          ],
          "operation": [
            "list"
          ],
          "resource": [
            "file"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "File URL",
          "value": "url"
        },
        {
          "name": "Binary File",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "fileUrl",
      "type": "string",
      "default": "",
      "description": "URL of the file to upload",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field which contains the file",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "File Name",
          "name": "fileName",
          "type": "string",
          "description": "The file name to use for the uploaded file",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze image",
          "description": "Take in images and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-3-5-sonnet-20241022"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Image URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the image(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxTokens",
          "type": "number",
          "default": 1024,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Prompt",
          "value": "generate",
          "action": "Generate a prompt",
          "description": "Generate a prompt for a model"
        },
        {
          "name": "Improve Prompt",
          "value": "improve",
          "action": "Improve a prompt",
          "description": "Improve a prompt for a model"
        },
        {
          "name": "Templatize Prompt",
          "value": "templatize",
          "action": "Templatize a prompt",
          "description": "Templatize a prompt for a model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "The <a href=\"https://docs.anthropic.com/en/api/prompt-tools-generate\">prompt tools APIs</a> are in a closed research preview. Your organization must request access to use them.",
      "name": "experimentalNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Task",
      "name": "task",
      "type": "string",
      "default": "",
      "description": "Description of the prompt's purpose",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "description": "Messages that constitute the prompt to be improved",
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Concise instructions for a meal prep service",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "description": "The existing system prompt to incorporate, if any",
          "default": "",
          "placeholder": "e.g. You are a professional meal prep chef"
        },
        {
          "displayName": "Feedback",
          "name": "feedback",
          "type": "string",
          "description": "Feedback for improving the prompt",
          "default": "",
          "placeholder": "e.g. Make it more detailed and include cooking times"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "improve"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "description": "Messages that constitute the prompt to be templatized",
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Translate hello to German",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "description": "The existing system prompt to templatize",
          "default": "",
          "placeholder": "e.g. You are a professional English to German translator"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "templatize"
          ],
          "resource": [
            "prompt"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Create a completion with Anthropic model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. claude-3-5-sonnet-20241022"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": "",
            "role": "user"
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be sent",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Add Attachments",
      "name": "addAttachments",
      "type": "boolean",
      "default": false,
      "description": "Whether to add attachments to the message",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachments Input Type",
      "name": "attachmentsInputType",
      "type": "options",
      "default": "url",
      "description": "The type of input to use for the attachments",
      "options": [
        {
          "name": "URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachment URL(s)",
      "name": "attachmentsUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the file(s) to attach, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "attachmentsInputType": [
            "url"
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Attachment Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the file(s) to attach, multiple field names can be added separated by comma",
      "displayOptions": {
        "show": {
          "addAttachments": [
            true
          ],
          "attachmentsInputType": [
            "binary"
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Include Merged Response",
          "name": "includeMergedResponse",
          "type": "boolean",
          "default": false,
          "description": "Whether to include a single output string merging all text parts of the response"
        },
        {
          "displayName": "System Message",
          "name": "system",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant"
        },
        {
          "displayName": "Code Execution",
          "name": "codeExecution",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable code execution. Not supported by all models."
        },
        {
          "displayName": "Web Search",
          "name": "webSearch",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable web search"
        },
        {
          "displayName": "Web Search Max Uses",
          "name": "maxUses",
          "type": "number",
          "default": 5,
          "description": "The maximum number of web search uses per request",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Web Search Allowed Domains",
          "name": "allowedDomains",
          "type": "string",
          "default": "",
          "description": "Comma-separated list of domains to search. Only domains in this list will be searched. Conflicts with \"Web Search Blocked Domains\".",
          "placeholder": "e.g. google.com, wikipedia.org"
        },
        {
          "displayName": "Web Search Blocked Domains",
          "name": "blockedDomains",
          "type": "string",
          "default": "",
          "description": "Comma-separated list of domains to block from search. Conflicts with \"Web Search Allowed Domains\".",
          "placeholder": "e.g. google.com, wikipedia.org"
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokens",
          "default": 1024,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "description": "Controls the randomness of the output. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 0.7,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top K)",
          "name": "topK",
          "default": 5,
          "description": "The maximum number of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Max Tool Calls Iterations",
          "name": "maxToolsIterations",
          "type": "number",
          "default": 15,
          "description": "The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyze",
      "name": "Analyze Document",
      "description": "Take in documents and answer questions about them"
    }
  ]


node_type: nodes-langchain.googleGemini
package_name: @n8n/n8n-nodes-langchain
display_name: Google Gemini
description: Interact with Google Gemini AI models
category: transform
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "googlePalmApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Text",
          "value": "text"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "transcribe",
      "options": [
        {
          "name": "Analyze Audio",
          "value": "analyze",
          "action": "Analyze audio",
          "description": "Take in audio and answer questions about it"
        },
        {
          "name": "Transcribe a Recording",
          "value": "transcribe",
          "action": "Transcribe a recording",
          "description": "Transcribes audio into the text"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "audioModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this audio?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Audio URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "audioUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the audio(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the audio(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed audio description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "audioModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Audio URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "audioUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the audio(s) to transcribe, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the audio(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Start Time",
          "name": "startTime",
          "type": "string",
          "default": "",
          "description": "The start time of the audio in MM:SS or HH:MM:SS format",
          "placeholder": "e.g. 00:15"
        },
        {
          "displayName": "End Time",
          "name": "endTime",
          "type": "string",
          "default": "",
          "description": "The end time of the audio in MM:SS or HH:MM:SS format",
          "placeholder": "e.g. 02:15"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyze",
      "options": [
        {
          "name": "Analyze Document",
          "value": "analyze",
          "action": "Analyze document",
          "description": "Take in documents and answer questions about them"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this document?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Document URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "documentUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the document(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the document(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed document description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload File",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a file to the Google Gemini API for later use"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "File URL",
          "value": "url"
        },
        {
          "name": "Binary File",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "fileUrl",
      "type": "string",
      "default": "",
      "description": "URL of the file to upload",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the file",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze an image",
          "description": "Take in images and answer questions about them"
        },
        {
          "name": "Generate an Image",
          "value": "generate",
          "action": "Generate an image",
          "description": "Creates an image from a text prompt"
        },
        {
          "name": "Edit Image",
          "value": "edit",
          "action": "Edit an image",
          "description": "Upload one or more images and apply edits based on a prompt"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Image URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the image(s), separate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "Instruction describing how to edit the image",
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Images",
      "name": "images",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "binaryPropertyName": "data"
          }
        ]
      },
      "description": "Add one or more binary fields to include images with your prompt",
      "options": [
        {
          "displayName": "Image",
          "name": "values",
          "values": [
            {
              "displayName": "Binary Field Name",
              "name": "binaryPropertyName",
              "type": "string",
              "default": "data",
              "placeholder": "e.g. data",
              "description": "The name of the binary field containing the image data"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "multipleValueButtonText": "Add Image"
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "edited",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "edit"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "imageGenerationModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired image(s)",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Number of Images",
          "name": "sampleCount",
          "default": 1,
          "description": "Number of images to generate. Not supported by Gemini models, supported by Imagen models.",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          }
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Create a completion with Google Gemini model"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": ""
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be send",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Model",
                  "value": "model",
                  "description": "Tell the model to adopt a specific tone or personality"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Output Content as JSON",
      "name": "jsonOutput",
      "type": "boolean",
      "default": false,
      "description": "Whether to attempt to return the response in JSON format",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "systemMessage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. You are a helpful assistant"
        },
        {
          "displayName": "Code Execution",
          "name": "codeExecution",
          "type": "boolean",
          "default": false,
          "description": "Whether to allow the model to execute code it generates to produce a response. Supported only by certain models."
        },
        {
          "displayName": "Frequency Penalty",
          "name": "frequencyPenalty",
          "default": 0,
          "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim",
          "type": "number",
          "typeOptions": {
            "minValue": -2,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxOutputTokens",
          "default": 16,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Number of Completions",
          "name": "candidateCount",
          "default": 1,
          "description": "How many completions to generate for each prompt",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "maxValue": 8,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Presence Penalty",
          "name": "presencePenalty",
          "default": 0,
          "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics",
          "type": "number",
          "typeOptions": {
            "minValue": -2,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "description": "Controls the randomness of the output. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 2,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 1,
          "description": "The maximum cumulative probability of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Output Randomness (Top K)",
          "name": "topK",
          "default": 1,
          "description": "The maximum number of tokens to consider when sampling",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Thinking Budget",
          "name": "thinkingBudget",
          "type": "number",
          "description": "Controls reasoning tokens for thinking models. Set to 0 to disable automatic thinking. Set to -1 for dynamic thinking. Leave empty for auto mode.",
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          }
        },
        {
          "displayName": "Max Tool Calls Iterations",
          "name": "maxToolsIterations",
          "type": "number",
          "default": 15,
          "description": "The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit",
          "typeOptions": {
            "minValue": 0,
            "numberPrecision": 0
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Analyze Video",
          "value": "analyze",
          "action": "Analyze video",
          "description": "Take in videos and answer questions about them"
        },
        {
          "name": "Generate a Video",
          "value": "generate",
          "action": "Generate a video",
          "description": "Creates a video from a text prompt"
        },
        {
          "name": "Download Video",
          "value": "download",
          "action": "Download a video",
          "description": "Download a generated video from the Google Gemini API using a URL"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this video?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Video URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "binary"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "videoUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the video(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name(s)",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary field(s) which contains the video(s), seperate multiple field names with commas",
      "displayOptions": {
        "show": {
          "inputType": [
            "binary"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed video description",
          "name": "maxOutputTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "URL",
      "name": "url",
      "type": "string",
      "default": "",
      "description": "The URL from Google Gemini API to download the video from",
      "displayOptions": {
        "show": {
          "operation": [
            "download"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "download"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "videoGenerationModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. models/gemini-2.5-flash"
        }
      ]
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired video",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Return As",
      "name": "returnAs",
      "type": "options",
      "default": "video",
      "description": "Whether to return the video as a binary file or a URL that can be used to download the video later",
      "options": [
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "URL",
          "value": "url"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Number of Videos",
          "name": "sampleCount",
          "type": "number",
          "default": 1,
          "description": "How many videos to generate",
          "typeOptions": {
            "minValue": 1,
            "maxValue": 4
          }
        },
        {
          "displayName": "Duration (Seconds)",
          "name": "durationSeconds",
          "type": "number",
          "default": 8,
          "description": "Length of the generated video in seconds. Supported only by certain models.",
          "typeOptions": {
            "minValue": 5,
            "maxValue": 8
          }
        },
        {
          "displayName": "Aspect Ratio",
          "name": "aspectRatio",
          "type": "options",
          "options": [
            {
              "name": "Widescreen (16:9)",
              "value": "16:9",
              "description": "Most common aspect ratio for televisions and monitors"
            },
            {
              "name": "Portrait (9:16)",
              "value": "9:16",
              "description": "Popular for short-form videos like YouTube Shorts"
            }
          ],
          "default": "16:9"
        },
        {
          "displayName": "Person Generation",
          "name": "personGeneration",
          "type": "options",
          "options": [
            {
              "name": "Don't Allow",
              "value": "dont_allow",
              "description": "Prevent generation of people in the video"
            },
            {
              "name": "Allow Adult",
              "value": "allow_adult",
              "description": "Allow generation of adult people in the video"
            },
            {
              "name": "Allow All",
              "value": "allow_all",
              "description": "Allow generation of all people in the video"
            }
          ],
          "default": "dont_allow"
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "video"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyze",
      "name": "Analyze Audio",
      "description": "Take in audio and answer questions about it"
    },
    {
      "operation": "transcribe",
      "name": "Transcribe a Recording",
      "description": "Transcribes audio into the text"
    }
  ]


node_type: nodes-langchain.openAi
package_name: @n8n/n8n-nodes-langchain
display_name: OpenAI
description: Message an assistant or GPT, analyze images, generate audio, etc.
category: transform
development_style: programmatic
version: 1.8
credentials_required:
  [
  {
  "name": "openAiApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "text",
      "options": [
        {
          "name": "Assistant",
          "value": "assistant"
        },
        {
          "name": "Text",
          "value": "text"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "File",
          "value": "file"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Create an Assistant",
          "value": "create",
          "action": "Create an assistant",
          "description": "Create a new assistant"
        },
        {
          "name": "Delete an Assistant",
          "value": "deleteAssistant",
          "action": "Delete an assistant",
          "description": "Delete an assistant from the account"
        },
        {
          "name": "List Assistants",
          "value": "list",
          "action": "List assistants",
          "description": "List assistants in the organization"
        },
        {
          "name": "Message an Assistant",
          "value": "message",
          "action": "Message an assistant",
          "description": "Send messages to an assistant"
        },
        {
          "name": "Update an Assistant",
          "value": "update",
          "action": "Update an assistant",
          "description": "Update an existing assistant"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "assistant"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. gpt-4"
        }
      ]
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the assistant. The maximum length is 256 characters.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Description",
      "name": "description",
      "type": "string",
      "default": "",
      "description": "The description of the assistant. The maximum length is 512 characters.",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Instructions",
      "name": "instructions",
      "type": "string",
      "default": "",
      "description": "The system instructions that the assistant uses. The maximum length is 32768 characters.",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Code Interpreter",
      "name": "codeInterpreter",
      "type": "boolean",
      "default": false,
      "description": "Whether to enable the code interpreter that allows the assistants to write and run Python code in a sandboxed execution environment, find more <a href=\"https://platform.openai.com/docs/assistants/tools/code-interpreter\" target=\"_blank\">here</a>",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Knowledge Retrieval",
      "name": "knowledgeRetrieval",
      "type": "boolean",
      "default": false,
      "description": "Whether to augments the assistant with knowledge from outside its model, such as proprietary product information or documents, find more <a href=\"https://platform.openai.com/docs/assistants/tools/knowledge-retrieval\" target=\"_blank\">here</a>",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Files",
      "name": "file_ids",
      "type": "multiOptions",
      "default": [],
      "description": "The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant. You can use expression to pass file IDs as an array or comma-separated string.",
      "displayOptions": {
        "show": {
          "codeInterpreter": [
            true
          ],
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        },
        "hide": {
          "knowledgeRetrieval": [
            true
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getFiles"
      }
    },
    {
      "displayName": "Files",
      "name": "file_ids",
      "type": "multiOptions",
      "default": [],
      "description": "The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant",
      "displayOptions": {
        "show": {
          "knowledgeRetrieval": [
            true
          ],
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        },
        "hide": {
          "codeInterpreter": [
            true
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getFiles"
      }
    },
    {
      "displayName": "Files",
      "name": "file_ids",
      "type": "multiOptions",
      "default": [],
      "description": "The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant",
      "displayOptions": {
        "show": {
          "knowledgeRetrieval": [
            true
          ],
          "codeInterpreter": [
            true
          ],
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getFiles"
      }
    },
    {
      "displayName": "Add custom n8n tools when you <i>message</i> your assistant (rather than when creating it)",
      "name": "noticeTools",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Fail if Assistant Already Exists",
          "name": "failIfExists",
          "type": "boolean",
          "default": false,
          "description": "Whether to fail an operation if the assistant with the same name already exists"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Assistant",
      "name": "assistantId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "deleteAssistant"
          ],
          "resource": [
            "assistant"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "assistantSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. asst_abc123"
        }
      ]
    },
    {
      "displayName": "Assistant",
      "name": "assistantId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "assistant"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "assistantSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. asst_abc123"
        }
      ]
    },
    {
      "displayName": "Source for Prompt (User Message)",
      "name": "prompt",
      "type": "options",
      "default": "auto",
      "options": [
        {
          "name": "Connected Chat Trigger Node",
          "value": "auto",
          "description": "Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"
        },
        {
          "name": "Define below",
          "value": "define",
          "description": "Use an expression to reference data in previous nodes or enter static text"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Prompt (User Message)",
      "name": "text",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "prompt": [
            "define"
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "assistant"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Memory",
      "name": "memory",
      "type": "options",
      "default": "connector",
      "options": [
        {
          "name": "Use memory connector",
          "value": "connector",
          "description": "Connect one of the supported memory nodes"
        },
        {
          "name": "Use thread ID",
          "value": "threadId",
          "description": "Specify the ID of the thread to continue"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.6
              }
            }
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Thread ID",
      "name": "threadId",
      "type": "string",
      "default": "",
      "description": "The ID of the thread to continue, a new thread will be created if not specified",
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.6
              }
            }
          ],
          "memory": [
            "threadId"
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Connect your own custom n8n tools to this node on the canvas",
      "name": "noticeTools",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Base URL",
          "name": "baseURL",
          "default": "https://api.openai.com/v1",
          "description": "Override the default base URL for the API",
          "type": "string",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.8
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Max Retries",
          "name": "maxRetries",
          "default": 2,
          "description": "Maximum number of retries to attempt",
          "type": "number"
        },
        {
          "displayName": "Timeout",
          "name": "timeout",
          "default": 10000,
          "description": "Maximum amount of time a request is allowed to take in milliseconds",
          "type": "number"
        },
        {
          "displayName": "Preserve Original Tools",
          "name": "preserveOriginalTools",
          "type": "boolean",
          "default": true,
          "description": "Whether to preserve the original tools of the assistant after the execution of this node, otherwise the tools will be replaced with the connected tools, if any, default is true",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "list"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Assistant",
      "name": "assistantId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Assistant to respond to the message. You can add, modify or remove assistants in the <a href=\"https://platform.openai.com/playground?mode=assistant\" target=\"_blank\">playground</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "assistant"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "assistantSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. asst_abc123"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Code Interpreter",
          "name": "codeInterpreter",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable the code interpreter that allows the assistants to write and run Python code in a sandboxed execution environment, find more <a href=\"https://platform.openai.com/docs/assistants/tools/code-interpreter\" target=\"_blank\">here</a>"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "The description of the assistant. The maximum length is 512 characters.",
          "placeholder": "e.g. My personal assistant"
        },
        {
          "displayName": "Files",
          "name": "file_ids",
          "type": "multiOptions",
          "description": "The files to be used by the assistant, there can be a maximum of 20 files attached to the assistant. You can use expression to pass file IDs as an array or comma-separated string.",
          "typeOptions": {
            "loadOptionsMethod": "getFiles"
          },
          "default": [],
          "hint": "Add more files by using the 'Upload a File' operation, any existing files not selected here will be removed."
        },
        {
          "displayName": "Instructions",
          "name": "instructions",
          "type": "string",
          "description": "The system instructions that the assistant uses. The maximum length is 32768 characters.",
          "default": "",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Knowledge Retrieval",
          "name": "knowledgeRetrieval",
          "type": "boolean",
          "default": false,
          "description": "Whether to augments the assistant with knowledge from outside its model, such as proprietary product information or documents, find more <a href=\"https://platform.openai.com/docs/assistants/tools/knowledge-retrieval\" target=\"_blank\">here</a>"
        },
        {
          "displayName": "Model",
          "name": "modelId",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": ""
          },
          "required": false,
          "modes": [
            {
              "displayName": "From List",
              "name": "list",
              "type": "list",
              "typeOptions": {
                "searchListMethod": "modelSearch",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "placeholder": "e.g. gpt-4"
            }
          ]
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "The name of the assistant. The maximum length is 256 characters.",
          "placeholder": "e.g. My Assistant"
        },
        {
          "displayName": "Remove All Custom Tools (Functions)",
          "name": "removeCustomTools",
          "type": "boolean",
          "default": false,
          "description": "Whether to remove all custom tools (functions) from the assistant"
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "assistant"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Audio",
          "value": "generate",
          "action": "Generate audio",
          "description": "Creates audio from a text prompt"
        },
        {
          "name": "Transcribe a Recording",
          "value": "transcribe",
          "action": "Transcribe a recording",
          "description": "Transcribes audio into the text"
        },
        {
          "name": "Translate a Recording",
          "value": "translate",
          "action": "Translate a recording",
          "description": "Translate audio into the text in the english language"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "OpenAI API limits the size of the audio file to 25 MB",
      "name": "fileSizeLimitNotice",
      "type": "notice",
      "default": " ",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ],
          "operation": [
            "translate",
            "transcribe"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "tts-1",
      "options": [
        {
          "name": "TTS-1",
          "value": "tts-1"
        },
        {
          "name": "TTS-1-HD",
          "value": "tts-1-hd"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Text Input",
      "name": "input",
      "type": "string",
      "default": "",
      "description": "The text to generate audio for. The maximum length is 4096 characters.",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "audio"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Voice",
      "name": "voice",
      "type": "options",
      "default": "alloy",
      "description": "The voice to use when generating the audio",
      "options": [
        {
          "name": "Alloy",
          "value": "alloy"
        },
        {
          "name": "Echo",
          "value": "echo"
        },
        {
          "name": "Fable",
          "value": "fable"
        },
        {
          "name": "Nova",
          "value": "nova"
        },
        {
          "name": "Onyx",
          "value": "onyx"
        },
        {
          "name": "Shimmer",
          "value": "shimmer"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Response Format",
          "name": "response_format",
          "type": "options",
          "default": "mp3",
          "options": [
            {
              "name": "MP3",
              "value": "mp3"
            },
            {
              "name": "OPUS",
              "value": "opus"
            },
            {
              "name": "AAC",
              "value": "aac"
            },
            {
              "name": "FLAC",
              "value": "flac"
            }
          ]
        },
        {
          "displayName": "Audio Speed",
          "name": "speed",
          "type": "number",
          "default": 1,
          "typeOptions": {
            "minValue": 0.25,
            "maxValue": 4,
            "numberPrecision": 1
          }
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm",
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Language of the Audio File",
          "name": "language",
          "type": "string",
          "description": "The language of the input audio. Supplying the input language in <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes\" target=\"_blank\">ISO-639-1</a> format will improve accuracy and latency.",
          "default": ""
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "transcribe"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the audio file in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm",
      "displayOptions": {
        "show": {
          "operation": [
            "translate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "type": "number",
          "default": 0,
          "typeOptions": {
            "minValue": 0,
            "maxValue": 1,
            "numberPrecision": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "translate"
          ],
          "resource": [
            "audio"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Delete a File",
          "value": "deleteFile",
          "action": "Delete a file",
          "description": "Delete a file from the server"
        },
        {
          "name": "List Files",
          "value": "list",
          "action": "List files",
          "description": "Returns a list of files that belong to the user's organization"
        },
        {
          "name": "Upload a File",
          "value": "upload",
          "action": "Upload a file",
          "description": "Upload a file that can be used across various endpoints"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the file. The size of individual files can be a maximum of 512 MB or 2 million tokens for Assistants.",
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Purpose",
          "name": "purpose",
          "type": "options",
          "default": "assistants",
          "description": "The intended purpose of the uploaded file, the 'Fine-tuning' only supports .jsonl files",
          "options": [
            {
              "name": "Assistants",
              "value": "assistants"
            },
            {
              "name": "Fine-Tune",
              "value": "fine-tune"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "upload"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "deleteFile"
          ],
          "resource": [
            "file"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "fileSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "file-[a-zA-Z0-9]",
                "errorMessage": "Not a valid File ID"
              }
            }
          ],
          "placeholder": "e.g. file-1234567890"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Purpose",
          "name": "purpose",
          "type": "options",
          "default": "any",
          "description": "Only return files with the given purpose",
          "options": [
            {
              "name": "Any [Default]",
              "value": "any"
            },
            {
              "name": "Assistants",
              "value": "assistants"
            },
            {
              "name": "Fine-Tune",
              "value": "fine-tune"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "list"
          ],
          "resource": [
            "file"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Analyze Image",
          "value": "analyze",
          "action": "Analyze image",
          "description": "Take in images and answer questions about them"
        },
        {
          "name": "Generate an Image",
          "value": "generate",
          "action": "Generate an image",
          "description": "Creates an image from a text prompt"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "dall-e-3",
      "description": "The model to use for image generation",
      "options": [
        {
          "name": "DALL·E 2",
          "value": "dall-e-2"
        },
        {
          "name": "DALL·E 3",
          "value": "dall-e-3"
        },
        {
          "name": "GPT Image 1",
          "value": "gpt-image-1"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "",
      "description": "A text description of the desired image(s). The maximum length is 1000 characters for dall-e-2 and 4000 characters for dall-e-3.",
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Number of Images",
          "name": "n",
          "default": 1,
          "description": "Number of images to generate",
          "type": "number",
          "typeOptions": {
            "minValue": 1,
            "maxValue": 10
          },
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-2"
              ]
            }
          }
        },
        {
          "displayName": "Quality",
          "name": "dalleQuality",
          "type": "options",
          "description": "The quality of the image that will be generated, HD creates images with finer details and greater consistency across the image",
          "options": [
            {
              "name": "HD",
              "value": "hd"
            },
            {
              "name": "Standard",
              "value": "standard"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-3"
              ]
            }
          },
          "default": "standard"
        },
        {
          "displayName": "Quality",
          "name": "quality",
          "type": "options",
          "description": "The quality of the image that will be generated, High creates images with finer details and greater consistency across the image",
          "options": [
            {
              "name": "High",
              "value": "high"
            },
            {
              "name": "Medium",
              "value": "medium"
            },
            {
              "name": "Low",
              "value": "low"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "gpt-image-1"
              ]
            }
          },
          "default": "medium"
        },
        {
          "displayName": "Resolution",
          "name": "size",
          "type": "options",
          "options": [
            {
              "name": "256x256",
              "value": "256x256"
            },
            {
              "name": "512x512",
              "value": "512x512"
            },
            {
              "name": "1024x1024",
              "value": "1024x1024"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-2"
              ]
            }
          },
          "default": "1024x1024"
        },
        {
          "displayName": "Resolution",
          "name": "size",
          "type": "options",
          "options": [
            {
              "name": "1024x1024",
              "value": "1024x1024"
            },
            {
              "name": "1792x1024",
              "value": "1792x1024"
            },
            {
              "name": "1024x1792",
              "value": "1024x1792"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-3"
              ]
            }
          },
          "default": "1024x1024"
        },
        {
          "displayName": "Resolution",
          "name": "size",
          "type": "options",
          "options": [
            {
              "name": "1024x1024",
              "value": "1024x1024"
            },
            {
              "name": "1024x1536",
              "value": "1024x1536"
            },
            {
              "name": "1536x1024",
              "value": "1536x1024"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "gpt-image-1"
              ]
            }
          },
          "default": "1024x1024"
        },
        {
          "displayName": "Style",
          "name": "style",
          "type": "options",
          "options": [
            {
              "name": "Natural",
              "value": "natural",
              "description": "Produce more natural looking images"
            },
            {
              "name": "Vivid",
              "value": "vivid",
              "description": "Lean towards generating hyper-real and dramatic images"
            }
          ],
          "displayOptions": {
            "show": {
              "/model": [
                "dall-e-3"
              ]
            }
          },
          "default": "vivid"
        },
        {
          "displayName": "Respond with Image URL(s)",
          "name": "returnImageUrls",
          "type": "boolean",
          "default": false,
          "description": "Whether to return image URL(s) instead of binary file(s)",
          "displayOptions": {
            "hide": {
              "/model": [
                "gpt-image-1"
              ]
            }
          }
        },
        {
          "displayName": "Put Output in Field",
          "name": "binaryPropertyOutput",
          "type": "string",
          "default": "data",
          "hint": "The name of the output field to put the binary file data in",
          "displayOptions": {
            "show": {
              "returnImageUrls": [
                false
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "generate"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.4
              }
            }
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "imageModelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. gpt-4"
        }
      ]
    },
    {
      "displayName": "Text Input",
      "name": "text",
      "type": "string",
      "default": "What's in this image?",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Input Type",
      "name": "inputType",
      "type": "options",
      "default": "url",
      "options": [
        {
          "name": "Image URL(s)",
          "value": "url"
        },
        {
          "name": "Binary File(s)",
          "value": "base64"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "URL(s)",
      "name": "imageUrls",
      "type": "string",
      "default": "",
      "description": "URL(s) of the image(s) to analyze, multiple URLs can be added separated by comma",
      "displayOptions": {
        "show": {
          "inputType": [
            "url"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property which contains the image(s)",
      "displayOptions": {
        "show": {
          "inputType": [
            "base64"
          ],
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to simplify the response or not",
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Detail",
          "name": "detail",
          "type": "options",
          "default": "auto",
          "options": [
            {
              "name": "Auto",
              "value": "auto",
              "description": "Model will look at the image input size and decide if it should use the low or high setting"
            },
            {
              "name": "Low",
              "value": "low",
              "description": "Return faster responses and consume fewer tokens"
            },
            {
              "name": "High",
              "value": "high",
              "description": "Return more detailed responses, consumes more tokens"
            }
          ]
        },
        {
          "displayName": "Length of Description (Max Tokens)",
          "description": "Fewer tokens will result in shorter, less detailed image description",
          "name": "maxTokens",
          "type": "number",
          "default": 300,
          "typeOptions": {
            "minValue": 1
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyze"
          ],
          "resource": [
            "image"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message a Model",
          "value": "message",
          "action": "Message a model",
          "description": "Create a completion with GPT 3, 4, etc."
        },
        {
          "name": "Classify Text for Violations",
          "value": "classify",
          "action": "Classify text for violations",
          "description": "Check whether content complies with usage policies"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Text Input",
      "name": "input",
      "type": "string",
      "default": "",
      "description": "The input text to classify if it is violates the moderation policy",
      "displayOptions": {
        "show": {
          "operation": [
            "classify"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": false,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "classify"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Use Stable Model",
          "name": "useStableModel",
          "type": "boolean",
          "default": false,
          "description": "Whether to use the stable version of the model instead of the latest version, accuracy may be slightly lower"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "classify"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "modelId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "modelSearch",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "e.g. gpt-4"
        }
      ]
    },
    {
      "displayName": "Messages",
      "name": "messages",
      "type": "fixedCollection",
      "default": {
        "values": [
          {
            "content": ""
          }
        ]
      },
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Prompt",
              "name": "content",
              "type": "string",
              "description": "The content of the message to be send",
              "default": "",
              "placeholder": "e.g. Hello, how can you help me?",
              "typeOptions": {
                "rows": 2
              }
            },
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Role in shaping the model's response, it tells the model how it should behave and interact with the user",
              "options": [
                {
                  "name": "User",
                  "value": "user",
                  "description": "Send a message as a user and get a response from the model"
                },
                {
                  "name": "Assistant",
                  "value": "assistant",
                  "description": "Tell the model to adopt a specific tone or personality"
                },
                {
                  "name": "System",
                  "value": "system",
                  "description": "Usually used to set the model's behavior or context for the next user message"
                }
              ],
              "default": "user"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      },
      "typeOptions": {
        "sortable": true,
        "multipleValues": true
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simplify",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Output Content as JSON",
      "name": "jsonOutput",
      "type": "boolean",
      "default": false,
      "description": "Whether to attempt to return the response in JSON format. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models newer than gpt-3.5-turbo-1106.",
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Hide Tools",
      "name": "hideTools",
      "type": "hidden",
      "default": "hide",
      "displayOptions": {
        "show": {
          "modelId": [
            "gpt-3.5-turbo-16k-0613",
            "dall-e-3",
            "text-embedding-3-large",
            "dall-e-2",
            "whisper-1",
            "tts-1-hd-1106",
            "tts-1-hd",
            "gpt-4-0314",
            "text-embedding-3-small",
            "gpt-4-32k-0314",
            "gpt-3.5-turbo-0301",
            "gpt-4-vision-preview",
            "gpt-3.5-turbo-16k",
            "gpt-3.5-turbo-instruct-0914",
            "tts-1",
            "davinci-002",
            "gpt-3.5-turbo-instruct",
            "babbage-002",
            "tts-1-1106",
            "text-embedding-ada-002"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.2
              }
            }
          ],
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Connect your own custom n8n tools to this node on the canvas",
      "name": "noticeTools",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "hide": {
          "hideTools": [
            "hide"
          ]
        },
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Frequency Penalty",
          "name": "frequency_penalty",
          "default": 0,
          "typeOptions": {
            "maxValue": 2,
            "minValue": -2,
            "numberPrecision": 1
          },
          "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim",
          "type": "number"
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokens",
          "default": 16,
          "description": "The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).",
          "type": "number",
          "typeOptions": {
            "maxValue": 32768
          }
        },
        {
          "displayName": "Number of Completions",
          "name": "n",
          "default": 1,
          "description": "How many completions to generate for each prompt. Note: Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for max_tokens and stop.",
          "type": "number"
        },
        {
          "displayName": "Presence Penalty",
          "name": "presence_penalty",
          "default": 0,
          "typeOptions": {
            "maxValue": 2,
            "minValue": -2,
            "numberPrecision": 1
          },
          "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics",
          "type": "number"
        },
        {
          "displayName": "Output Randomness (Temperature)",
          "name": "temperature",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Output Randomness (Top P)",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "An alternative to sampling with temperature, controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Reasoning Effort",
          "name": "reasoning_effort",
          "default": "medium",
          "description": "Controls the amount of reasoning tokens to use. A value of \"low\" will favor speed and economical token usage, \"high\" will favor more complete reasoning at the cost of more tokens generated and slower responses.",
          "type": "options",
          "options": [
            {
              "name": "Low",
              "value": "low",
              "description": "Favors speed and economical token usage"
            },
            {
              "name": "Medium",
              "value": "medium",
              "description": "Balance between speed and reasoning accuracy"
            },
            {
              "name": "High",
              "value": "high",
              "description": "Favors more complete reasoning at the cost of more tokens generated and slower responses"
            }
          ],
          "displayOptions": {
            "show": {
              "/modelId": [
                {
                  "_cnd": {
                    "regex": "(^o1([-\\d]+)?$)|(^o[3-9].*)|(^gpt-5.*)"
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Max Tool Calls Iterations",
          "name": "maxToolsIterations",
          "type": "number",
          "default": 15,
          "description": "The maximum number of tool iteration cycles the LLM will run before stopping. A single iteration can contain multiple tool calls. Set to 0 for no limit.",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.5
                  }
                }
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "message"
          ],
          "resource": [
            "text"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create an Assistant",
      "description": "Create a new assistant"
    },
    {
      "operation": "deleteAssistant",
      "name": "Delete an Assistant",
      "description": "Delete an assistant from the account"
    },
    {
      "operation": "list",
      "name": "List Assistants",
      "description": "List assistants in the organization"
    },
    {
      "operation": "message",
      "name": "Message an Assistant",
      "description": "Send messages to an assistant"
    },
    {
      "operation": "update",
      "name": "Update an Assistant",
      "description": "Update an existing assistant"
    }
  ]


node_type: nodes-langchain.agent
package_name: @n8n/n8n-nodes-langchain
display_name: AI Agent
description: Generates an action plan and executes it. Can use external tools.
category: transform
development_style: programmatic
version: 2.2
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: AI Agent node documentation
  description: Learn how to use the AI Agent node in n8n. Follow technical documentation to integrate AI Agent node into your workflows.
  contentType: [integration, reference]
  priority: critical
  ---

  # AI Agent node

  An [AI agent](/glossary.md#ai-agent) is an autonomous system that receives data, makes rational decisions, and acts within its environment to achieve specific goals. The AI agent's environment is everything the agent can access that isn't the agent itself. This agent uses external [tools](/glossary.md#ai-tool) and APIs to perform actions and retrieve information. It can understand the capabilities of different tools and determine which tool to use depending on the task. 

  /// note | Connect a tool
  You must connect at least one tool [sub-node](/integrations/builtin/cluster-nodes/sub-nodes/index.md) to an AI Agent node.
  ///

  /// note | Agent type
  Prior to version 1.82.0, the AI Agent had a setting for working as different agent types. This has now been removed and all AI Agent nodes work as a `Tools Agent` which was the recommended and most frequently used setting. If you're working with older versions of the AI Agent in workflows or templates, as long as they were set to 'Tools Agent', they should continue to behave as intended with the updated node.
  ///


  ## Templates and examples
  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'agent') ]]

  ## Related resources

  Refer to [LangChain's documentation on agents](https://js.langchain.com/docs/concepts/agents/){:target=_blank .external-link} for more information about the service.

  New to AI Agents? Read the [n8n blog introduction to AI agents](https://blog.n8n.io/ai-agents/){:target=_blank .external-link}.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"

  ## Common issues

  For common errors or issues and suggested resolution steps, refer to [Common Issues](/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/common-issues.md).

  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "Tip: Get a feel for agents with our quick <a href=\"https://docs.n8n.io/advanced-ai/intro-tutorial/\" target=\"_blank\">tutorial</a> or see an <a href=\"/workflows/templates/1954\" target=\"_blank\">example</a> of how this node works",
      "name": "aiAgentStarterCallout",
      "type": "callout",
      "default": ""
    },
    {
      "displayName": "Source for Prompt (User Message)",
      "name": "promptType",
      "type": "options",
      "default": "auto",
      "options": [
        {
          "name": "Connected Chat Trigger Node",
          "value": "auto",
          "description": "Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"
        },
        {
          "name": "Define below",
          "value": "define",
          "description": "Use an expression to reference data in previous nodes or enter static text"
        }
      ]
    },
    {
      "displayName": "Prompt (User Message)",
      "name": "text",
      "type": "string",
      "default": "={{ $json.chatInput }}",
      "required": true,
      "displayOptions": {
        "show": {
          "promptType": [
            "auto"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Prompt (User Message)",
      "name": "text",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "promptType": [
            "define"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Require Specific Output Format",
      "name": "hasOutputParser",
      "type": "boolean",
      "default": false,
      "noDataExpression": true
    },
    {
      "displayName": "Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require",
      "name": "notice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "hasOutputParser": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Enable Fallback Model",
      "name": "needsFallback",
      "type": "boolean",
      "default": false,
      "noDataExpression": true
    },
    {
      "displayName": "Connect an additional language model on the canvas to use it as a fallback if the main model fails",
      "name": "fallbackNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "needsFallback": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "systemMessage",
          "type": "string",
          "default": "You are a helpful assistant",
          "description": "The message that will be sent to the agent before the conversation starts",
          "typeOptions": {
            "rows": 6
          }
        },
        {
          "displayName": "Max Iterations",
          "name": "maxIterations",
          "type": "number",
          "default": 10,
          "description": "The maximum number of iterations the agent will run before stopping"
        },
        {
          "displayName": "Return Intermediate Steps",
          "name": "returnIntermediateSteps",
          "type": "boolean",
          "default": false,
          "description": "Whether or not the output should include intermediate steps the agent took"
        },
        {
          "displayName": "Automatically Passthrough Binary Images",
          "name": "passthroughBinaryImages",
          "type": "boolean",
          "default": true,
          "description": "Whether or not binary images should be automatically passed through to the agent as image type messages"
        },
        {
          "displayName": "Enable Streaming",
          "name": "enableStreaming",
          "type": "boolean",
          "default": true,
          "description": "Whether this agent will stream the response in real-time as it generates text"
        },
        {
          "displayName": "Batch Processing",
          "name": "batching",
          "type": "collection",
          "placeholder": "Add Batch Processing Option",
          "description": "Batch processing options for rate limiting",
          "default": {},
          "options": [
            {
              "displayName": "Batch Size",
              "name": "batchSize",
              "default": 1,
              "type": "number",
              "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
            },
            {
              "displayName": "Delay Between Batches",
              "name": "delayBetweenBatches",
              "default": 0,
              "type": "number",
              "description": "Delay in milliseconds between batches. This is useful for rate limiting."
            }
          ]
        }
      ]
    }
  ]


node_type: nodes-langchain.agentTool
package_name: @n8n/n8n-nodes-langchain
display_name: AI Agent Tool
description: Generates an action plan and executes it. Can use external tools.
category: transform
development_style: programmatic
version: 2.2
operations: []
credentials_required: []
outputs:
  [
  "ai_tool"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "Description",
      "name": "toolDescription",
      "type": "string",
      "default": "AI Agent that can call other tools",
      "description": "Explain to the LLM what this tool does, a good, specific description would allow LLMs to produce expected results much more often",
      "required": true,
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Prompt (User Message)",
      "name": "text",
      "type": "string",
      "default": "",
      "required": true,
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Require Specific Output Format",
      "name": "hasOutputParser",
      "type": "boolean",
      "default": false,
      "noDataExpression": true
    },
    {
      "displayName": "Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require",
      "name": "notice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "hasOutputParser": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Enable Fallback Model",
      "name": "needsFallback",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 2.1
              }
            }
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Connect an additional language model on the canvas to use it as a fallback if the main model fails",
      "name": "fallbackNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "needsFallback": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "systemMessage",
          "type": "string",
          "default": "You are a helpful assistant",
          "description": "The message that will be sent to the agent before the conversation starts",
          "typeOptions": {
            "rows": 6
          }
        },
        {
          "displayName": "Max Iterations",
          "name": "maxIterations",
          "type": "number",
          "default": 10,
          "description": "The maximum number of iterations the agent will run before stopping"
        },
        {
          "displayName": "Return Intermediate Steps",
          "name": "returnIntermediateSteps",
          "type": "boolean",
          "default": false,
          "description": "Whether or not the output should include intermediate steps the agent took"
        },
        {
          "displayName": "Automatically Passthrough Binary Images",
          "name": "passthroughBinaryImages",
          "type": "boolean",
          "default": true,
          "description": "Whether or not binary images should be automatically passed through to the agent as image type messages"
        },
        {
          "displayName": "Batch Processing",
          "name": "batching",
          "type": "collection",
          "placeholder": "Add Batch Processing Option",
          "description": "Batch processing options for rate limiting",
          "default": {},
          "options": [
            {
              "displayName": "Batch Size",
              "name": "batchSize",
              "default": 1,
              "type": "number",
              "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
            },
            {
              "displayName": "Delay Between Batches",
              "name": "delayBetweenBatches",
              "default": 0,
              "type": "number",
              "description": "Delay in milliseconds between batches. This is useful for rate limiting."
            }
          ]
        }
      ],
      "displayOptions": {
        "hide": {
          "@version": [
            {
              "_cnd": {
                "lt": 2.2
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Message",
          "name": "systemMessage",
          "type": "string",
          "default": "You are a helpful assistant",
          "description": "The message that will be sent to the agent before the conversation starts",
          "typeOptions": {
            "rows": 6
          }
        },
        {
          "displayName": "Max Iterations",
          "name": "maxIterations",
          "type": "number",
          "default": 10,
          "description": "The maximum number of iterations the agent will run before stopping"
        },
        {
          "displayName": "Return Intermediate Steps",
          "name": "returnIntermediateSteps",
          "type": "boolean",
          "default": false,
          "description": "Whether or not the output should include intermediate steps the agent took"
        },
        {
          "displayName": "Automatically Passthrough Binary Images",
          "name": "passthroughBinaryImages",
          "type": "boolean",
          "default": true,
          "description": "Whether or not binary images should be automatically passed through to the agent as image type messages"
        },
        {
          "displayName": "Batch Processing",
          "name": "batching",
          "type": "collection",
          "placeholder": "Add Batch Processing Option",
          "description": "Batch processing options for rate limiting",
          "default": {},
          "options": [
            {
              "displayName": "Batch Size",
              "name": "batchSize",
              "default": 1,
              "type": "number",
              "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
            },
            {
              "displayName": "Delay Between Batches",
              "name": "delayBetweenBatches",
              "default": 0,
              "type": "number",
              "description": "Delay in milliseconds between batches. This is useful for rate limiting."
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "lt": 2.2
              }
            }
          ]
        }
      }
    }
  ]


node_type: nodes-langchain.openAiAssistant
package_name: @n8n/n8n-nodes-langchain
display_name: OpenAI Assistant
description: Utilizes Assistant API from Open AI.
category: transform
development_style: programmatic
version: 1.1
operations: []
credentials_required:
  [
  {
  "name": "openAiApi",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "Operation",
      "name": "mode",
      "type": "options",
      "default": "existing",
      "options": [
        {
          "name": "Use New Assistant",
          "value": "new"
        },
        {
          "name": "Use Existing Assistant",
          "value": "existing"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "/mode": [
            "new"
          ]
        }
      }
    },
    {
      "displayName": "Instructions",
      "name": "instructions",
      "type": "string",
      "default": "",
      "description": "How the Assistant and model should behave or respond",
      "displayOptions": {
        "show": {
          "/mode": [
            "new"
          ]
        }
      },
      "typeOptions": {
        "rows": 5
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "gpt-3.5-turbo-1106",
      "description": "The model which will be used to power the assistant. <a href=\"https://beta.openai.com/docs/models/overview\">Learn more</a>. The Retrieval tool requires gpt-3.5-turbo-1106 and gpt-4-1106-preview models.",
      "required": true,
      "displayOptions": {
        "show": {
          "/mode": [
            "new"
          ]
        }
      },
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || \"v1\"  }}/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "filter",
                  "properties": {
                    "pass": "={{ $responseItem.id.startsWith('gpt-') && !$responseItem.id.includes('instruct') }}"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.id}}",
                    "value": "={{$responseItem.id}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Assistant",
      "name": "assistantId",
      "type": "options",
      "default": "",
      "description": "The assistant to use. <a href=\"https://beta.openai.com/docs/assistants/overview\">Learn more</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "/mode": [
            "existing"
          ]
        }
      },
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "headers": {
                "OpenAI-Beta": "assistants=v1"
              },
              "url": "={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || \"v1\"  }}/assistants"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.name}}",
                    "value": "={{$responseItem.id}}",
                    "description": "={{$responseItem.model}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "={{ $json.chat_input }}",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "={{ $json.chatInput }}",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1.1
          ]
        }
      }
    },
    {
      "displayName": "OpenAI Tools",
      "name": "nativeTools",
      "type": "multiOptions",
      "default": [],
      "options": [
        {
          "name": "Code Interpreter",
          "value": "code_interpreter"
        },
        {
          "name": "Knowledge Retrieval",
          "value": "retrieval"
        }
      ]
    },
    {
      "displayName": "Connect your own custom tools to this node on the canvas",
      "name": "noticeTools",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Upload files for retrieval using the <a href=\"https://platform.openai.com/playground\" target=\"_blank\">OpenAI website<a/>",
      "name": "noticeTools",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "/nativeTools": [
            "retrieval"
          ]
        }
      },
      "typeOptions": {
        "noticeTheme": "info"
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Base URL",
          "name": "baseURL",
          "default": "https://api.openai.com/v1",
          "description": "Override the default base URL for the API",
          "type": "string"
        },
        {
          "displayName": "Max Retries",
          "name": "maxRetries",
          "default": 2,
          "description": "Maximum number of retries to attempt",
          "type": "number"
        },
        {
          "displayName": "Timeout",
          "name": "timeout",
          "default": 10000,
          "description": "Maximum amount of time a request is allowed to take in milliseconds",
          "type": "number"
        }
      ]
    }
  ]


node_type: nodes-langchain.chainSummarization
package_name: @n8n/n8n-nodes-langchain
display_name: Summarization Chain
description: Transforms text into a concise summary
category: transform
development_style: programmatic
version: 2.1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Summarization Chain node documentation
  description: Learn how to use the Summarize Chain node in n8n. Follow technical documentation to integrate Summarize Chain node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # Summarization Chain node

  Use the Summarization Chain node to summarize multiple documents.

  On this page, you'll find the node parameters for the Summarization Chain node, and links to more resources.

  ## Node parameters

  Choose the type of data you need to summarize in **Data to Summarize**. The data type you choose determines the other node parameters.

  * **Use Node Input (JSON)** and **Use Node Input (Binary)**: summarize the data coming into the node from the workflow. 
  	* You can configure the **Chunking Strategy**: choose what strategy to use to define the data chunk sizes.
  		* If you choose **Simple (Define Below)** you can then set **Characters Per Chunk** and **Chunk Overlap (Characters)**.
  		* Choose **Advanced** if you want to connect a splitter sub-node that provides more configuration options.
  * **Use Document Loader**: summarize data provided by a document loader sub-node.

  ## Node Options

  You can configure the summarization method and prompts. Select **Add Option** > **Summarization Method and Prompts**.

  Options in **Summarization Method**:

  * **Map Reduce**: this is the recommended option. Learn more about [Map Reduce](https://js.langchain.com/v0.1/docs/modules/chains/document/map_reduce/){:target=_blank .external-link} in the LangChain documentation.
  * **Refine**: learn more about [Refine](https://js.langchain.com/v0.1/docs/modules/chains/document/refine/){:target=_blank .external-link} in the LangChain documentation.
  * **Stuff**: learn more about [Stuff](https://js.langchain.com/v0.1/docs/modules/chains/document/stuff/){:target=_blank .external-link} in the LangChain documentation.

  You can customize the **Individual Summary Prompts** and the **Final Prompt to Combine**. There are examples in the node. You must include the `"{text}"` placeholder.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'summarization-chain') ]]

  ## Related resources

  Refer to [LangChain's documentation on summarization](https://js.langchain.com/docs/tutorials/summarization/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "Save time with an <a href=\"/templates/1951\" target=\"_blank\">example</a> of how this node works",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Data to Summarize",
      "name": "operationMode",
      "type": "options",
      "default": "nodeInputJson",
      "description": "How to pass data into the summarization chain",
      "options": [
        {
          "name": "Use Node Input (JSON)",
          "value": "nodeInputJson",
          "description": "Summarize the JSON data coming into this node from the previous one"
        },
        {
          "name": "Use Node Input (Binary)",
          "value": "nodeInputBinary",
          "description": "Summarize the binary data coming into this node from the previous one"
        },
        {
          "name": "Use Document Loader",
          "value": "documentLoader",
          "description": "Use a loader sub-node with more configuration options"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Chunking Strategy",
      "name": "chunkingMode",
      "type": "options",
      "default": "simple",
      "description": "Chunk splitting strategy",
      "options": [
        {
          "name": "Simple (Define Below)",
          "value": "simple"
        },
        {
          "name": "Advanced",
          "value": "advanced",
          "description": "Use a splitter sub-node with more configuration options"
        }
      ],
      "displayOptions": {
        "show": {
          "/operationMode": [
            "nodeInputJson",
            "nodeInputBinary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Characters Per Chunk",
      "name": "chunkSize",
      "type": "number",
      "default": 1000,
      "description": "Controls the max size (in terms of number of characters) of the final document chunk",
      "displayOptions": {
        "show": {
          "/chunkingMode": [
            "simple"
          ]
        }
      }
    },
    {
      "displayName": "Chunk Overlap (Characters)",
      "name": "chunkOverlap",
      "type": "number",
      "default": 200,
      "description": "Specifies how much characters overlap there should be between chunks",
      "displayOptions": {
        "show": {
          "/chunkingMode": [
            "simple"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Input Data Field Name",
          "name": "binaryDataKey",
          "type": "string",
          "default": "data",
          "description": "The name of the field in the agent or chain’s input that contains the binary file to be processed",
          "displayOptions": {
            "show": {
              "/operationMode": [
                "nodeInputBinary"
              ]
            }
          }
        },
        {
          "displayName": "Summarization Method and Prompts",
          "name": "summarizationMethodAndPrompts",
          "type": "fixedCollection",
          "default": {
            "values": {
              "summarizationMethod": "map_reduce",
              "prompt": "Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
              "combineMapPrompt": "Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:"
            }
          },
          "placeholder": "Add Option",
          "typeOptions": {},
          "options": [
            {
              "name": "values",
              "displayName": "Values",
              "values": [
                {
                  "displayName": "Summarization Method",
                  "name": "summarizationMethod",
                  "type": "options",
                  "description": "The type of summarization to run",
                  "default": "map_reduce",
                  "options": [
                    {
                      "name": "Map Reduce (Recommended)",
                      "value": "map_reduce",
                      "description": "Summarize each document (or chunk) individually, then summarize those summaries"
                    },
                    {
                      "name": "Refine",
                      "value": "refine",
                      "description": "Summarize the first document (or chunk). Then update that summary based on the next document (or chunk), and repeat."
                    },
                    {
                      "name": "Stuff",
                      "value": "stuff",
                      "description": "Pass all documents (or chunks) at once. Ideal for small datasets."
                    }
                  ]
                },
                {
                  "displayName": "Individual Summary Prompt",
                  "name": "combineMapPrompt",
                  "type": "string",
                  "hint": "The prompt to summarize an individual document (or chunk)",
                  "displayOptions": {
                    "hide": {
                      "/options.summarizationMethodAndPrompts.values.summarizationMethod": [
                        "stuff",
                        "refine"
                      ]
                    }
                  },
                  "default": "Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
                  "typeOptions": {
                    "rows": 9
                  }
                },
                {
                  "displayName": "Final Prompt to Combine",
                  "name": "prompt",
                  "type": "string",
                  "default": "Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
                  "hint": "The prompt to combine individual summaries",
                  "displayOptions": {
                    "hide": {
                      "/options.summarizationMethodAndPrompts.values.summarizationMethod": [
                        "stuff",
                        "refine"
                      ]
                    }
                  },
                  "typeOptions": {
                    "rows": 9
                  }
                },
                {
                  "displayName": "Prompt",
                  "name": "prompt",
                  "type": "string",
                  "default": "Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
                  "displayOptions": {
                    "hide": {
                      "/options.summarizationMethodAndPrompts.values.summarizationMethod": [
                        "refine",
                        "map_reduce"
                      ]
                    }
                  },
                  "typeOptions": {
                    "rows": 9
                  }
                },
                {
                  "displayName": "Subsequent (Refine) Prompt",
                  "name": "refinePrompt",
                  "type": "string",
                  "displayOptions": {
                    "hide": {
                      "/options.summarizationMethodAndPrompts.values.summarizationMethod": [
                        "stuff",
                        "map_reduce"
                      ]
                    }
                  },
                  "default": "Your job is to produce a final summary\nWe have provided an existing summary up to a certain point: \"{existing_answer}\"\nWe have the opportunity to refine the existing summary\n(only if needed) with some more context below.\n------------\n\"{text}\"\n------------\n\nGiven the new context, refine the original summary\nIf the context isn't useful, return the original summary.\n\nREFINED SUMMARY:",
                  "hint": "The prompt to refine the summary based on the next document (or chunk)",
                  "typeOptions": {
                    "rows": 9
                  }
                },
                {
                  "displayName": "Initial Prompt",
                  "name": "refineQuestionPrompt",
                  "type": "string",
                  "displayOptions": {
                    "hide": {
                      "/options.summarizationMethodAndPrompts.values.summarizationMethod": [
                        "stuff",
                        "map_reduce"
                      ]
                    }
                  },
                  "default": "Write a concise summary of the following:\n\n\n\"{text}\"\n\n\nCONCISE SUMMARY:",
                  "hint": "The prompt for the first document (or chunk)",
                  "typeOptions": {
                    "rows": 9
                  }
                }
              ]
            }
          ]
        },
        {
          "displayName": "Batch Processing",
          "name": "batching",
          "type": "collection",
          "placeholder": "Add Batch Processing Option",
          "description": "Batch processing options for rate limiting",
          "default": {},
          "options": [
            {
              "displayName": "Batch Size",
              "name": "batchSize",
              "default": 5,
              "type": "number",
              "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
            },
            {
              "displayName": "Delay Between Batches",
              "name": "delayBetweenBatches",
              "default": 0,
              "type": "number",
              "description": "Delay in milliseconds between batches. This is useful for rate limiting."
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 2.1
                  }
                }
              ]
            }
          }
        }
      ]
    }
  ]


node_type: nodes-langchain.chainLlm
package_name: @n8n/n8n-nodes-langchain
display_name: Basic LLM Chain
description: A simple chain to prompt a large language model
category: transform
development_style: programmatic
version: 1.7
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Basic LLM Chain node documentation
  description: Learn how to use the Basic LLM Chain node in n8n. Follow technical documentation to integrate Basic LLM Chain node into your workflows.
  contentType: [integration, reference]
  priority: critical
  ---

  # Basic LLM Chain node

  Use the Basic LLM Chain node to set the prompt that the model will use along with setting an optional parser for the response.

  On this page, you'll find the node parameters for the Basic LLM Chain node and links to more resources.

  /// note | Examples and templates
  For usage examples and templates to help you get started, refer to n8n's [Basic LLM Chain integrations](https://n8n.io/integrations/basic-llm-chain/){:target=_blank .external-link} page.
  ///	

  ## Node parameters

  ### Prompt

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-root-nodes/prompt.md"

  ### Require Specific Output Format

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-root-nodes/output-format.md"

  ## Chat Messages

  Use **Chat Messages** when you're using a chat model to set a message.

  n8n ignores these options if you don't connect a chat model. Select the **Type Name or ID** you want the node to use:

  #### AI

  Enter a sample expected response in the **Message** field. The model will try to respond in the same way in its messages.

  #### System

  Enter a system **Message** to include with the user input to help guide the model in what it should do.

  Use this option for things like defining tone, for example: `Always respond talking like a pirate`.

  #### User

  Enter a sample user input. Using this with the AI option can help improve the output of the agent. Using both together provides a sample of an input and expected response (the **AI Message**) for the model to follow.

  Select one of these input types:

  * **Text**: Enter a sample user input as a text **Message**.
  * **Image (Binary)**: Select a binary input from a previous node. Enter the **Image Data Field Name** to identify which binary field from the previous node contains the image data.
  * **Image (URL)**: Use this option to feed an image in from a URL. Enter the **Image URL**.

  For both the **Image** types, select the **Image Details** to control how the model processes the image and generates its textual understanding. Choose from:

  * **Auto**: The model uses the auto setting, which looks at the image input size and decide if it should use the Low or High setting.
  * **Low**: The model receives a low-resolution 512px x 512px version of the image and represents the image with a budget of 65 tokens. This allows the API to return faster responses and consume fewer input tokens. Use this option for use cases that don't require high detail.
  * **High**: The model can access the low-resolution image and then creates detailed crops of input images as 512px squares based on the input image size. Each of the detailed crops uses twice the token budget (65 tokens) for a total of 129 tokens. Use this option for use cases that require high detail.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'basic-llm-chain') ]]

  ## Related resources

  Refer to [LangChain's documentation on Basic LLM Chains](https://js.langchain.com/docs/tutorials/llm_chain/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

  ## Common issues

  Here are some common errors and issues with the Basic LLM Chain node and steps to resolve or troubleshoot them.

  ### No prompt specified error

  This error displays when the **Prompt** is empty or invalid.

  You might see this error in one of two scenarios:

  1. When you've set the **Prompt** to **Define below** and haven't entered anything in the **Text** field.
      * To resolve, enter a valid prompt in the **Text** field.
  2. When you've set the **Prompt** to **Connected Chat Trigger Node** and the incoming data has no field called `chatInput`. 
      * The node expects the `chatInput` field. If your previous node doesn't have this field, add an [Edit Fields (Set)](/integrations/builtin/core-nodes/n8n-nodes-base.set.md) node to edit an incoming field name to `chatInput`.

properties_schema:
  [
    {
      "displayName": "Save time with an <a href=\"/templates/1978\" target=\"_blank\">example</a> of how this node works",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "={{ $json.input }}",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "={{ $json.chat_input }}",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1.1,
            1.2
          ]
        }
      }
    },
    {
      "displayName": "Prompt",
      "name": "prompt",
      "type": "string",
      "default": "={{ $json.chatInput }}",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1.3
          ]
        }
      }
    },
    {
      "displayName": "Source for Prompt (User Message)",
      "name": "promptType",
      "type": "options",
      "default": "auto",
      "options": [
        {
          "name": "Connected Chat Trigger Node",
          "value": "auto",
          "description": "Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"
        },
        {
          "name": "Define below",
          "value": "define",
          "description": "Use an expression to reference data in previous nodes or enter static text"
        }
      ],
      "displayOptions": {
        "hide": {
          "@version": [
            1,
            1.1,
            1.2,
            1.3
          ]
        }
      }
    },
    {
      "displayName": "Prompt (User Message)",
      "name": "text",
      "type": "string",
      "default": "={{ $json.chatInput }}",
      "required": true,
      "displayOptions": {
        "show": {
          "promptType": [
            "auto"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.5
              }
            }
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Prompt (User Message)",
      "name": "text",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "promptType": [
            "define"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Require Specific Output Format",
      "name": "hasOutputParser",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "hide": {
          "@version": [
            1,
            1.1,
            1.3
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Enable Fallback Model",
      "name": "needsFallback",
      "type": "boolean",
      "default": false,
      "displayOptions": {
        "hide": {
          "@version": [
            1,
            1.1,
            1.3
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Chat Messages (if Using a Chat Model)",
      "name": "messages",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "messageValues",
          "displayName": "Prompt",
          "values": [
            {
              "displayName": "Type Name or ID",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "AI",
                  "value": "AIMessagePromptTemplate"
                },
                {
                  "name": "System",
                  "value": "SystemMessagePromptTemplate"
                },
                {
                  "name": "User",
                  "value": "HumanMessagePromptTemplate"
                }
              ],
              "default": "SystemMessagePromptTemplate"
            },
            {
              "displayName": "Message Type",
              "name": "messageType",
              "type": "options",
              "displayOptions": {
                "show": {
                  "type": [
                    "HumanMessagePromptTemplate"
                  ]
                }
              },
              "options": [
                {
                  "name": "Text",
                  "value": "text",
                  "description": "Simple text message"
                },
                {
                  "name": "Image (Binary)",
                  "value": "imageBinary",
                  "description": "Process the binary input from the previous node"
                },
                {
                  "name": "Image (URL)",
                  "value": "imageUrl",
                  "description": "Process the image from the specified URL"
                }
              ],
              "default": "text"
            },
            {
              "displayName": "Image Data Field Name",
              "name": "binaryImageDataKey",
              "type": "string",
              "default": "data",
              "required": true,
              "description": "The name of the field in the chain's input that contains the binary image file to be processed",
              "displayOptions": {
                "show": {
                  "messageType": [
                    "imageBinary"
                  ]
                }
              }
            },
            {
              "displayName": "Image URL",
              "name": "imageUrl",
              "type": "string",
              "default": "",
              "required": true,
              "description": "URL to the image to be processed",
              "displayOptions": {
                "show": {
                  "messageType": [
                    "imageUrl"
                  ]
                }
              }
            },
            {
              "displayName": "Image Details",
              "description": "Control how the model processes the image and generates its textual understanding",
              "name": "imageDetail",
              "type": "options",
              "displayOptions": {
                "show": {
                  "type": [
                    "HumanMessagePromptTemplate"
                  ],
                  "messageType": [
                    "imageBinary",
                    "imageUrl"
                  ]
                }
              },
              "options": [
                {
                  "name": "Auto",
                  "value": "auto",
                  "description": "Model will use the auto setting which will look at the image input size and decide if it should use the low or high setting"
                },
                {
                  "name": "Low",
                  "value": "low",
                  "description": "The model will receive a low-res 512px x 512px version of the image, and represent the image with a budget of 65 tokens. This allows the API to return faster responses and consume fewer input tokens for use cases that do not require high detail."
                },
                {
                  "name": "High",
                  "value": "high",
                  "description": "Allows the model to see the low res image and then creates detailed crops of input images as 512px squares based on the input image size. Each of the detailed crops uses twice the token budget (65 tokens) for a total of 129 tokens."
                }
              ],
              "default": "auto"
            },
            {
              "displayName": "Message",
              "name": "message",
              "type": "string",
              "required": true,
              "displayOptions": {
                "hide": {
                  "messageType": [
                    "imageBinary",
                    "imageUrl"
                  ]
                }
              },
              "default": ""
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Batch Processing",
      "name": "batching",
      "type": "collection",
      "default": {},
      "description": "Batch processing options for rate limiting",
      "options": [
        {
          "displayName": "Batch Size",
          "name": "batchSize",
          "default": 5,
          "type": "number",
          "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
        },
        {
          "displayName": "Delay Between Batches",
          "name": "delayBetweenBatches",
          "default": 0,
          "type": "number",
          "description": "Delay in milliseconds between batches. This is useful for rate limiting."
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.7
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Connect an <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_outputParser'>output parser</a> on the canvas to specify the output format you require",
      "name": "notice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "hasOutputParser": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Connect an additional language model on the canvas to use it as a fallback if the main model fails",
      "name": "fallbackNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "needsFallback": [
            true
          ]
        }
      }
    }
  ]


node_type: nodes-langchain.chainRetrievalQa
package_name: @n8n/n8n-nodes-langchain
display_name: Question and Answer Chain
description: Answer questions about retrieved documents
category: transform
development_style: programmatic
version: 1.6
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Question and Answer Chain node documentation
  description: Learn how to use the Question and Answer Chain node in n8n. Follow technical documentation to integrate Question and Answer Chain node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # Question and Answer Chain node

  Use the Question and Answer Chain node to use a [vector store](/glossary.md#ai-vector-store) as a retriever.

  On this page, you'll find the node parameters for the Question and Answer Chain node, and links to more resources.

  ## Node parameters

  ### Query

  The question you want to ask.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'retrieval-qanda-chain') ]]

  ## Related resources

  Refer to [LangChain's documentation on retrieval chains](https://js.langchain.com/docs/tutorials/rag/){:target=_blank .external-link} for examples of how LangChain can use a vector store as a retriever.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"

  ## Common issues

  For common errors or issues and suggested resolution steps, refer to [Common Issues](/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainretrievalqa/common-issues.md).

  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "Save time with an <a href=\"/templates/1960\" target=\"_blank\">example</a> of how this node works",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Query",
      "name": "query",
      "type": "string",
      "default": "={{ $json.input }}",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Query",
      "name": "query",
      "type": "string",
      "default": "={{ $json.chat_input }}",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1.1
          ]
        }
      }
    },
    {
      "displayName": "Query",
      "name": "query",
      "type": "string",
      "default": "={{ $json.chatInput }}",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1.2
          ]
        }
      }
    },
    {
      "displayName": "Source for Prompt (User Message)",
      "name": "promptType",
      "type": "options",
      "default": "auto",
      "options": [
        {
          "name": "Connected Chat Trigger Node",
          "value": "auto",
          "description": "Looks for an input field called 'chatInput' that is coming from a directly connected Chat Trigger"
        },
        {
          "name": "Define below",
          "value": "define",
          "description": "Use an expression to reference data in previous nodes or enter static text"
        }
      ],
      "displayOptions": {
        "hide": {
          "@version": [
            {
              "_cnd": {
                "lte": 1.2
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Prompt (User Message)",
      "name": "text",
      "type": "string",
      "default": "={{ $json.chatInput }}",
      "required": true,
      "displayOptions": {
        "show": {
          "promptType": [
            "auto"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.4
              }
            }
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Prompt (User Message)",
      "name": "text",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "promptType": [
            "define"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Prompt Template",
          "name": "systemPromptTemplate",
          "type": "string",
          "default": "You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question.\nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\nContext: {context}",
          "typeOptions": {
            "rows": 6
          },
          "description": "Template string used for the system prompt. This should include the variable `{context}` for the provided context. For text completion models, you should also include the variable `{question}` for the user’s query.",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "lt": 1.5
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "System Prompt Template",
          "name": "systemPromptTemplate",
          "type": "string",
          "default": "You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question.\nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n----------------\nContext: {context}",
          "typeOptions": {
            "rows": 6
          },
          "description": "Template string used for the system prompt. This should include the variable `{context}` for the provided context. For text completion models, you should also include the variable `{input}` for the user’s query.",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.5
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Batch Processing",
          "name": "batching",
          "type": "collection",
          "placeholder": "Add Batch Processing Option",
          "description": "Batch processing options for rate limiting",
          "default": {},
          "options": [
            {
              "displayName": "Batch Size",
              "name": "batchSize",
              "default": 5,
              "type": "number",
              "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
            },
            {
              "displayName": "Delay Between Batches",
              "name": "delayBetweenBatches",
              "default": 0,
              "type": "number",
              "description": "Delay in milliseconds between batches. This is useful for rate limiting."
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.6
                  }
                }
              ]
            }
          }
        }
      ]
    }
  ]


node_type: nodes-langchain.sentimentAnalysis
package_name: @n8n/n8n-nodes-langchain
display_name: Sentiment Analysis
description: Analyze the sentiment of your text
category: transform
development_style: programmatic
version: 1.1
operations: []
credentials_required: []
updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Sentiment Analysis node documentation
  description: Learn how to use the Sentiment Analysis node in n8n. Follow technical documentation to integrate Sentiment Analysis node into your workflows.
  contentType: [integration, reference]
  ---

  # Sentiment Analysis node

  Use the Sentiment Analysis node to analyze the sentiment of incoming text data.

  The language model uses the [**Sentiment Categories**](#node-options) in the node options to determine each item's sentiment.

  ## Node parameters

  * **Text to Analyze** defines the input text for sentiment analysis. This is an expression that references a field from the input items. For example, this could be 
  `{{ $json.chatInput }}` if the input is from a chat or message source. By default, it expects a `text` field.

  ## Node options

  * **Sentiment Categories**: Define the categories that you want to classify your input as.
      * By default, these are `Positive, Neutral, Negative`. You can customize these categories to fit your specific use case, such as `Very Positive, Positive, Neutral, Negative, Very Negative` for more granular analysis.
  * **Include Detailed Results**: When turned on, this option includes sentiment strength and confidence scores in the output. Note that these scores are estimates generated by the language model and are rough indicators rather than precise measurements.
  * **System Prompt Template**: Use this option to change the system prompt that's used for the sentiment analysis. It uses the `{categories}` placeholder for the categories.
  * **Enable Auto-Fixing**: When enabled, the node automatically fixes model outputs to ensure they match the expected format. Do this by sending the schema parsing error to the LLM and asking it to fix it.

  ## Usage Notes

  ### Model Temperature Setting

  It's strongly advised to set the temperature of the connected language model to 0 or a value close to 0. This helps ensure that the results are as deterministic as possible, providing more consistent and reliable sentiment analysis across multiple runs.

  ### Language Considerations

  The node's performance may vary depending on the language of the input text.

  For best results, ensure your chosen language model supports the input language.

  ### Processing Large Volumes

  When analyzing large amounts of text, consider splitting the input into smaller chunks to optimize processing time and resource usage.

  ### Iterative Refinement

  For complex sentiment analysis tasks, you may need to iteratively refine the system prompt and categories to achieve the desired results.

  ## Example Usage

  ### Basic Sentiment Analysis

  1. Connect a data source (for example, RSS Feed, HTTP Request) to the Sentiment Analysis node.
  2. Set the "Text to Analyze" field to the relevant item property (for example, `{{ $json.content }}` for blog post content).
  3. Keep the default sentiment categories.
  4. Connect the node's outputs to separate paths for processing positive, neutral, and negative sentiments differently.

  ### Custom Category Analysis

  1. Change the **Sentiment Categories** to `Excited, Happy, Neutral, Disappointed, Angry`.
  2. Adjust your workflow to handle these five output categories.
  3. Use this setup to analyze customer feedback with more nuanced emotional categories.

  ## Related resources

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "Text to Analyze",
      "name": "inputText",
      "type": "string",
      "default": "",
      "description": "Use an expression to reference data in previous nodes or enter static text",
      "required": true,
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Sentiment scores are LLM-generated estimates, not statistically rigorous measurements. They may be inconsistent across runs and should be used as rough indicators only.",
      "name": "detailedResultsNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "/options.includeDetailedResults": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Sentiment Categories",
          "name": "categories",
          "type": "string",
          "default": "Positive, Neutral, Negative",
          "description": "A comma-separated list of categories to analyze",
          "noDataExpression": true,
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "System Prompt Template",
          "name": "systemPromptTemplate",
          "type": "string",
          "default": "You are highly intelligent and accurate sentiment analyzer. Analyze the sentiment of the provided text. Categorize it into one of the following: {categories}. Use the provided formatting instructions. Only output the JSON.",
          "description": "String to use directly as the system prompt template",
          "typeOptions": {
            "rows": 6
          }
        },
        {
          "displayName": "Include Detailed Results",
          "name": "includeDetailedResults",
          "type": "boolean",
          "default": false,
          "description": "Whether to include sentiment strength and confidence scores in the output"
        },
        {
          "displayName": "Enable Auto-Fixing",
          "name": "enableAutoFixing",
          "type": "boolean",
          "default": true,
          "description": "Whether to enable auto-fixing (may trigger an additional LLM call if output is broken)"
        },
        {
          "displayName": "Batch Processing",
          "name": "batching",
          "type": "collection",
          "placeholder": "Add Batch Processing Option",
          "description": "Batch processing options for rate limiting",
          "default": {},
          "options": [
            {
              "displayName": "Batch Size",
              "name": "batchSize",
              "default": 5,
              "type": "number",
              "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
            },
            {
              "displayName": "Delay Between Batches",
              "name": "delayBetweenBatches",
              "default": 0,
              "type": "number",
              "description": "Delay in milliseconds between batches. This is useful for rate limiting."
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.1
                  }
                }
              ]
            }
          }
        }
      ]
    }
  ]

outputs:
  [
    "={{((parameters, defaultCategories) => {\n  const options = parameters?.options ?? {};\n  const categories = options?.categories ?? defaultCategories;\n  const categoriesArray = categories.split(\",\").map((cat) => cat.trim());\n  const ret = categoriesArray.map((cat) => ({ type: \"main\", displayName: cat }));\n  return ret;\n})($parameter, \"Positive, Neutral, Negative\")}}"
  ]


node_type: nodes-langchain.informationExtractor
package_name: @n8n/n8n-nodes-langchain
display_name: Information Extractor
description: Extract information from text in a structured format
category: transform
development_style: programmatic
version: 1.2
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "Text",
      "name": "text",
      "type": "string",
      "default": "",
      "description": "The text to extract information from",
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Schema Type",
      "name": "schemaType",
      "type": "options",
      "default": "fromAttributes",
      "description": "How to specify the schema for the desired output",
      "options": [
        {
          "name": "From Attribute Descriptions",
          "value": "fromAttributes",
          "description": "Extract specific attributes from the text based on types and descriptions"
        },
        {
          "name": "Generate From JSON Example",
          "value": "fromJson",
          "description": "Generate a schema from an example JSON object"
        },
        {
          "name": "Define using JSON Schema",
          "value": "manual",
          "description": "Define the JSON schema manually"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "JSON Example",
      "name": "jsonSchemaExample",
      "type": "json",
      "default": "{\n\t\"state\": \"California\",\n\t\"cities\": [\"Los Angeles\", \"San Francisco\", \"San Diego\"]\n}",
      "description": "Example JSON object to use to generate the schema",
      "displayOptions": {
        "show": {
          "schemaType": [
            "fromJson"
          ]
        }
      },
      "typeOptions": {
        "rows": 10
      },
      "noDataExpression": true
    },
    {
      "displayName": "All properties will be required. To make them optional, use the 'JSON Schema' schema type instead",
      "name": "notice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.2
              }
            }
          ],
          "schemaType": [
            "fromJson"
          ]
        }
      }
    },
    {
      "displayName": "Input Schema",
      "name": "inputSchema",
      "type": "json",
      "default": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"state\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"cities\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t}\n\t}\n}",
      "description": "Schema to use for the function",
      "displayOptions": {
        "show": {
          "schemaType": [
            "manual"
          ]
        }
      },
      "typeOptions": {
        "rows": 10
      },
      "noDataExpression": false
    },
    {
      "displayName": "Attributes",
      "name": "attributes",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "attributes",
          "displayName": "Attribute List",
          "values": [
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "",
              "description": "Attribute to extract",
              "placeholder": "e.g. company_name",
              "required": true
            },
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "description": "Data type of the attribute",
              "required": true,
              "options": [
                {
                  "name": "Boolean",
                  "value": "boolean"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Number",
                  "value": "number"
                },
                {
                  "name": "String",
                  "value": "string"
                }
              ],
              "default": "string"
            },
            {
              "displayName": "Description",
              "name": "description",
              "type": "string",
              "default": "",
              "description": "Describe your attribute",
              "placeholder": "Add description for the attribute",
              "required": true
            },
            {
              "displayName": "Required",
              "name": "required",
              "type": "boolean",
              "default": false,
              "description": "Whether attribute is required",
              "required": true
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "schemaType": [
            "fromAttributes"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "System Prompt Template",
          "name": "systemPromptTemplate",
          "type": "string",
          "default": "You are an expert extraction algorithm.\nOnly extract relevant information from the text.\nIf you do not know the value of an attribute asked to extract, you may omit the attribute's value.",
          "description": "String to use directly as the system prompt template",
          "typeOptions": {
            "rows": 6
          }
        },
        {
          "displayName": "Batch Processing",
          "name": "batching",
          "type": "collection",
          "placeholder": "Add Batch Processing Option",
          "description": "Batch processing options for rate limiting",
          "default": {},
          "options": [
            {
              "displayName": "Batch Size",
              "name": "batchSize",
              "default": 5,
              "type": "number",
              "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
            },
            {
              "displayName": "Delay Between Batches",
              "name": "delayBetweenBatches",
              "default": 0,
              "type": "number",
              "description": "Delay in milliseconds between batches. This is useful for rate limiting."
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.1
                  }
                }
              ]
            }
          }
        }
      ]
    }
  ]


node_type: nodes-langchain.textClassifier
package_name: @n8n/n8n-nodes-langchain
display_name: Text Classifier
description: Classify your text into distinct categories
category: transform
development_style: programmatic
version: 1.1
operations: []
credentials_required: []
updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "Text to Classify",
      "name": "inputText",
      "type": "string",
      "default": "",
      "description": "Use an expression to reference data in previous nodes or enter static text",
      "required": true,
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "Categories",
      "name": "categories",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "categories",
          "displayName": "Categories",
          "values": [
            {
              "displayName": "Category",
              "name": "category",
              "type": "string",
              "default": "",
              "description": "Category to add",
              "required": true
            },
            {
              "displayName": "Description",
              "name": "description",
              "type": "string",
              "default": "",
              "description": "Describe your category if it's not obvious"
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Allow Multiple Classes To Be True",
          "name": "multiClass",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "When No Clear Match",
          "name": "fallback",
          "type": "options",
          "default": "discard",
          "description": "What to do with items that don’t match the categories exactly",
          "options": [
            {
              "name": "Discard Item",
              "value": "discard",
              "description": "Ignore the item and drop it from the output"
            },
            {
              "name": "Output on Extra, 'Other' Branch",
              "value": "other",
              "description": "Create a separate output branch called 'Other'"
            }
          ]
        },
        {
          "displayName": "System Prompt Template",
          "name": "systemPromptTemplate",
          "type": "string",
          "default": "Please classify the text provided by the user into one of the following categories: {categories}, and use the provided formatting instructions below. Don't explain, and only output the json.",
          "description": "String to use directly as the system prompt template",
          "typeOptions": {
            "rows": 6
          }
        },
        {
          "displayName": "Enable Auto-Fixing",
          "name": "enableAutoFixing",
          "type": "boolean",
          "default": true,
          "description": "Whether to enable auto-fixing (may trigger an additional LLM call if output is broken)"
        },
        {
          "displayName": "Batch Processing",
          "name": "batching",
          "type": "collection",
          "placeholder": "Add Batch Processing Option",
          "description": "Batch processing options for rate limiting",
          "default": {},
          "options": [
            {
              "displayName": "Batch Size",
              "name": "batchSize",
              "default": 5,
              "type": "number",
              "description": "How many items to process in parallel. This is useful for rate limiting, but might impact the log output ordering."
            },
            {
              "displayName": "Delay Between Batches",
              "name": "delayBetweenBatches",
              "default": 0,
              "type": "number",
              "description": "Delay in milliseconds between batches. This is useful for rate limiting."
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.1
                  }
                }
              ]
            }
          }
        }
      ]
    }
  ]

outputs:
  [
    "={{((parameters) => {\n  const categories = parameters.categories?.categories ?? [];\n  const fallback = parameters.options?.fallback;\n  const ret = categories.map((cat) => {\n    return { type: \"main\", displayName: cat.category };\n  });\n  if (fallback === \"other\") ret.push({ type: \"main\", displayName: \"Other\" });\n  return ret;\n})($parameter)}}"
  ]


node_type: nodes-langchain.code
package_name: @n8n/n8n-nodes-langchain
display_name: LangChain Code
description: LangChain Code Node
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: LangChain Code node documentation
  description: Learn how to use the LangChain Code node in n8n. Follow technical documentation to integrate LangChain Code node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # LangChain Code node

  Use the LangChain Code node to import LangChain. This means if there is functionality you need that n8n hasn't created a node for, you can still use it. By configuring the LangChain Code node connectors you can use it as a normal node, root node or sub-node.

  On this page, you'll find the node parameters, guidance on configuring the node, and links to more resources.

  /// note | Not available on Cloud
  This node is only available on self-hosted n8n.
  ///

  ## Node parameters

  ### Add Code

  Add your custom code. Choose either **Execute** or **Supply Data** mode. You can only use one mode.

  Unlike the [Code node](/integrations/builtin/core-nodes/n8n-nodes-base.code/index.md), the LangChain Code node doesn't support Python.

  * **Execute**: use the LangChain Code node like n8n's own Code node. This takes input data from the workflow, processes it, and returns it as the node output. This mode requires a main input and output. You must create these connections in **Inputs** and **Outputs**.
  * **Supply Data**: use the LangChain Code node as a sub-node, sending data to a root node. This uses an output other than main.

  By default, you can't load built-in or external modules in this node. Self-hosted users can [enable built-in and external modules](/hosting/configuration/configuration-methods.md).

  ### Inputs

  Choose the input types. 

  The main input is the normal connector found in all n8n workflows. If you have a main input and output set in the node, **Execute** code is required.

  ### Outputs

  Choose the output types. 

  The main output is the normal connector found in all n8n workflows. If you have a main input and output set in the node, **Execute** code is required.

  ## Node inputs and outputs configuration

  By configuring the LangChain Code node connectors (inputs and outputs) you can use it as an app node, root node or sub-node.

  ![Screenshot of a workflow with four LangChain nodes, configured as different node types](/_images/integrations/builtin/cluster-nodes/langchaincode/create-node-types.png)

  | Node type | Inputs | Outputs | Code mode |
  | --------- | ------ | ------- | --------- |
  | App node. Similar to the [Code node](/integrations/builtin/core-nodes/n8n-nodes-base.code/index.md). | Main | Main | Execute |
  | Root node | Main; at least one other type | Main | Execute |
  | Sub-node | - | A type other than main. Must match the input type you want to connect to. | Supply Data |
  | Sub-node with sub-nodes | A type other than main |A type other than main. Must match the input type you want to connect to. | Supply Data |

  ## Built-in methods

  n8n provides these methods to make it easier to perform common tasks in the LangChain Code node.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-root-nodes/langchaincode/builtin-methods.md"

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'langchain-code') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "Code",
      "name": "code",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "name": "execute",
          "displayName": "Execute",
          "values": [
            {
              "displayName": "JavaScript - Execute",
              "name": "code",
              "type": "string",
              "typeOptions": {
                "editor": "jsEditor"
              },
              "default": "const { PromptTemplate } = require('@langchain/core/prompts');\n\nconst query = 'Tell me a joke';\nconst prompt = PromptTemplate.fromTemplate(query);\n\n// If you are allowing more than one language model input connection (-1 or\n// anything greater than 1), getInputConnectionData returns an array, so you\n// will have to change the code below it to deal with that. For example, use\n// llm[0] in the chain definition\n\nconst llm = await this.getInputConnectionData('ai_languageModel', 0);\nlet chain = prompt.pipe(llm);\nconst output = await chain.invoke();\nreturn [ {json: { output } } ];",
              "hint": "This code will only run and return data if a \"Main\" input & output got created.",
              "noDataExpression": true
            }
          ]
        },
        {
          "name": "supplyData",
          "displayName": "Supply Data",
          "values": [
            {
              "displayName": "JavaScript - Supply Data",
              "name": "code",
              "type": "string",
              "typeOptions": {
                "editor": "jsEditor"
              },
              "default": "const { WikipediaQueryRun } = require( '@langchain/community/tools/wikipedia_query_run');\nreturn new WikipediaQueryRun();",
              "hint": "This code will only run and return data if an output got created which is not \"Main\".",
              "noDataExpression": true
            }
          ]
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "You can import LangChain and use all available functionality. Debug by using <code>console.log()</code> statements and viewing their output in the browser console.",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Inputs",
      "name": "inputs",
      "type": "fixedCollection",
      "default": {},
      "description": "The input to add",
      "options": [
        {
          "name": "input",
          "displayName": "Input",
          "values": [
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "Chain",
                  "value": "ai_chain"
                },
                {
                  "name": "Document",
                  "value": "ai_document"
                },
                {
                  "name": "Embedding",
                  "value": "ai_embedding"
                },
                {
                  "name": "Language Model",
                  "value": "ai_languageModel"
                },
                {
                  "name": "Memory",
                  "value": "ai_memory"
                },
                {
                  "name": "Output Parser",
                  "value": "ai_outputParser"
                },
                {
                  "name": "Text Splitter",
                  "value": "ai_textSplitter"
                },
                {
                  "name": "Tool",
                  "value": "ai_tool"
                },
                {
                  "name": "Vector Store",
                  "value": "ai_vectorStore"
                },
                {
                  "name": "Main",
                  "value": "main"
                }
              ],
              "noDataExpression": true,
              "default": "",
              "required": true,
              "description": "The type of the input"
            },
            {
              "displayName": "Max Connections",
              "name": "maxConnections",
              "type": "number",
              "noDataExpression": true,
              "default": -1,
              "required": true,
              "description": "How many nodes of this type are allowed to be connected. Set it to -1 for unlimited."
            },
            {
              "displayName": "Required",
              "name": "required",
              "type": "boolean",
              "noDataExpression": true,
              "default": false,
              "required": true,
              "description": "Whether the input needs a connection"
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true,
        "sortable": true
      },
      "noDataExpression": true
    },
    {
      "displayName": "Outputs",
      "name": "outputs",
      "type": "fixedCollection",
      "default": {},
      "description": "The output to add",
      "options": [
        {
          "name": "output",
          "displayName": "Output",
          "values": [
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "Chain",
                  "value": "ai_chain"
                },
                {
                  "name": "Document",
                  "value": "ai_document"
                },
                {
                  "name": "Embedding",
                  "value": "ai_embedding"
                },
                {
                  "name": "Language Model",
                  "value": "ai_languageModel"
                },
                {
                  "name": "Memory",
                  "value": "ai_memory"
                },
                {
                  "name": "Output Parser",
                  "value": "ai_outputParser"
                },
                {
                  "name": "Text Splitter",
                  "value": "ai_textSplitter"
                },
                {
                  "name": "Tool",
                  "value": "ai_tool"
                },
                {
                  "name": "Vector Store",
                  "value": "ai_vectorStore"
                },
                {
                  "name": "Main",
                  "value": "main"
                }
              ],
              "noDataExpression": true,
              "default": "",
              "required": true,
              "description": "The type of the input"
            }
          ]
        }
      ],
      "typeOptions": {
        "multipleValues": true,
        "sortable": true
      },
      "noDataExpression": true
    }
  ]

outputs:
  [
    "={{ ((values) => { const connectorTypes = {\"ai_chain\":\"Chain\",\"ai_document\":\"Document\",\"ai_embedding\":\"Embedding\",\"ai_languageModel\":\"Language Model\",\"ai_memory\":\"Memory\",\"ai_outputParser\":\"Output Parser\",\"ai_textSplitter\":\"Text Splitter\",\"ai_tool\":\"Tool\",\"ai_vectorStore\":\"Vector Store\",\"main\":\"Main\"}; return values.map(value => { return { type: value.type, displayName: connectorTypes[value.type] !== 'Main' ? connectorTypes[value.type] : undefined } } ) })($parameter.outputs.output) }}"
  ]


node_type: nodes-langchain.documentDefaultDataLoader
package_name: @n8n/n8n-nodes-langchain
display_name: Default Data Loader
description: Load data from previous step in the workflow
category: transform
development_style: programmatic
version: 1.1
operations: []
credentials_required: []
outputs:
  [
  "ai_document"
  ]

output_names:
  [
  "Document"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Default Data Loader node documentation
  description: Learn how to use the Default Data Loader node in n8n. Follow technical documentation to integrate Default Data Loader node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Default Data Loader node

  Use the Default Data Loader node to load binary data files or JSON data for [vector stores](/glossary.md#ai-vector-store) or summarization.

  On this page, you'll find a list of parameters the Default Data Loader node supports, and links to more resources.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Text Splitting**: Choose from:
  	* **Simple**: Uses the [Recursive Character Text Splitter](/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter.md) with a chunk size of 1000 and an overlap of 200.
  	* **Custom**: Allows you to connect a text splitter of your choice.
  * **Type of Data**: Select **Binary** or **JSON**.
  * **Mode**: Choose from:
  	* **Load All Input Data**: Use all the node's input data.
  	* **Load Specific Data**: Use [expressions](/code/expressions.md) to define the data you want to load. You can add text as well as expressions. This means you can create a custom document from a mix of text and expressions.
  * **Data Format**: Displays when you set **Type of Data** to **Binary**. Select the file MIME type for your binary data. Set to **Automatically Detect by MIME Type** if you want n8n to set the data format for you. If you set a specific data format and the incoming file MIME type doesn't match it, the node errors. If you use **Automatically Detect by MIME Type**, the node falls back to text format if it can't match the file MIME type to a supported data format.

  ## Node options

  * **Metadata**: Set the metadata that should accompany the document in the vector store. This is what you match to using the **Metadata Filter** option when retrieving data using the vector store nodes.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'default-data-loader') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-doc-loaders-link.md"

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This will load data from a previous step in the workflow. <a href=\"/templates/1962\" target=\"_blank\">Example</a>",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Type of Data",
      "name": "dataType",
      "type": "options",
      "default": "json",
      "options": [
        {
          "name": "JSON",
          "value": "json",
          "description": "Process JSON data from previous step in the workflow"
        },
        {
          "name": "Binary",
          "value": "binary",
          "description": "Process binary data from previous step in the workflow"
        }
      ],
      "required": true,
      "noDataExpression": true
    },
    {
      "displayName": "Mode",
      "name": "jsonMode",
      "type": "options",
      "default": "allInputData",
      "options": [
        {
          "name": "Load All Input Data",
          "value": "allInputData",
          "description": "Use all JSON data that flows into the parent agent or chain"
        },
        {
          "name": "Load Specific Data",
          "value": "expressionData",
          "description": "Load a subset of data, and/or data from any previous step in the workflow"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "dataType": [
            "json"
          ]
        }
      }
    },
    {
      "displayName": "Mode",
      "name": "binaryMode",
      "type": "options",
      "default": "allInputData",
      "options": [
        {
          "name": "Load All Input Data",
          "value": "allInputData",
          "description": "Use all Binary data that flows into the parent agent or chain"
        },
        {
          "name": "Load Specific Data",
          "value": "specificField",
          "description": "Load data from a specific field in the parent agent or chain"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "dataType": [
            "binary"
          ]
        }
      }
    },
    {
      "displayName": "Data Format",
      "name": "loader",
      "type": "options",
      "default": "auto",
      "options": [
        {
          "name": "Automatically Detect by Mime Type",
          "value": "auto",
          "description": "Uses the mime type to detect the format"
        },
        {
          "name": "CSV",
          "value": "csvLoader",
          "description": "Load CSV files"
        },
        {
          "name": "Docx",
          "value": "docxLoader",
          "description": "Load Docx documents"
        },
        {
          "name": "EPub",
          "value": "epubLoader",
          "description": "Load EPub files"
        },
        {
          "name": "JSON",
          "value": "jsonLoader",
          "description": "Load JSON files"
        },
        {
          "name": "PDF",
          "value": "pdfLoader",
          "description": "Load PDF documents"
        },
        {
          "name": "Text",
          "value": "textLoader",
          "description": "Load plain text files"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "dataType": [
            "binary"
          ]
        }
      }
    },
    {
      "displayName": "Data",
      "name": "jsonData",
      "type": "string",
      "default": "",
      "description": "Drag and drop fields from the input pane, or use an expression",
      "required": true,
      "displayOptions": {
        "show": {
          "dataType": [
            "json"
          ],
          "jsonMode": [
            "expressionData"
          ]
        }
      },
      "typeOptions": {
        "rows": 6
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "binaryDataKey",
      "type": "string",
      "default": "data",
      "description": "The name of the field in the agent or chain’s input that contains the binary file to be processed",
      "required": true,
      "displayOptions": {
        "show": {
          "dataType": [
            "binary"
          ]
        },
        "hide": {
          "binaryMode": [
            "allInputData"
          ]
        }
      }
    },
    {
      "displayName": "Text Splitting",
      "name": "textSplittingMode",
      "type": "options",
      "default": "simple",
      "options": [
        {
          "name": "Simple",
          "value": "simple",
          "description": "Splits every 1000 characters with a 200 character overlap"
        },
        {
          "name": "Custom",
          "value": "custom",
          "description": "Connect a custom text-splitting sub-node"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1.1
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "JSON Pointers",
          "name": "pointers",
          "type": "string",
          "default": "",
          "description": "Pointers to extract from JSON, e.g. \"/text\" or \"/text, /meta/title\"",
          "displayOptions": {
            "show": {
              "/loader": [
                "jsonLoader",
                "auto"
              ]
            }
          }
        },
        {
          "displayName": "CSV Separator",
          "name": "separator",
          "type": "string",
          "description": "Separator to use for CSV",
          "default": ",",
          "displayOptions": {
            "show": {
              "/loader": [
                "csvLoader",
                "auto"
              ]
            }
          }
        },
        {
          "displayName": "CSV Column",
          "name": "column",
          "type": "string",
          "default": "",
          "description": "Column to extract from CSV",
          "displayOptions": {
            "show": {
              "/loader": [
                "csvLoader",
                "auto"
              ]
            }
          }
        },
        {
          "displayName": "Split Pages in PDF",
          "description": "Whether to split PDF pages into separate documents",
          "name": "splitPages",
          "type": "boolean",
          "default": true,
          "displayOptions": {
            "show": {
              "/loader": [
                "pdfLoader",
                "auto"
              ]
            }
          }
        },
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "fixedCollection",
          "description": "Metadata to add to each document. Could be used for filtering during retrieval",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "placeholder": "Add property",
          "options": [
            {
              "name": "metadataValues",
              "displayName": "Fields to Set",
              "values": [
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": "",
                  "required": true
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        }
      ]
    }
  ]


node_type: nodes-langchain.documentBinaryInputLoader
package_name: @n8n/n8n-nodes-langchain
display_name: Binary Input Loader
description: Use binary data from a previous step in the workflow
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "ai_document"
  ]

output_names:
  [
  "Document"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Loader Type",
      "name": "loader",
      "type": "options",
      "default": "jsonLoader",
      "options": [
        {
          "name": "CSV Loader",
          "value": "csvLoader",
          "description": "Load CSV files"
        },
        {
          "name": "Docx Loader",
          "value": "docxLoader",
          "description": "Load Docx documents"
        },
        {
          "name": "EPub Loader",
          "value": "epubLoader",
          "description": "Load EPub files"
        },
        {
          "name": "JSON Loader",
          "value": "jsonLoader",
          "description": "Load JSON files"
        },
        {
          "name": "PDF Loader",
          "value": "pdfLoader",
          "description": "Load PDF documents"
        },
        {
          "name": "Text Loader",
          "value": "textLoader",
          "description": "Load plain text files"
        }
      ],
      "required": true
    },
    {
      "displayName": "Binary Data Key",
      "name": "binaryDataKey",
      "type": "string",
      "default": "data",
      "description": "Name of the binary property from which to read the file buffer",
      "required": true
    },
    {
      "displayName": "Split Pages",
      "name": "splitPages",
      "type": "boolean",
      "default": true,
      "displayOptions": {
        "show": {
          "loader": [
            "pdfLoader"
          ]
        }
      }
    },
    {
      "displayName": "Column",
      "name": "column",
      "type": "string",
      "default": "",
      "description": "Column to extract from CSV",
      "displayOptions": {
        "show": {
          "loader": [
            "csvLoader"
          ]
        }
      }
    },
    {
      "displayName": "Separator",
      "name": "separator",
      "type": "string",
      "default": ",",
      "description": "Separator to use for CSV",
      "displayOptions": {
        "show": {
          "loader": [
            "csvLoader"
          ]
        }
      }
    },
    {
      "displayName": "Pointers",
      "name": "pointers",
      "type": "string",
      "default": "",
      "description": "Pointers to extract from JSON, e.g. \"/text\" or \"/text, /meta/title\"",
      "displayOptions": {
        "show": {
          "loader": [
            "jsonLoader"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "fixedCollection",
          "description": "Metadata to add to each document. Could be used for filtering during retrieval",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "placeholder": "Add property",
          "options": [
            {
              "name": "metadataValues",
              "displayName": "Fields to Set",
              "values": [
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": "",
                  "required": true
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        }
      ]
    }
  ]


node_type: nodes-langchain.documentGithubLoader
package_name: @n8n/n8n-nodes-langchain
display_name: GitHub Document Loader
description: Use GitHub data as input to this chain
category: transform
development_style: programmatic
version: 1.1
operations: []
credentials_required:
  [
  {
  "name": "githubApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_document"
  ]

output_names:
  [
  "Document"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: GitHub Document Loader node documentation
  description: Learn how to use the GitHub Document Loader node in n8n. Follow technical documentation to integrate GitHub Document Loader node into your workflows.
  contentType: [integration, reference]
  ---

  # GitHub Document Loader node

  Use the GitHub Document Loader node to load data from a GitHub repository for [vector stores](/glossary.md#ai-vector-store) or summarization.

  On this page, you'll find the node parameters for the GitHub Document Loader node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/github.md). This node doesn't support OAuth for authentication.
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Text Splitting**: Choose from:
  	* **Simple**: Uses the [Recursive Character Text Splitter](/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.textsplitterrecursivecharactertextsplitter.md) with a chunk size of 1000 and an overlap of 200.
      * **Custom**: Allows you to connect a text splitter of your choice.
  * **Repository Link**: Enter the URL of your GitHub repository.
  * **Branch**: Enter the branch name to use.

  ## Node options

  * **Recursive**: Select whether to include sub-folders and files (turned on) or not (turned off).
  * **Ignore Paths**: Enter directories to ignore.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'github-document-loader') ]]

  ## Related resources

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-doc-loaders-link.md"

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Repository Link",
      "name": "repository",
      "type": "string",
      "default": ""
    },
    {
      "displayName": "Branch",
      "name": "branch",
      "type": "string",
      "default": "main"
    },
    {
      "displayName": "Text Splitting",
      "name": "textSplittingMode",
      "type": "options",
      "default": "simple",
      "options": [
        {
          "name": "Simple",
          "value": "simple",
          "description": "Splits every 1000 characters with a 200 character overlap"
        },
        {
          "name": "Custom",
          "value": "custom",
          "description": "Connect a custom text-splitting sub-node"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            1.1
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Options",
      "name": "additionalOptions",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Recursive",
          "name": "recursive",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "Ignore Paths",
          "name": "ignorePaths",
          "type": "string",
          "description": "Comma-separated list of paths to ignore, e.g. \"docs, src/tests",
          "default": ""
        }
      ]
    }
  ]


node_type: nodes-langchain.documentJsonInputLoader
package_name: @n8n/n8n-nodes-langchain
display_name: JSON Input Loader
description: Use JSON data from a previous step in the workflow
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required: []
outputs:
  [
  "ai_document"
  ]

output_names:
  [
  "Document"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Pointers",
      "name": "pointers",
      "type": "string",
      "default": "",
      "description": "Pointers to extract from JSON, e.g. \"/text\" or \"/text, /meta/title\""
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "fixedCollection",
          "description": "Metadata to add to each document. Could be used for filtering during retrieval",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {},
          "placeholder": "Add property",
          "options": [
            {
              "name": "metadataValues",
              "displayName": "Fields to Set",
              "values": [
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": "",
                  "required": true
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        }
      ]
    }
  ]


node_type: nodes-langchain.embeddingsCohere
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings Cohere
description: Use Cohere Embeddings
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "cohereApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings Cohere node documentation
  description: Learn how to use the Embeddings Cohere node in n8n. Follow technical documentation to integrate Embeddings Cohere node into your workflows.
  contentType: [integration, reference]
  ---

  # Embeddings Cohere node

  Use the Embeddings Cohere node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings Cohere node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/cohere.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the embedding. Choose from:
      * **Embed-English-v2.0(4096 Dimensions)**
  	* **Embed-English-Light-v2.0(1024 Dimensions)**
  	* **Embed-Multilingual-v2.0(768 Dimensions)**

  Learn more about available models in [Cohere's models documentation](https://docs.cohere.com/docs/models){:target=_blank .external-link}.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'embeddings-cohere') ]]

  ## Related resources

  Refer to [Langchain's Cohere embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/cohere/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Each model is using different dimensional density for embeddings. Please make sure to use the same dimensionality for your vector store. The default model is using 768-dimensional embeddings.",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Model",
      "name": "modelName",
      "type": "options",
      "default": "embed-english-v2.0",
      "description": "The model which will generate the embeddings. <a href=\"https://docs.cohere.com/docs/models\">Learn more</a>.",
      "options": [
        {
          "name": "Embed-English-Light-v2.0 (1024 Dimensions)",
          "value": "embed-english-light-v2.0"
        },
        {
          "name": "Embed-English-Light-v3.0 (384 Dimensions)",
          "value": "embed-english-light-v3.0"
        },
        {
          "name": "Embed-English-v2.0 (4096 Dimensions)",
          "value": "embed-english-v2.0"
        },
        {
          "name": "Embed-English-v3.0 (1024 Dimensions)",
          "value": "embed-english-v3.0"
        },
        {
          "name": "Embed-Multilingual-Light-v3.0 (384 Dimensions)",
          "value": "embed-multilingual-light-v3.0"
        },
        {
          "name": "Embed-Multilingual-v2.0 (768 Dimensions)",
          "value": "embed-multilingual-v2.0"
        },
        {
          "name": "Embed-Multilingual-v3.0 (1024 Dimensions)",
          "value": "embed-multilingual-v3.0"
        }
      ]
    }
  ]


node_type: nodes-langchain.embeddingsAwsBedrock
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings AWS Bedrock
description: Use Embeddings AWS Bedrock
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "aws",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings AWS Bedrock node documentation
  description: Learn how to use the Embeddings AWS Bedrock node in n8n. Follow technical documentation to integrate Embeddings AWS Bedrock node into your workflows.
  contentType: [integration, reference]
  ---

  # Embeddings AWS Bedrock node

  Use the Embeddings AWS Bedrock node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings AWS Bedrock node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/aws.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the embedding.

  Learn more about available models in the [Amazon Bedrock documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html){:target=_blank .external-link}. 

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'embeddings-aws-bedrock') ]]

  ## Related resources

  Refer to [LangChains's AWS Bedrock embeddings documentation](https://js.langchain.com/docs/integrations/platforms/aws/#text-embedding-models){:target=_blank .external-link} and the [AWS Bedrock documentation](https://docs.aws.amazon.com/bedrock/){:target=_blank .external-link} for more information about AWS Bedrock.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "",
      "description": "The model which will generate the completion. <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/foundation-models.html\">Learn more</a>.",
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/foundation-models?byInferenceType=ON_DEMAND&byOutputModality=EMBEDDING"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "modelSummaries"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.modelName}}",
                    "description": "={{$responseItem.modelArn}}",
                    "value": "={{$responseItem.modelId}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    }
  ]


node_type: nodes-langchain.embeddingsAzureOpenAi
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings Azure OpenAI
description: Use Embeddings Azure OpenAI
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "azureOpenAiApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings Azure OpenAI node documentation
  description: Learn how to use the Embeddings Azure OpenAI node in n8n. Follow technical documentation to integrate Embeddings Azure OpenAI node into your workflows.
  contentType: [integration, reference]
  ---

  # Embeddings Azure OpenAI node

  Use the Embeddings Azure OpenAI node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings Azure OpenAI node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/azureopenai.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"


  ## Node options

  * **Model (Deployment) Name**: Select the model (deployment) to use for generating embeddings.
  * **Batch Size**: Enter the maximum number of documents to send in each request.
  * **Strip New Lines**: Select whether to remove new line characters from input text (turned on) or not (turned off). n8n enables this by default.
  * **Timeout**: Enter the maximum amount of time a request can take in seconds. Set to `-1` for no timeout.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'embeddings-azure-openai') ]]

  ## Related resources

  Refer to [LangChains's OpenAI embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/azure_openai/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model (Deployment) Name",
      "name": "model",
      "type": "string",
      "default": "",
      "description": "The name of the model(deployment) to use"
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Batch Size",
          "name": "batchSize",
          "default": 512,
          "typeOptions": {
            "maxValue": 2048
          },
          "description": "Maximum number of documents to send in each request",
          "type": "number"
        },
        {
          "displayName": "Strip New Lines",
          "name": "stripNewLines",
          "default": true,
          "description": "Whether to strip new lines from the input text",
          "type": "boolean"
        },
        {
          "displayName": "Timeout",
          "name": "timeout",
          "default": -1,
          "description": "Maximum amount of time a request is allowed to take in seconds. Set to -1 for no timeout.",
          "type": "number"
        },
        {
          "displayName": "Dimensions",
          "name": "dimensions",
          "description": "The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.",
          "type": "options",
          "options": [
            {
              "name": "256",
              "value": 256
            },
            {
              "name": "512",
              "value": 512
            },
            {
              "name": "1024",
              "value": 1024
            },
            {
              "name": "1536",
              "value": 1536
            },
            {
              "name": "3072",
              "value": 3072
            }
          ]
        }
      ]
    }
  ]


node_type: nodes-langchain.embeddingsGoogleGemini
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings Google Gemini
description: Use Google Gemini Embeddings
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "googlePalmApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings Google Gemini node documentation
  description: Learn how to use the Embeddings Google Gemini node in n8n. Follow technical documentation to integrate Embeddings Google Gemini node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Embeddings Google Gemini node

  Use the Embeddings Google Gemini node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings Google Gemini node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/googleai.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the embedding.

  Learn more about available models in [Google Gemini's models documentation](https://ai.google.dev/models/gemini){:target=_blank .external-link}.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'embeddings-google-gemini') ]]

  ## Related resources

  Refer to [Langchain's Google Generative AI embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/google_generativeai){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Each model is using different dimensional density for embeddings. Please make sure to use the same dimensionality for your vector store. The default model is using 768-dimensional embeddings.",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Model",
      "name": "modelName",
      "type": "options",
      "default": "models/text-embedding-004",
      "description": "The model which will generate the embeddings. <a href=\"https://developers.generativeai.google/api/rest/generativelanguage/models/list\">Learn more</a>.",
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/v1beta/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "models"
                  }
                },
                {
                  "type": "filter",
                  "properties": {
                    "pass": "={{ $responseItem.name.includes('embedding') }}"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.name}}",
                    "value": "={{$responseItem.name}}",
                    "description": "={{$responseItem.description}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    }
  ]


node_type: nodes-langchain.embeddingsGoogleVertex
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings Google Vertex
description: Use Google Vertex Embeddings
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "googleApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings Google Vertex node documentation
  description: Learn how to use the Embeddings Google Vertex node in n8n. Follow technical documentation to integrate Embeddings Google Gemini node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Embeddings Google Vertex node

  Use the Embeddings Google Vertex node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings Google Vertex node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/google/service-account.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  - **Model**: Select the model to use to generate the embedding.

  Learn more about available embedding models in [Google VertexAI embeddings API documentation](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings-api).

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->

  [[templatesWidget(page.title, 'embeddings-google-vertex')]]

  ## Related resources

  Refer to [LangChain's Google Generative AI embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/google_generativeai) for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Each model is using different dimensional density for embeddings. Please make sure to use the same dimensionality for your vector store. The default model is using 768-dimensional embeddings. You can find available models <a href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings-api\">here</a>.",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Project ID",
      "name": "projectId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Select or enter your Google Cloud project ID",
      "required": true,
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "gcpProjectsList"
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string"
        }
      ]
    },
    {
      "displayName": "Model Name",
      "name": "modelName",
      "type": "string",
      "default": "text-embedding-005",
      "description": "The model which will generate the embeddings. <a href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings-api\">Learn more</a>."
    }
  ]


node_type: nodes-langchain.embeddingsHuggingFaceInference
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings Hugging Face Inference
description: Use HuggingFace Inference Embeddings
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "huggingFaceApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings HuggingFace Inference node documentation
  description: Learn how to use the Embeddings HuggingFace Inference node in n8n. Follow technical documentation to integrate Embeddings HuggingFace Inference node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Embeddings HuggingFace Inference node

  Use the Embeddings HuggingFace Inference node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings HuggingFace Inference, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/huggingface.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the embedding.

  Refer to the [Hugging Face models documentation](https://huggingface.co/models?other=embeddings){:target=_blank .external-link} for available models.

  ## Node options

  * **Custom Inference Endpoint**: Enter the URL of your deployed model, hosted by HuggingFace. If you set this, n8n ignores the **Model Name**.

  Refer to [HuggingFace's guide to inference](https://huggingface.co/inference-endpoints){:target=_blank .external-link} for more information.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'embeddings-hugging-face-inference') ]]

  ## Related resources

  Refer to [Langchain's HuggingFace Inference embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/hugging_face_inference/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Each model is using different dimensional density for embeddings. Please make sure to use the same dimensionality for your vector store. The default model is using 768-dimensional embeddings.",
      "name": "notice",
      "type": "notice",
      "default": ""
    },
    {
      "displayName": "Model Name",
      "name": "modelName",
      "type": "string",
      "default": "sentence-transformers/distilbert-base-nli-mean-tokens",
      "description": "The model name to use from HuggingFace library"
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Custom Inference Endpoint",
          "name": "endpointUrl",
          "default": "",
          "description": "Custom endpoint URL",
          "type": "string"
        },
        {
          "displayName": "Provider",
          "name": "provider",
          "type": "options",
          "options": [
            {
              "value": "black-forest-labs",
              "name": "black-forest-labs"
            },
            {
              "value": "cerebras",
              "name": "cerebras"
            },
            {
              "value": "cohere",
              "name": "cohere"
            },
            {
              "value": "fal-ai",
              "name": "fal-ai"
            },
            {
              "value": "featherless-ai",
              "name": "featherless-ai"
            },
            {
              "value": "fireworks-ai",
              "name": "fireworks-ai"
            },
            {
              "value": "groq",
              "name": "groq"
            },
            {
              "value": "hf-inference",
              "name": "hf-inference"
            },
            {
              "value": "hyperbolic",
              "name": "hyperbolic"
            },
            {
              "value": "nebius",
              "name": "nebius"
            },
            {
              "value": "novita",
              "name": "novita"
            },
            {
              "value": "nscale",
              "name": "nscale"
            },
            {
              "value": "openai",
              "name": "openai"
            },
            {
              "value": "ovhcloud",
              "name": "ovhcloud"
            },
            {
              "value": "replicate",
              "name": "replicate"
            },
            {
              "value": "sambanova",
              "name": "sambanova"
            },
            {
              "value": "together",
              "name": "together"
            },
            {
              "value": "auto",
              "name": "auto"
            }
          ],
          "default": "auto"
        }
      ]
    }
  ]


node_type: nodes-langchain.embeddingsMistralCloud
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings Mistral Cloud
description: Use Embeddings Mistral Cloud
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "mistralCloudApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings Mistral Cloud node documentation
  description: Learn how to use the Embeddings Mistral Cloud node in n8n. Follow technical documentation to integrate Embeddings Mistral Cloud node into your workflows.
  contentType: [integration, reference]
  ---

  # Embeddings Mistral Cloud node

  Use the Embeddings Mistral Cloud node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings Mistral Cloud node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/mistral.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the embedding.

  Learn more about available models in [Mistral's models documentation](https://docs.mistral.ai/platform/pricing/){:target=_blank .external-link}.

  ## Node options

  * **Batch Size**: Enter the maximum number of documents to send in each request.
  * **Strip New Lines**: Select whether to remove new line characters from input text (turned on) or not (turned off). n8n enables this by default.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'embeddings-mistral-cloud') ]]

  ## Related resources

  Refer to [Langchain's Mistral embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/mistralai){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "mistral-embed",
      "description": "The model which will compute the embeddings. <a href=\"https://docs.mistral.ai/platform/endpoints/\">Learn more</a>.",
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "filter",
                  "properties": {
                    "pass": "={{ $responseItem.id.includes('embed') }}"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{ $responseItem.id }}",
                    "value": "={{ $responseItem.id }}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Batch Size",
          "name": "batchSize",
          "default": 512,
          "typeOptions": {
            "maxValue": 2048
          },
          "description": "Maximum number of documents to send in each request",
          "type": "number"
        },
        {
          "displayName": "Strip New Lines",
          "name": "stripNewLines",
          "default": true,
          "description": "Whether to strip new lines from the input text",
          "type": "boolean"
        }
      ]
    }
  ]


node_type: nodes-langchain.embeddingsOpenAi
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings OpenAI
description: Use Embeddings OpenAI
category: transform
development_style: programmatic
version: 1.2
operations: []
credentials_required:
  [
  {
  "name": "openAiApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings OpenAI node documentation
  description: Learn how to use the Embeddings OpenAI node in n8n. Follow technical documentation to integrate Embeddings OpenAI node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Embeddings OpenAI node

  Use the Embeddings OpenAI node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings OpenAI node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/openai.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"


  ## Node options

  * **Model**: Select the model to use for generating embeddings.
  * **Base URL**: Enter the URL to send the request to. Use this if you are using a self-hosted OpenAI-like model. 
  * **Batch Size**: Enter the maximum number of documents to send in each request.
  * **Strip New Lines**: Select whether to remove new line characters from input text (turned on) or not (turned off). n8n enables this by default.
  * **Timeout**: Enter the maximum amount of time a request can take in seconds. Set to `-1` for no timeout.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'embeddings-openai') ]]

  ## Related resources

  Refer to [LangChains's OpenAI embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/openai/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "text-embedding-ada-002",
      "description": "The model which will generate the embeddings. <a href=\"https://platform.openai.com/docs/models/overview\">Learn more</a>.",
      "displayOptions": {
        "show": {
          "@version": [
            1
          ]
        }
      },
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || $credentials?.url?.split(\"/\").slice(-1).pop() || \"v1\" }}/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "filter",
                  "properties": {
                    "pass": "={{\n\t\t\t\t\t\t\t\t\t($parameter.options?.baseURL && !$parameter.options?.baseURL?.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t($credentials?.url && !$credentials.url.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t$responseItem.id.includes('embed')\n\t\t\t\t\t\t\t\t}}"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.id}}",
                    "value": "={{$responseItem.id}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "text-embedding-3-small",
      "description": "The model which will generate the embeddings. <a href=\"https://platform.openai.com/docs/models/overview\">Learn more</a>.",
      "displayOptions": {
        "hide": {
          "@version": [
            1
          ]
        }
      },
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{ $parameter.options?.baseURL?.split(\"/\").slice(-1).pop() || $credentials?.url?.split(\"/\").slice(-1).pop() || \"v1\" }}/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "filter",
                  "properties": {
                    "pass": "={{\n\t\t\t\t\t\t\t\t\t($parameter.options?.baseURL && !$parameter.options?.baseURL?.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t($credentials?.url && !$credentials.url.startsWith('https://api.openai.com/')) ||\n\t\t\t\t\t\t\t\t\t$responseItem.id.includes('embed')\n\t\t\t\t\t\t\t\t}}"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.id}}",
                    "value": "={{$responseItem.id}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Dimensions",
          "name": "dimensions",
          "description": "The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.",
          "type": "options",
          "options": [
            {
              "name": "256",
              "value": 256
            },
            {
              "name": "512",
              "value": 512
            },
            {
              "name": "1024",
              "value": 1024
            },
            {
              "name": "1536",
              "value": 1536
            },
            {
              "name": "3072",
              "value": 3072
            }
          ]
        },
        {
          "displayName": "Base URL",
          "name": "baseURL",
          "default": "https://api.openai.com/v1",
          "description": "Override the default base URL for the API",
          "type": "string",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.2
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Batch Size",
          "name": "batchSize",
          "default": 512,
          "typeOptions": {
            "maxValue": 2048
          },
          "description": "Maximum number of documents to send in each request",
          "type": "number"
        },
        {
          "displayName": "Strip New Lines",
          "name": "stripNewLines",
          "default": true,
          "description": "Whether to strip new lines from the input text",
          "type": "boolean"
        },
        {
          "displayName": "Timeout",
          "name": "timeout",
          "default": -1,
          "description": "Maximum amount of time a request is allowed to take in seconds. Set to -1 for no timeout.",
          "type": "number"
        }
      ]
    }
  ]


node_type: nodes-langchain.embeddingsOllama
package_name: @n8n/n8n-nodes-langchain
display_name: Embeddings Ollama
description: Use Ollama Embeddings
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "ollamaApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_embedding"
  ]

output_names:
  [
  "Embeddings"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Embeddings Ollama node documentation
  description: Learn how to use the Embeddings Ollama node in n8n. Follow technical documentation to integrate Embeddings Ollama node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Embeddings Ollama node

  Use the Embeddings Ollama node to generate [embeddings](/glossary.md#ai-embedding) for a given text.

  On this page, you'll find the node parameters for the Embeddings Ollama node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/ollama.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the embedding. Choose from:
      * [all-minilm](https://ollama.com/library/all-minilm) (384 Dimensions)
      * [nomic-embed-text](https://ollama.com/library/nomic-embed-text) (768 Dimensions)

  Learn more about available models in [Ollama's models documentation](https://ollama.ai/library){:target=_blank .external-link}.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'embeddings-ollama') ]]

  ## Related resources

  Refer to [Langchain's Ollama embeddings documentation](https://js.langchain.com/docs/integrations/text_embedding/ollama/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to a vector store. <a data-action='openSelectiveNodeCreator' data-action-parameter-connectiontype='ai_vectorStore'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "llama3.2",
      "description": "The model which will generate the completion. To download models, visit <a href=\"https://ollama.ai/library\">Ollama Models Library</a>.",
      "required": true,
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/api/tags"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "models"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.name}}",
                    "value": "={{$responseItem.name}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    }
  ]


node_type: nodes-langchain.lmChatAnthropic
package_name: @n8n/n8n-nodes-langchain
display_name: Anthropic Chat Model
description: Language Model Anthropic
category: transform
development_style: programmatic
version: 1.3
operations: []
credentials_required:
  [
  {
  "name": "anthropicApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Anthropic Chat Model node documentation
  description: Learn how to use the Anthropic Chat Model node in n8n. Follow technical documentation to integrate Anthropic Chat Model node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Anthropic Chat Model node

  Use the Anthropic Chat Model node to use Anthropic's Claude family of chat models with conversational [agents](/glossary.md#ai-agent).

  On this page, you'll find the node parameters for the Anthropic Chat Model node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/anthropic.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model that generates the completion. Choose from:
  	* **Claude**
  	* **Claude Instant**

  Learn more in the [Anthropic model documentation](https://docs.anthropic.com/claude/reference/selecting-a-model){:target=_blank .external-link}.

  ## Node options

  * **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.
  * **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.
  * **Top K**: Enter the number of token choices the model uses to generate the next token.
  * **Top P**: Use this option to set the probability the completion should use. Use a lower value to ignore less probable options. 

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'anthropic-chat-model') ]]

  ## Related resources

  Refer to [LangChains's Anthropic documentation](https://js.langchain.com/docs/integrations/chat/anthropic/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"

  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "claude-2",
      "description": "The model which will generate the completion. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.",
      "options": [
        {
          "name": "Claude 3.5 Sonnet(20241022)",
          "value": "claude-3-5-sonnet-20241022"
        },
        {
          "name": "Claude 3 Opus(20240229)",
          "value": "claude-3-opus-20240229"
        },
        {
          "name": "Claude 3.5 Sonnet(20240620)",
          "value": "claude-3-5-sonnet-20240620"
        },
        {
          "name": "Claude 3 Sonnet(20240229)",
          "value": "claude-3-sonnet-20240229"
        },
        {
          "name": "Claude 3.5 Haiku(20241022)",
          "value": "claude-3-5-haiku-20241022"
        },
        {
          "name": "Claude 3 Haiku(20240307)",
          "value": "claude-3-haiku-20240307"
        },
        {
          "name": "LEGACY: Claude 2",
          "value": "claude-2"
        },
        {
          "name": "LEGACY: Claude 2.1",
          "value": "claude-2.1"
        },
        {
          "name": "LEGACY: Claude Instant 1.2",
          "value": "claude-instant-1.2"
        },
        {
          "name": "LEGACY: Claude Instant 1",
          "value": "claude-instant-1"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "claude-3-sonnet-20240229",
      "description": "The model which will generate the completion. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.",
      "options": [
        {
          "name": "Claude 3.5 Sonnet(20241022)",
          "value": "claude-3-5-sonnet-20241022"
        },
        {
          "name": "Claude 3 Opus(20240229)",
          "value": "claude-3-opus-20240229"
        },
        {
          "name": "Claude 3.5 Sonnet(20240620)",
          "value": "claude-3-5-sonnet-20240620"
        },
        {
          "name": "Claude 3 Sonnet(20240229)",
          "value": "claude-3-sonnet-20240229"
        },
        {
          "name": "Claude 3.5 Haiku(20241022)",
          "value": "claude-3-5-haiku-20241022"
        },
        {
          "name": "Claude 3 Haiku(20240307)",
          "value": "claude-3-haiku-20240307"
        },
        {
          "name": "LEGACY: Claude 2",
          "value": "claude-2"
        },
        {
          "name": "LEGACY: Claude 2.1",
          "value": "claude-2.1"
        },
        {
          "name": "LEGACY: Claude Instant 1.2",
          "value": "claude-instant-1.2"
        },
        {
          "name": "LEGACY: Claude Instant 1",
          "value": "claude-instant-1"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            1.1
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "claude-3-5-sonnet-20240620",
      "description": "The model which will generate the completion. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.",
      "options": [
        {
          "name": "Claude 3.5 Sonnet(20241022)",
          "value": "claude-3-5-sonnet-20241022"
        },
        {
          "name": "Claude 3 Opus(20240229)",
          "value": "claude-3-opus-20240229"
        },
        {
          "name": "Claude 3.5 Sonnet(20240620)",
          "value": "claude-3-5-sonnet-20240620"
        },
        {
          "name": "Claude 3 Sonnet(20240229)",
          "value": "claude-3-sonnet-20240229"
        },
        {
          "name": "Claude 3.5 Haiku(20241022)",
          "value": "claude-3-5-haiku-20241022"
        },
        {
          "name": "Claude 3 Haiku(20240307)",
          "value": "claude-3-haiku-20240307"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "lte": 1.2
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "claude-sonnet-4-20250514",
        "cachedResultName": "Claude 4 Sonnet"
      },
      "description": "The model. Choose from the list, or specify an ID. <a href=\"https://docs.anthropic.com/claude/docs/models-overview\">Learn more</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "placeholder": "Select a model...",
          "typeOptions": {
            "searchListMethod": "searchModels",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "placeholder": "Claude Sonnet"
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokensToSample",
          "default": 4096,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number"
        },
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.7,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number",
          "displayOptions": {
            "hide": {
              "thinking": [
                true
              ]
            }
          }
        },
        {
          "displayName": "Top K",
          "name": "topK",
          "default": -1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": -1,
            "numberPrecision": 1
          },
          "description": "Used to remove \"long tail\" low probability responses. Defaults to -1, which disables it.",
          "type": "number",
          "displayOptions": {
            "hide": {
              "thinking": [
                true
              ]
            }
          }
        },
        {
          "displayName": "Top P",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number",
          "displayOptions": {
            "hide": {
              "thinking": [
                true
              ]
            }
          }
        },
        {
          "displayName": "Enable Thinking",
          "name": "thinking",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable thinking mode for the model"
        },
        {
          "displayName": "Thinking Budget (Tokens)",
          "name": "thinkingBudget",
          "type": "number",
          "default": 1024,
          "description": "The maximum number of tokens to use for thinking",
          "displayOptions": {
            "show": {
              "thinking": [
                true
              ]
            }
          }
        }
      ]
    }
  ]


node_type: nodes-langchain.lmChatAzureOpenAi
package_name: @n8n/n8n-nodes-langchain
display_name: Azure OpenAI Chat Model
description: For advanced usage with an AI chain
category: transform
development_style: programmatic
version: 1
operations: []
outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Azure OpenAI Chat Model node documentation
  description: Learn how to use the Azure OpenAI Chat Model node in n8n. Follow technical documentation to integrate Azure OpenAI Chat Model node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Azure OpenAI Chat Model node

  Use the Azure OpenAI Chat Model node to use OpenAI's chat models with conversational [agents](/glossary.md#ai-agent).

  On this page, you'll find the node parameters for the Azure OpenAI Chat Model node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/azureopenai.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the completion.

  ## Node options

  * **Frequency Penalty**: Use this option to control the chances of the model repeating itself. Higher values reduce the chance of the model repeating itself.
  * **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.
  * **Response Format**: Choose **Text** or **JSON**. **JSON** ensures the model returns valid JSON.
  * **Presence Penalty**: Use this option to control the chances of the model talking about new topics. Higher values increase the chance of the model talking about new topics.
  * **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.
  * **Timeout**: Enter the maximum request time in milliseconds.
  * **Max Retries**: Enter the maximum number of times to retry a request.
  * **Top P**: Use this option to set the probability the completion should use. Use a lower value to ignore less probable options. 

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'azure-openai-chat-model') ]]

  ## Related resources

  Refer to [LangChains's Azure OpenAI documentation](https://js.langchain.com/docs/integrations/chat/azure){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "azureOpenAiApi",
      "options": [
        {
          "name": "API Key",
          "value": "azureOpenAiApi"
        },
        {
          "name": "Azure Entra ID (OAuth2)",
          "value": "azureEntraCognitiveServicesOAuth2Api"
        }
      ]
    },
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.",
      "name": "notice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "/options.responseFormat": [
            "json_object"
          ]
        }
      }
    },
    {
      "displayName": "Model (Deployment) Name",
      "name": "model",
      "type": "string",
      "default": "",
      "description": "The name of the model(deployment) to use (e.g., gpt-4, gpt-35-turbo)",
      "required": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Frequency Penalty",
          "name": "frequencyPenalty",
          "default": 0,
          "typeOptions": {
            "maxValue": 2,
            "minValue": -2,
            "numberPrecision": 1
          },
          "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim",
          "type": "number"
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokens",
          "default": -1,
          "description": "The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768). Use -1 for default.",
          "type": "number",
          "typeOptions": {
            "maxValue": 128000
          }
        },
        {
          "displayName": "Response Format",
          "name": "responseFormat",
          "default": "text",
          "type": "options",
          "options": [
            {
              "name": "Text",
              "value": "text",
              "description": "Regular text response"
            },
            {
              "name": "JSON",
              "value": "json_object",
              "description": "Enables JSON mode, which should guarantee the message the model generates is valid JSON"
            }
          ]
        },
        {
          "displayName": "Presence Penalty",
          "name": "presencePenalty",
          "default": 0,
          "typeOptions": {
            "maxValue": 2,
            "minValue": -2,
            "numberPrecision": 1
          },
          "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics",
          "type": "number"
        },
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.7,
          "typeOptions": {
            "maxValue": 2,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number"
        },
        {
          "displayName": "Timeout (Ms)",
          "name": "timeout",
          "default": 60000,
          "description": "Maximum amount of time a request is allowed to take in milliseconds",
          "type": "number"
        },
        {
          "displayName": "Max Retries",
          "name": "maxRetries",
          "default": 2,
          "description": "Maximum number of retries to attempt on failure",
          "type": "number"
        },
        {
          "displayName": "Top P",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        }
      ]
    }
  ]

credentials_required:
  [
    {
      "name": "azureOpenAiApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "azureOpenAiApi"
          ]
        }
      }
    },
    {
      "name": "azureEntraCognitiveServicesOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "azureEntraCognitiveServicesOAuth2Api"
          ]
        }
      }
    }
  ]


node_type: nodes-langchain.lmChatAwsBedrock
package_name: @n8n/n8n-nodes-langchain
display_name: AWS Bedrock Chat Model
description: Language Model AWS Bedrock
category: transform
development_style: programmatic
version: 1.1
operations: []
credentials_required:
  [
  {
  "name": "aws",
  "required": true
  }
  ]

outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: AWS Bedrock Chat Model node documentation
  description: Learn how to use the AWS Bedrock Chat Model node in n8n. Follow technical documentation to integrate AWS Bedrock Chat Model node into your workflows.
  contentType: [integration, reference]
  ---

  # AWS Bedrock Chat Model node

  The AWS Bedrock Chat Model node allows you use LLM models utilising AWS Bedrock platform.

  On this page, you'll find the node parameters for the AWS Bedrock Chat Model node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/aws.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"
  	
  ## Node parameters

  * **Model**: Select the model that generates the completion.

  Learn more about available models in the [Amazon Bedrock model documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html){:target=_blank .external-link}.

  ## Node options

  * **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.
  * **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'aws-bedrock-chat-model') ]]

  ## Related resources

  Refer to [LangChains's AWS Bedrock Chat Model documentation](https://js.langchain.com/docs/integrations/chat/bedrock/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model Source",
      "name": "modelSource",
      "type": "options",
      "default": "onDemand",
      "description": "Choose between on-demand foundation models or inference profiles",
      "options": [
        {
          "name": "On-Demand Models",
          "value": "onDemand",
          "description": "Standard foundation models with on-demand pricing"
        },
        {
          "name": "Inference Profiles",
          "value": "inferenceProfile",
          "description": "Cross-region inference profiles (required for models like Claude Sonnet 4 and others)"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.1
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "",
      "description": "The model which will generate the completion. <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/foundation-models.html\">Learn more</a>.",
      "displayOptions": {
        "hide": {
          "modelSource": [
            "inferenceProfile"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "modelSource"
        ],
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/foundation-models?&byOutputModality=TEXT&byInferenceType=ON_DEMAND"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "modelSummaries"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.modelName}}",
                    "description": "={{$responseItem.modelArn}}",
                    "value": "={{$responseItem.modelId}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "",
      "description": "The inference profile which will generate the completion. <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-use.html\">Learn more</a>.",
      "displayOptions": {
        "show": {
          "modelSource": [
            "inferenceProfile"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "modelSource"
        ],
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/inference-profiles?maxResults=1000"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "inferenceProfileSummaries"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.inferenceProfileName}}",
                    "description": "={{$responseItem.description || $responseItem.inferenceProfileArn}}",
                    "value": "={{$responseItem.inferenceProfileId}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokensToSample",
          "default": 2000,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number"
        },
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.7,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number"
        }
      ]
    }
  ]


node_type: nodes-langchain.lmChatCohere
package_name: @n8n/n8n-nodes-langchain
display_name: Cohere Chat Model
description: For advanced usage with an AI chain
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "cohereApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
properties_schema:
  [
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "command-a-03-2025",
      "description": "The model which will generate the completion. <a href=\"https://docs.cohere.com/docs/models\">Learn more</a>.",
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/v1/models?page_size=100&endpoint=chat"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "models"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.name}}",
                    "value": "={{$responseItem.name}}",
                    "description": "={{$responseItem.description}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.7,
          "typeOptions": {
            "maxValue": 2,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number"
        },
        {
          "displayName": "Max Retries",
          "name": "maxRetries",
          "default": 2,
          "description": "Maximum number of retries to attempt",
          "type": "number"
        }
      ]
    }
  ]


node_type: nodes-langchain.lmChatDeepSeek
package_name: @n8n/n8n-nodes-langchain
display_name: DeepSeek Chat Model
description: For advanced usage with an AI chain
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "deepSeekApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: DeepSeek Chat Model node documentation
  description: Learn how to use the DeepSeek Chat Model node in n8n. Follow technical documentation to integrate DeepSeek Chat Model node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # DeepSeek Chat Model node

  Use the DeepSeek Chat Model node to use DeepSeek's chat models with conversational [agents](/glossary.md#ai-agent).

  On this page, you'll find the node parameters for the DeepSeek Chat Model node and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/deepseek.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  ### Model

  Select the model to use to generate the completion.

  n8n dynamically loads models from DeepSeek and you'll only see the models available to your account.

  ## Node options

  Use these options to further refine the node's behavior.

  ### Base URL

  Enter a URL here to override the default URL for the API.

  ### Frequency Penalty

  Use this option to control the chances of the model repeating itself. Higher values reduce the chance of the model repeating itself.

  ### Maximum Number of Tokens

  Enter the maximum number of tokens used, which sets the completion length.

  ### Response Format

  Choose **Text** or **JSON**. **JSON** ensures the model returns valid JSON.

  ### Presence Penalty

  Use this option to control the chances of the model talking about new topics. Higher values increase the chance of the model talking about new topics.

  ### Sampling Temperature

  Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.

  ### Timeout

  Enter the maximum request time in milliseconds.

  ### Max Retries

  Enter the maximum number of times to retry a request.

  ### Top P

  Use this option to set the probability the completion should use. Use a lower value to ignore less probable options. 

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'deepseek-chat-model') ]]

  ## Related resources

  As DeepSeek is API-compatible with OpenAI, you can refer to [LangChains's OpenAI documentation](https://js.langchain.com/docs/integrations/chat/openai/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"

  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "If using JSON response format, you must include word \"json\" in the prompt in your chain or agent. Also, make sure to select latest models released post November 2023.",
      "name": "notice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "/options.responseFormat": [
            "json_object"
          ]
        }
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "deepseek-chat",
      "description": "The model which will generate the completion. <a href=\"https://api-docs.deepseek.com/quick_start/pricing\">Learn more</a>.",
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.id}}",
                    "value": "={{$responseItem.id}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Frequency Penalty",
          "name": "frequencyPenalty",
          "default": 0,
          "typeOptions": {
            "maxValue": 2,
            "minValue": -2,
            "numberPrecision": 1
          },
          "description": "Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim",
          "type": "number"
        },
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokens",
          "default": -1,
          "description": "The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).",
          "type": "number",
          "typeOptions": {
            "maxValue": 32768
          }
        },
        {
          "displayName": "Response Format",
          "name": "responseFormat",
          "default": "text",
          "type": "options",
          "options": [
            {
              "name": "Text",
              "value": "text",
              "description": "Regular text response"
            },
            {
              "name": "JSON",
              "value": "json_object",
              "description": "Enables JSON mode, which should guarantee the message the model generates is valid JSON"
            }
          ]
        },
        {
          "displayName": "Presence Penalty",
          "name": "presencePenalty",
          "default": 0,
          "typeOptions": {
            "maxValue": 2,
            "minValue": -2,
            "numberPrecision": 1
          },
          "description": "Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics",
          "type": "number"
        },
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.7,
          "typeOptions": {
            "maxValue": 2,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number"
        },
        {
          "displayName": "Timeout",
          "name": "timeout",
          "default": 360000,
          "description": "Maximum amount of time a request is allowed to take in milliseconds",
          "type": "number"
        },
        {
          "displayName": "Max Retries",
          "name": "maxRetries",
          "default": 2,
          "description": "Maximum number of retries to attempt",
          "type": "number"
        },
        {
          "displayName": "Top P",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        }
      ]
    }
  ]


node_type: nodes-langchain.lmChatGoogleGemini
package_name: @n8n/n8n-nodes-langchain
display_name: Google Gemini Chat Model
description: Chat Model Google Gemini
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "googlePalmApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Gemini Chat Model node documentation
  description: Learn how to use the Google Gemini Chat Model node in n8n. Follow technical documentation to integrate Google Gemini Chat Model node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # Google Gemini Chat Model node

  Use the Google Gemini Chat Model node to use Google's Gemini chat models with conversational agents.

  On this page, you'll find the node parameters for the Google Gemini Chat Model node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/googleai.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the completion.

  n8n dynamically loads models from the Google Gemini API and you'll only see the models available to your account.

  ## Node options

  * **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.
  * **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.
  * **Top K**: Enter the number of token choices the model uses to generate the next token.
  * **Top P**: Use this option to set the probability the completion should use. Use a lower value to ignore less probable options. 
  * **Safety Settings**: Gemini supports adjustable safety settings. Refer to Google's [Gemini API safety settings](https://ai.google.dev/docs/safety_setting_gemini){:target=_blank .external-link} for information on the available filters and levels.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-gemini-chat-model') ]]

  ## Related resources

  Refer to [LangChain's Google Gemini documentation](https://js.langchain.com/docs/integrations/chat/google_generativeai){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "modelName",
      "type": "options",
      "default": "models/gemini-2.5-flash",
      "description": "The model which will generate the completion. <a href=\"https://developers.generativeai.google/api/rest/generativelanguage/models/list\">Learn more</a>.",
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/v1beta/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "models"
                  }
                },
                {
                  "type": "filter",
                  "properties": {
                    "pass": "={{ !$responseItem.name.includes('embedding') }}"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.name}}",
                    "value": "={{$responseItem.name}}",
                    "description": "={{$responseItem.description}}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxOutputTokens",
          "default": 2048,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number"
        },
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.4,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number"
        },
        {
          "displayName": "Top K",
          "name": "topK",
          "default": 32,
          "typeOptions": {
            "maxValue": 40,
            "minValue": -1,
            "numberPrecision": 1
          },
          "description": "Used to remove \"long tail\" low probability responses. Defaults to -1, which disables it.",
          "type": "number"
        },
        {
          "displayName": "Top P",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Safety Settings",
          "name": "safetySettings",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {
            "values": {
              "category": "HARM_CATEGORY_HARASSMENT",
              "threshold": "HARM_BLOCK_THRESHOLD_UNSPECIFIED"
            }
          },
          "placeholder": "Add Option",
          "options": [
            {
              "name": "values",
              "displayName": "Values",
              "values": [
                {
                  "displayName": "Safety Category",
                  "name": "category",
                  "type": "options",
                  "description": "The category of harmful content to block",
                  "default": "HARM_CATEGORY_UNSPECIFIED",
                  "options": [
                    {
                      "value": "HARM_CATEGORY_HARASSMENT",
                      "name": "HARM_CATEGORY_HARASSMENT",
                      "description": "Harassment content"
                    },
                    {
                      "value": "HARM_CATEGORY_HATE_SPEECH",
                      "name": "HARM_CATEGORY_HATE_SPEECH",
                      "description": "Hate speech and content"
                    },
                    {
                      "value": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
                      "name": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
                      "description": "Sexually explicit content"
                    },
                    {
                      "value": "HARM_CATEGORY_DANGEROUS_CONTENT",
                      "name": "HARM_CATEGORY_DANGEROUS_CONTENT",
                      "description": "Dangerous content"
                    }
                  ]
                },
                {
                  "displayName": "Safety Threshold",
                  "name": "threshold",
                  "type": "options",
                  "description": "The threshold of harmful content to block",
                  "default": "HARM_BLOCK_THRESHOLD_UNSPECIFIED",
                  "options": [
                    {
                      "value": "HARM_BLOCK_THRESHOLD_UNSPECIFIED",
                      "name": "HARM_BLOCK_THRESHOLD_UNSPECIFIED",
                      "description": "Threshold is unspecified"
                    },
                    {
                      "value": "BLOCK_LOW_AND_ABOVE",
                      "name": "BLOCK_LOW_AND_ABOVE",
                      "description": "Content with NEGLIGIBLE will be allowed"
                    },
                    {
                      "value": "BLOCK_MEDIUM_AND_ABOVE",
                      "name": "BLOCK_MEDIUM_AND_ABOVE",
                      "description": "Content with NEGLIGIBLE and LOW will be allowed"
                    },
                    {
                      "value": "BLOCK_ONLY_HIGH",
                      "name": "BLOCK_ONLY_HIGH",
                      "description": "Content with NEGLIGIBLE, LOW, and MEDIUM will be allowed"
                    },
                    {
                      "value": "BLOCK_NONE",
                      "name": "BLOCK_NONE",
                      "description": "All content will be allowed"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]


node_type: nodes-langchain.lmChatGoogleVertex
package_name: @n8n/n8n-nodes-langchain
display_name: Google Vertex Chat Model
description: Chat Model Google Vertex
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "googleApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Vertex Chat Model node documentation
  description: Learn how to use the Google Vertex Chat Model node in n8n. Follow technical documentation to integrate Google Vertex Chat Model node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Vertex Chat Model node

  Use the Google Vertex AI Chat Model node to use Google's Vertex AI chat models with conversational [agents](/glossary.md#ai-agent).

  On this page, you'll find the node parameters for the Google Vertex AI Chat Model node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/google/service-account.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Project ID**: Select the project ID from your Google Cloud account to use. n8n dynamically loads projects from the Google Cloud account, but you can also enter it manually.
  * **Model Name**: Select the name of the model to use to generate the completion, for example `gemini-1.5-flash-001`, `gemini-1.5-pro-001`, etc. Refer to [Google models](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models){:target=_blank .external-link} for a list of available models.

  ## Node options

  * **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.
  * **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.
  * **Top K**: Enter the number of token choices the model uses to generate the next token.
  * **Top P**: Use this option to set the probability the completion should use. Use a lower value to ignore less probable options. 
  * **Safety Settings**: Gemini supports adjustable safety settings. Refer to Google's [Gemini API safety settings](https://ai.google.dev/docs/safety_setting_gemini){:target=_blank .external-link} for information on the available filters and levels.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-vertex-chat-model') ]]

  ## Related resources


  Refer to [LangChain's Google Vertex AI documentation](https://js.langchain.com/docs/integrations/chat/google_vertex_ai/){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Project ID",
      "name": "projectId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Select or enter your Google Cloud project ID",
      "required": true,
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "gcpProjectsList"
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string"
        }
      ]
    },
    {
      "displayName": "Model Name",
      "name": "modelName",
      "type": "string",
      "default": "gemini-2.5-flash",
      "description": "The model which will generate the completion. <a href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models\">Learn more</a>."
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxOutputTokens",
          "default": 2048,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number"
        },
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.4,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number"
        },
        {
          "displayName": "Top K",
          "name": "topK",
          "default": 32,
          "typeOptions": {
            "maxValue": 40,
            "minValue": -1,
            "numberPrecision": 1
          },
          "description": "Used to remove \"long tail\" low probability responses. Defaults to -1, which disables it.",
          "type": "number"
        },
        {
          "displayName": "Top P",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Safety Settings",
          "name": "safetySettings",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": true
          },
          "default": {
            "values": {
              "category": "HARM_CATEGORY_HARASSMENT",
              "threshold": "HARM_BLOCK_THRESHOLD_UNSPECIFIED"
            }
          },
          "placeholder": "Add Option",
          "options": [
            {
              "name": "values",
              "displayName": "Values",
              "values": [
                {
                  "displayName": "Safety Category",
                  "name": "category",
                  "type": "options",
                  "description": "The category of harmful content to block",
                  "default": "HARM_CATEGORY_UNSPECIFIED",
                  "options": [
                    {
                      "value": "HARM_CATEGORY_HARASSMENT",
                      "name": "HARM_CATEGORY_HARASSMENT",
                      "description": "Harassment content"
                    },
                    {
                      "value": "HARM_CATEGORY_HATE_SPEECH",
                      "name": "HARM_CATEGORY_HATE_SPEECH",
                      "description": "Hate speech and content"
                    },
                    {
                      "value": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
                      "name": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
                      "description": "Sexually explicit content"
                    },
                    {
                      "value": "HARM_CATEGORY_DANGEROUS_CONTENT",
                      "name": "HARM_CATEGORY_DANGEROUS_CONTENT",
                      "description": "Dangerous content"
                    }
                  ]
                },
                {
                  "displayName": "Safety Threshold",
                  "name": "threshold",
                  "type": "options",
                  "description": "The threshold of harmful content to block",
                  "default": "HARM_BLOCK_THRESHOLD_UNSPECIFIED",
                  "options": [
                    {
                      "value": "HARM_BLOCK_THRESHOLD_UNSPECIFIED",
                      "name": "HARM_BLOCK_THRESHOLD_UNSPECIFIED",
                      "description": "Threshold is unspecified"
                    },
                    {
                      "value": "BLOCK_LOW_AND_ABOVE",
                      "name": "BLOCK_LOW_AND_ABOVE",
                      "description": "Content with NEGLIGIBLE will be allowed"
                    },
                    {
                      "value": "BLOCK_MEDIUM_AND_ABOVE",
                      "name": "BLOCK_MEDIUM_AND_ABOVE",
                      "description": "Content with NEGLIGIBLE and LOW will be allowed"
                    },
                    {
                      "value": "BLOCK_ONLY_HIGH",
                      "name": "BLOCK_ONLY_HIGH",
                      "description": "Content with NEGLIGIBLE, LOW, and MEDIUM will be allowed"
                    },
                    {
                      "value": "BLOCK_NONE",
                      "name": "BLOCK_NONE",
                      "description": "All content will be allowed"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "displayName": "Thinking Budget",
          "name": "thinkingBudget",
          "description": "Controls reasoning tokens for thinking models. Set to 0 to disable automatic thinking. Set to -1 for dynamic thinking. Leave empty for auto mode.",
          "type": "number",
          "typeOptions": {
            "minValue": -1,
            "numberPrecision": 0
          }
        }
      ]
    }
  ]


node_type: nodes-langchain.lmChatGroq
package_name: @n8n/n8n-nodes-langchain
display_name: Groq Chat Model
description: Language Model Groq
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "groqApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Groq Chat Model node documentation
  description: Learn how to use the Groq Chat Model node in n8n. Follow technical documentation to integrate Groq Chat Model node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Groq Chat Model node

  Use the Groq Chat Model node to access Groq's large language models for conversational AI and text generation tasks.

  On this page, you'll find the node parameters for the Groq Chat Model node, and links to more resources.

  /// note | Credentials 
  You can find authentication information for this node [here](/integrations/builtin/credentials/groq.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model which will generate the completion. n8n dynamically loads available models from the Groq API. Learn more in the [Groq model documentation](https://console.groq.com/docs/models){:target=_blank .external-link}.

  ## Node options

  * **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.
  * **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'groq-chat-model') ]]

  ## Related resources

  Refer to [Groq's API documentation](https://console.groq.com/docs/quickstart){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "llama3-8b-8192",
      "description": "The model which will generate the completion. <a href=\"https://console.groq.com/docs/models\">Learn more</a>.",
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "filter",
                  "properties": {
                    "pass": "={{ $responseItem.active === true && $responseItem.object === \"model\" }}"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{$responseItem.id}}",
                    "value": "={{$responseItem.id}}"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokensToSample",
          "default": 4096,
          "description": "The maximum number of tokens to generate in the completion",
          "type": "number"
        },
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.7,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number"
        }
      ]
    }
  ]


node_type: nodes-langchain.lmChatMistralCloud
package_name: @n8n/n8n-nodes-langchain
display_name: Mistral Cloud Chat Model
description: For advanced usage with an AI chain
category: transform
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "mistralCloudApi",
  "required": true
  }
  ]

outputs:
  [
  "ai_languageModel"
  ]

output_names:
  [
  "Model"
  ]

updated_at: 2025-10-11 17:27:11
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Mistral Cloud Chat Model node documentation
  description: Learn how to use the Mistral Cloud Chat Model node in n8n. Follow technical documentation to integrate Mistral Cloud Chat Model node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Mistral Cloud Chat Model node

  Use the Mistral Cloud Chat Model node to combine Mistral Cloud's chat models with conversational [agents](/glossary.md#ai-agent).

  On this page, you'll find the node parameters for the Mistral Cloud Chat Model node, and links to more resources.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/mistral.md).
  ///

  --8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"

  ## Node parameters

  * **Model**: Select the model to use to generate the completion. n8n dynamically loads models from Mistral Cloud and you'll only see the models available to your account.

  ## Node options

  * **Maximum Number of Tokens**: Enter the maximum number of tokens used, which sets the completion length.
  * **Sampling Temperature**: Use this option to control the randomness of the sampling process. A higher temperature creates more diverse sampling, but increases the risk of hallucinations.
  * **Timeout**: Enter the maximum request time in milliseconds.
  * **Max Retries**: Enter the maximum number of times to retry a request.
  * **Top P**: Use this option to set the probability the completion should use. Use a lower value to ignore less probable options. 
  * **Enable Safe Mode**: Enable safe mode by injecting a safety prompt at the beginning of the completion. This helps prevent the model from generating offensive content.
  * **Random Seed**: Enter a seed to use for random sampling. If set, different calls will generate deterministic results.

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'mistral-cloud-chat-model') ]]

  ## Related resources

  Refer to [LangChains's Mistral documentation](https://js.langchain.com/docs/integrations/chat/mistral){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
  --8<-- "_glossary/ai-glossary.md"

properties_schema:
  [
    {
      "displayName": "This node must be connected to an AI chain. <a data-action='openSelectiveNodeCreator' data-action-parameter-creatorview='AI'>Insert one</a>",
      "name": "notice",
      "type": "notice",
      "default": "",
      "typeOptions": {
        "containerClass": "ndv-connection-hint-notice"
      }
    },
    {
      "displayName": "Model",
      "name": "model",
      "type": "options",
      "default": "mistral-small",
      "description": "The model which will generate the completion. <a href=\"https://docs.mistral.ai/platform/endpoints/\">Learn more</a>.",
      "typeOptions": {
        "loadOptions": {
          "routing": {
            "request": {
              "method": "GET",
              "url": "/models"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "filter",
                  "properties": {
                    "pass": "={{ !$responseItem.id.includes('embed') }}"
                  }
                },
                {
                  "type": "setKeyValue",
                  "properties": {
                    "name": "={{ $responseItem.id }}",
                    "value": "={{ $responseItem.id }}"
                  }
                },
                {
                  "type": "sort",
                  "properties": {
                    "key": "name"
                  }
                }
              ]
            }
          }
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "description": "Additional options to add",
      "options": [
        {
          "displayName": "Maximum Number of Tokens",
          "name": "maxTokens",
          "default": -1,
          "description": "The maximum number of tokens to generate in the completion. Most models have a context length of 2048 tokens (except for the newest models, which support 32,768).",
          "type": "number",
          "typeOptions": {
            "maxValue": 32768
          }
        },
        {
          "displayName": "Sampling Temperature",
          "name": "temperature",
          "default": 0.7,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.",
          "type": "number"
        },
        {
          "displayName": "Max Retries",
          "name": "maxRetries",
          "default": 2,
          "description": "Maximum number of retries to attempt",
          "type": "number"
        },
        {
          "displayName": "Top P",
          "name": "topP",
          "default": 1,
          "typeOptions": {
            "maxValue": 1,
            "minValue": 0,
            "numberPrecision": 1
          },
          "description": "Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered. We generally recommend altering this or temperature but not both.",
          "type": "number"
        },
        {
          "displayName": "Enable Safe Mode",
          "name": "safeMode",
          "default": false,
          "type": "boolean",
          "description": "Whether to inject a safety prompt before all conversations"
        },
        {
          "displayName": "Random Seed",
          "name": "randomSeed",
          "type": "number",
          "description": "The seed to use for random sampling. If set, different calls will generate deterministic results."
        }
      ]
    }
  ]


