> ## Documentation Index
> Fetch the complete documentation index at: https://docs.traceport.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Nodes

> Reference for all node types available in Config Workflows.

Config Workflows are composed of **nodes** connected by edges. Each node performs a specific function in your AI pipeline. Click any node on the canvas to open its settings panel.

## Router Node

The **Router** node sends requests to an AI model. It's the core building block for making LLM calls within a workflow.

### Settings

| Setting             | Description                                                   |
| ------------------- | ------------------------------------------------------------- |
| **Provider**        | The AI provider (e.g., OpenAI, Anthropic, Google)             |
| **Model**           | The specific model to use (e.g., `gpt-5.2`)                   |
| **Prompt**          | An optional linked Prompt from the Prompt Studio              |
| **Routing Targets** | One or more model targets — add multiple for fallback routing |

### Routing Targets

Each Router node can have multiple **Routing Targets**. If the primary target fails, Traceport automatically falls back to the next target.

Click **+ Add Target** to add fallback models. Each target shows:

* Provider badge (e.g., `gpt-5.2`)
* Linked Prompt (e.g., `mail_writer`)

<Tip>
  Use multiple routing targets to build resilient AI pipelines that survive provider outages.
</Tip>

***

## Branch Node

The **Branch** node implements conditional logic based on the output of upstream nodes. It evaluates expressions and routes traffic to different downstream paths.

### Conditions

Branches support multiple condition types:

| Condition   | Syntax                   | Description                       |
| ----------- | ------------------------ | --------------------------------- |
| **IF**      | `node.output == 'value'` | Primary condition                 |
| **ELSE IF** | `node.output == 'other'` | Additional conditions             |
| **DEFAULT** | `else`                   | Fallback when no conditions match |

### Example

In the `email_job_listings` workflow, the `score_route` Branch node evaluates the `cv_scorer` Router output:

```
IF     cv_scorer.output == 'score>7'    →  send_intro_invite
ELSE IF cv_scorer.output == 'score<7'   →  put_on_hold
ELSE IF cv_scorer.output == 'no-cv'     →  request_missing_doc
DEFAULT                                 →  else
```

<Info>
  Branch expressions reference upstream node outputs using dot notation: `node_name.output`.
</Info>

***

## Plugin Node

**Plugin** nodes execute actions beyond AI model calls. They integrate with external services, apply safety guardrails, or transform data.

### Plugin Types

| Plugin Type            | Description                                                                        |
| ---------------------- | ---------------------------------------------------------------------------------- |
| **PII Validator**      | Detect and redact personally identifiable information before sending to models     |
| **Content Moderation** | Apply safety filters for violence, hate speech, and other harmful content          |
| **Custom Action**      | Execute custom HTTP calls, email sending, calendar updates, and other integrations |

### Configuration

Click a Plugin node and select the **Plugin Type** from the dropdown. Then click **View Settings** to configure the plugin's specific parameters.

<Warning>
  Plugin nodes that interact with external services (email, calendars, APIs) require proper integration setup in the [Integrations](/management/integrations) page.
</Warning>
