Map of n8n's LangChain nodes
n8n ships LangChain nodes (the n8n-nodes-langchain package). They split into root nodes (run logic) and sub-nodes (plug into root nodes via special connectors — Model, Memory, Tool).
Chat Model (a sub-node)
Chat Model is not a standalone node — it is a model provider for root nodes:
OpenAI Chat Model — gpt-4o, gpt-4o-mini, the o-series.
Anthropic Chat Model — claude-sonnet-4-5, claude-opus, etc.
Google Gemini Chat Model — gemini-1.5-pro / flash.
The Chat Model node does nothing on its own — its Chat Model output port plugs into Basic LLM Chain, AI Agent, Text Classifier, and so on.
Basic LLM Chain
The simplest root node: "prompt → answer". One pass, no memory, no tools.
Node: Basic LLM Chain
Prompt Type: Define below
Text: "Compress to 1 sentence: {{ $json.article }}"
← connected: Anthropic Chat Model (claude-sonnet-4-5)
Use it when you need one deterministic LLM call in a pipeline without a conversation.
Question & Answer Chain
A root node for RAG questions: input a question plus a connected Retriever (Vector Store). Internally it retrieves relevant chunks → injects into the prompt → answers. Don't hand-roll this when the task is the classic "question over documents".
Text Classifier
A root node that returns not free text but one of a defined set of categories. You list categories with descriptions, and the node is guaranteed to return one of them.
Node: Text Classifier
Text to Classify: {{ $json.emailBody }}
Categories:
- "support" (description: customer question/problem)
- "sales" (description: buying interest)
- "spam" (description: ads, irrelevant)
← connected: OpenAI Chat Model
The output carries the category, and n8n creates a separate output port per category — handy for routing without IF nodes.
Summarize
A root node for summarizing large text. It supports map_reduce and refine strategies for text that doesn't fit the context window: the document is split into chunks, each summarized, then merged. Don't confuse it with the plain Summarize node (numeric aggregation) — you need the LLM version from the AI section.
Built-in node vs raw HTTP Request
- Built-in node: typed output, retries, native memory/tool wiring, less code. Reach for it by default.
- Raw HTTP Request: when you need a parameter not exposed in the node (a new
response_format, a beta-feature header) or a provider with no built-in node.
Rule: start with the built-in node, fall back to HTTP only when you hit its limits.