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

# 조건 노드

> 변수 값에 따라 대화 흐름을 자동으로 분기하는 조건 노드를 설정하는 방법을 안내합니다.

조건 노드는 대화 노드와는 달리 에이전트가 사용자에게 어떠한 말도 하지 않고, 설정된 조건에 따라 다음 노드로 자동으로 전환되는 노드입니다. 이 노드는 동적 변수의 값에 따라 대화 흐름을 분기할 때 유용합니다.

## 언제 사용하나요

* 추출 노드나 API 응답으로 얻은 **변수 값에 따라 분기**해야 할 때
* IVR 메뉴처럼 **여러 경로로 라우팅**해야 할 때
* 특정 변수의 **존재 여부를 확인**한 뒤 흐름을 결정할 때
* 날짜, 숫자 등 **조건 비교**가 필요한 로직을 처리할 때

## 조건 설정

```mermaid theme={null}
flowchart TD
    A[조건 노드] --> B{조건 1}
    B -- 충족 --> C[노드 A]
    B -- 미충족 --> D{조건 2}
    D -- 충족 --> E[노드 B]
    D -- 미충족 --> F[폴백 노드]
```

조건 노드에서는 통화 초기에 추가된 동적 변수의 값을 기준으로 다음 노드로의 전환 조건을 설정할 수 있습니다.

## 연산자

조건에서 사용할 수 있는 비교 연산자는 다음과 같습니다:

| 연산자     | 설명                     | 값 필요 |
| ------- | ---------------------- | ---- |
| 같음      | 변수 값이 지정한 값과 일치        | O    |
| 같지 않음   | 변수 값이 지정한 값과 불일치       | O    |
| 포함      | 변수 값에 지정한 텍스트가 포함됨     | O    |
| 미포함     | 변수 값에 지정한 텍스트가 포함되지 않음 | O    |
| 초과      | 변수 값이 지정한 숫자보다 큼       | O    |
| 이상      | 변수 값이 지정한 숫자 이상        | O    |
| 미만      | 변수 값이 지정한 숫자보다 작음      | O    |
| 이하      | 변수 값이 지정한 숫자 이하        | O    |
| 존재함     | 변수에 값이 존재함 (빈 문자열이 아님) | X    |
| 존재하지 않음 | 변수에 값이 없거나 빈 문자열       | X    |

## 논리 연산자

여러 조건을 조합할 때 논리 연산자를 사용합니다:

| 논리 연산자  | 설명                           |
| ------- | ---------------------------- |
| **AND** | 모든 조건이 참일 때만 해당 분기로 이동합니다.   |
| **OR**  | 하나 이상의 조건이 참이면 해당 분기로 이동합니다. |

<Tip>
  하나의 분기 안에서 여러 조건을 추가한 뒤, AND 또는 OR로 연결하여 복합 조건을 만들 수 있습니다.
</Tip>

## Else 폴백 분기

모든 조건이 충족되지 않을 경우를 대비하여 Else 분기를 설정할 수 있습니다. Else 분기는 어떤 조건에도 해당하지 않는 경우의 기본 경로 역할을 합니다.

<Warning>
  Else 분기를 설정하지 않으면, 어떤 조건도 충족되지 않았을 때 대화 흐름이 중단될 수 있습니다. 항상 Else 분기를 연결하는 것을 권장합니다.
</Warning>

## 실제 사용 예시

### IVR 문의 유형별 라우팅

`call_ivr` 변수 값에 따라 담당 부서로 통화를 전환하는 패턴입니다.

```mermaid theme={null}
flowchart TD
    A[조건 노드] --> B{call_ivr}
    B -- "항공" --> C[항공 상담 전환]
    B -- "투어/티켓" --> D[투어 상담 전환]
    B -- "숙소/교통" --> E[숙소 상담 전환]
    B -- Else --> F[일반 상담 전환]
```

**조건 설정:**

| 분기   | 변수         | 연산자 | 값     |
| ---- | ---------- | --- | ----- |
| 분기 1 | `call_ivr` | 같음  | 항공    |
| 분기 2 | `call_ivr` | 같음  | 투어/티켓 |
| 분기 3 | `call_ivr` | 같음  | 숙소/교통 |
| Else | —          | —   | —     |

### 불리언 값 확인

특정 조건의 참/거짓 여부를 확인하여 분기합니다.

**조건 설정:**

| 분기   | 변수                 | 연산자 | 값    |
| ---- | ------------------ | --- | ---- |
| 분기 1 | `is_life_combined` | 같음  | true |
| Else | —                  | —   | —    |

<Warning>
  불리언 값 비교 시, 변수에 저장된 값이 `"true"` (문자열)인지 확인하세요. 대소문자에 주의가 필요합니다.
</Warning>

### 변수 존재 여부 확인

변수에 값이 있는지 여부만으로 분기합니다. 예를 들어, 이전 단계에서 회원 이름을 추출했는지 확인합니다.

**조건 설정:**

| 분기   | 변수             | 연산자 | 값 |
| ---- | -------------- | --- | - |
| 분기 1 | `member_names` | 존재함 | — |
| Else | —              | —   | — |

### 날짜별 분기

특정 날짜에만 다른 안내를 하는 패턴입니다. 이벤트 기간이나 휴일 안내에 활용합니다.

**조건 설정:**

| 분기   | 변수             | 연산자 | 값          |
| ---- | -------------- | --- | ---------- |
| 분기 1 | `current_date` | 같음  | 2026-02-17 |
| Else | —              | —   | —          |

<Tip>
  Else 분기를 항상 연결하세요. 어떤 조건에도 해당하지 않을 때 대화 흐름이 중단되는 것을 방지합니다.
</Tip>

## 관련 문서

<CardGroup cols={3}>
  <Card title="노드 개요" icon="circle-nodes" href="/docs/build/flow/nodes/overview">
    플로우 에이전트의 노드 타입과 추가 방법을 확인하세요.
  </Card>

  <Card title="동적 변수" icon="brackets-curly" href="/docs/build/variables/dynamic-variables">
    조건 분기에 활용할 동적 변수의 생성과 사용법을 알아보세요.
  </Card>

  <Card title="추출 노드" icon="filter" href="/docs/build/flow/nodes/extraction-node">
    조건 분기 전 데이터를 추출하는 방법을 확인하세요.
  </Card>
</CardGroup>

***

<Accordion title="연관 검색어">
  조건 노드, condition node, 분기, branching, 변수 비교, 연산자, Else 폴백, 라우팅
</Accordion>
