Skip to content

Node Types

A node is a discrete processing step in a pipeline that accepts a participant's input and produces an output to downstream nodes. Each node performs a specific task, such as calling a large language model (LLM), running Python code, or routing based on logic. It processes data that flows through the pipeline.

graph LR
  A@{ shape: stadium, label: "Input (i.e. data or prompt)" } --> B(Node);
  B --> C@{ shape: stadium, label: "Output (i.e. LLM response)" };

Note

  1. See a simple example of a pipeline with one node.
  2. See chatbot workflow cookbook for examples of pipelines using different combinations of these node types.

Node Warnings and Errors

The pipeline editor highlights nodes that need your attention:

  • A red border means the node has a configuration error. The pipeline cannot run until you fix it.
  • An amber border, together with a warning triangle in the node's header, means the node has a warning. Warnings are advisory — the pipeline still saves, runs, accepts a test message, and can be versioned.

If a node has both an error and a warning, the red border takes precedence because the error is more urgent.

A node carries a warning when:

  • Its node type has been deprecated and will be removed in a future release.
  • Its LLM model has been deprecated. The triangle names the deprecated model and the model to switch to. The LLM Model field in the node's settings shows the same notice.

A node that is affected by both shows a single triangle carrying both messages.

LLM Node

A conversational node using AI models. You can configure:

See Configure an LLM Node for a step-by-step tutorial on setting one up. To refer to enabled tools by name in the prompt, or to ask an AI assistant to review it, see Search and Get Prompt Help in the Pipeline Editor.

Routing Nodes

Routers are used to reduce cost, improve accuracy, and keep pipeline workflows flexible. A router will receive input, analyze it, choose the next workflow step, and pass the request to the downstream node. See the Router Node page for full details.

Render a Template Node

The Render a Template node lets you shape the text flowing through a pipeline before it reaches the next step. You write a template that mixes fixed text with placeholders. At runtime, the node fills in the placeholders using information about the current message, the participant, and the pipeline state.

Use this node to reformat a previous node's output, build a prompt for a downstream LLM node, or compose a personalized message.

See the Render a Template and Send an Email Node reference for the full variable list and template syntax.

Send an Email Node

The Send an Email node sends an email as part of a pipeline run. The node acts as a passthrough: its output is identical to its input. Inserting it into a pipeline does not change what the next node receives.

See the Send an Email How-to Guide for steps and example use cases.

See the Render a Template and Send an Email Node reference for recipient field syntax, template variables, and prompt examples.

Extract Structured Data Node

Uses an LLM to extract structured data from the input. You define a JSON schema, which describes the fields to extract and their types. Unlike most other nodes, its output replaces the input: downstream nodes receive the extracted data (as JSON) rather than the original conversation text.

Sometimes the model returns no structured data for part of the input. This happens if it refuses, the provider blocks the reply, or it never calls the required tool. The node skips that part instead of failing the conversation turn. If nothing at all could be extracted, the node outputs an empty JSON object ({}). This is rare in practice.

Update Participant Data Node

Uses an LLM to extract structured data the same way as the Extract Structured Data node. Instead of passing the result downstream, it saves it as participant data. This node is a passthrough — its output is identical to its input. It can be inserted into a pipeline without changing what the next node receives, and is commonly used with events.

It handles a missing response the same way. The node skips any part of the input with no structured data. If nothing could be extracted, participant data is left unchanged.

Python Node

Execute custom Python code for logic, data processing, or external API calls.

Key capabilities:

See the Python Node page for full documentation.

Removed Nodes

When a node type is retired from Open Chat Studio, pipelines that contain it still open in the editor. The node renders as a Removed Node, with a badge and a message naming the node type to use instead. The pipeline no longer builds, so its chatbot cannot run until you replace the removed node with a supported one.

The assistant node is in this state. See OpenAI Assistants (Removed) for background and the migration guide for how to replace one.

See also