> For the complete documentation index, see [llms.txt](https://docs.allganize.ai/allganize-alli-works/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.allganize.ai/allganize-alli-works/alli-dashboard/setting/variable/value.md).

# 변수

변수는 다양한 유형으로 제공되며, 각각의 용도에 맞게 선택하여 사용할 수 있습니다. 아래는 주요 변수 종류와 사용 방법입니다.

<figure><img src="/files/DjR4tiedCozs2WB3rl5t" alt=""><figcaption></figcaption></figure>

**커스텀 변수**

커스텀 변수란 나중에 사용하기 위해 변수값을 저장할 수 있는 곳입니다. 예를 들어 고객의 정보를 다양한 변수에 저장하면 그 정보를 이용해 개인화된 고객 경험을 제공하거나, 앱 작성 시 각 노드에 중요한 정보를 전달할 수 있습니다.

* 사용자 변수 – 여기에 있는 변수들은 각각의 고객들에게 종속됩니다. 변수값은 고객 정보에 저장됩니다.
* 대화 변수 – 여기에 있는 변수들의 변수값은 대화가 종료될때까지만 저장되고 다음 대화에서는 리셋됩니다.

**변수 추가하기**

Alli 에는 기본적으로 제공하는 변수들이 있지만, 보다 잘 사용하기 위해서는 새 변수를 적절히 추가해야 합니다. 변수를 추가하는 데는 세가지 방법이 있습니다.

**Option 1: 변수 설정에서 추가하기**

변수 설정에서 ‘+추가’ 버튼을 누르면 변수 추가 메뉴가 나타납니다.

<figure><img src="https://i0.wp.com/guide.allganize.ai/wp-content/uploads/2022/01/Screen-Shot-2019-12-17-at-2.28.30-PM.png?w=800&#x26;ssl=1" alt=""><figcaption></figcaption></figure>

변수의 이름을 입력합니다. 변수 이름은 영문으로만 작성 가능하며 ‘\_, -, .’ 등의 부호를 포함할 수 있습니다. 첫 글자는 반드시 알파벳이나 ‘\_’ 로 시작해야 합니다.

<figure><img src="https://i0.wp.com/guide.allganize.ai/wp-content/uploads/2022/01/Screen-Shot-2019-12-17-at-2.28.39-PM.png?w=800&#x26;ssl=1" alt=""><figcaption></figcaption></figure>

변수의 종류를 선택합니다. 대부분의 변수 종류는 이름 그대로 이해하실 수 있으며, 이외에는 아래를 참고하세요.

**Boolean 변수**

* **설명**: Boolean 유형 변수는 `true` 또는 `false` 값을 가집니다. 이 값은 참과 거짓을 구분할 수 있는 변수에 사용됩니다.
* **예시**: "회원 가입 여부", "서비스 활성화 여부" 등.

**파일 변수**

* **설명**: 파일 변수는 고객이나 시스템이 파일을 업로드할 수 있도록 해 줍니다. 파일을 선택하고 업로드할 수 있는 기능을 제공합니다.
* **예시**: "이력서 파일", "이미지 파일" 등.

**JSON 변수 / JSON 목록 / 문자열 목록**

* **설명**: 고급 사용자를 위한 옵션으로, 외부 JSON 주소를 필요로 합니다. 이 변수들은 복잡한 데이터 구조를 처리할 때 유용합니다.
* **예시**: "사용자 정보 목록", "상품 목록" 등.

**문자열 변수**

* **설명**: 사용자가 입력하는 텍스트 데이터입니다. 이 변수는 주로 텍스트를 저장하고 처리하는 데 사용됩니다.
* **예시**: "사용자 이름", "이메일 주소" 등.

<figure><img src="https://i0.wp.com/guide.allganize.ai/wp-content/uploads/2022/01/Screen-Shot-2019-12-17-at-2.28.47-PM.png?w=800&#x26;ssl=1" alt=""><figcaption></figcaption></figure>

Validation 은 문자열 변수를 선택했을 때만 나타납니다. 변수에 대한 간략한 설명을 입력하고 추가를 누르면 변수가 생성됩니다.

**Option 2: 앱 편집 시에 추가하기**

앱 편집 중, 노드에 변수를 선택하는 드랍다운이 있다면 ‘새 변수 생성’ 항목을 찾을 수 있습니다.

<figure><img src="https://i0.wp.com/guide.allganize.ai/wp-content/uploads/2022/01/Screen-Shot-2019-12-17-at-2.39.54-PM.png?w=800&#x26;ssl=1" alt=""><figcaption></figcaption></figure>

해당 항목을 클릭하면 Option 1 의 변수 추가 메뉴와 동일한 메뉴가 나타나며, 바로 변수를 추가할 수 있습니다.

**Option 3: 앱 편집기 메뉴에서 추가하기**

&#x20;앱 편집 화면에서 화면 우측 상단의 ‘@변수’ 메뉴를 눌러 변수 목록을 열고 ‘+추가’ 버튼을 누르면 변수를 추가할 수 있습니다.

<figure><img src="/files/2HOYlcPJP9v4vfUoO1rl" alt=""><figcaption></figcaption></figure>

마찬가지로 Option 1 의 변수 추가 메뉴와 동일한 메뉴가 나타납니다.편집 중, 노드에 변수를 선택하는 드랍다운이 있다면 ‘새 변수 생성’ 항목을 찾을 수 있습니다.

**추가 팁**

* 특정 노드에서는 상황에 따라 특정한 종류의 변수만 선택할 수 있는 경우가 있습니다. 생성한 변수가 리스트에서 보이지 않는다면 변수 종류를 다시한번 확인해 보세요.
* 앱에서 사용중인 변수는 앱의 작성중 / 공개 여부와 관계없이 수정이나 삭제가 불가능합니다. \
  어떤 앱에서 어떤 변수가 사용중인지 알고 싶으시다면 위 변수 생성 Option 3 에서 확인한 ‘@변수’ 메뉴를 누르고 ‘본 대화형 앱에서 사용되는 변수만 표시’ 를 체크하면 됩니다.

<figure><img src="/files/2vgHWzsqmSfdCCnC6ZR7" alt=""><figcaption></figcaption></figure>

**시스템 변수**

시스템 영역의 변수는 수정하거나 삭제할 수 없지만 적절히 사용된다면 고객 경험을 보다 풍부하게 만들어 줄 수 있습니다. 해당 변수들의 변수값은 자동으로 주어지며, 일부 변수는 특정한 조건에서만 값이 주어집니다.&#x20;

#### 공통

* **@BROWSER (문자열)**: 사용자가 사용하는 브라우저 정보입니다.
* **@CHANNEL\_NAME (문자열)**: 사용자가 마지막으로 Alli를 이용한 플랫폼 정보입니다. Web, iOS, Android 또는 연동된 서드파티 메신저 앱(Slack, Teams 등)의 정보가 포함됩니다.
* **@CITY (문자열)**: 사용자가 Alli에 접속한 도시 정보입니다.
* **@COUNTRY (문자열)**: 사용자가 Alli에 접속한 국가 정보입니다.
* **@CURRENT\_TIME (숫자)**: 프로젝트의 현재 시간입니다.
* **@STATE (문자열)**: 사용자가 Alli에 접속한 상태 정보입니다.
* **@IP (문자열)**: 사용자의 IP 주소입니다.
* **@LAST\_VISIT (날짜)**: 사용자가 마지막으로 Alli에 접속한 날짜입니다.
* **@LOCALE (문자열)**: 사용자의 언어 설정입니다.
* **@OS (문자열)**: 사용자가 사용하는 운영 체제입니다.
* **@REFERRER (문자열)**: 현재 페이지로 연결된 이전 페이지 정보입니다.
* **@SYS\_USER\_INPUT (문자열)**: 사용자의 마지막 입력 내용입니다. 버튼 선택 옵션 또는 텍스트 입력입니다.
* **@SELECTED\_OPTION\_OBJECT (JSON)**: 사용자가 동적 응답 옵션을 선택한 경우 선택된 JSON 데이터가 저장됩니다. 동적 응답 옵션에 대한 자세한 사항은 사용자 가이드를 참조하세요.
* **@get\_user\_groups :** 해당 변수를 사용하면 멤버의 그룹 정보를 앱 내에서 활용할 수 있습니다.

#### 연동 노드 관련

* **@EXTERNAL\_FAIL\_MESSAGE (문자열)**: 연동된 노드가 지정된 URL에서 데이터를 가져오지 못했을 경우, 실패 메시지를 기록합니다.
* **@EXTERNAL\_HTTP\_STATUS (숫자)**: 연동된 노드가 지정된 URL에서 데이터를 가져오지 못했을 경우, 해당 URL의 HTTP 상태 코드를 기록합니다.

#### UTM 태그 관련

* **@UTM\_CAMPAIGN (문자열)**: 사용자가 UTM 정보가 포함된 URL에 접근했을 때, UTM 캠페인 정보를 기록합니다.
* **@UTM\_MEDIUM (문자열)**: 사용자가 UTM 정보가 포함된 URL에 접근했을 때, UTM 미디엄 정보를 기록합니다.
* **@UTM\_SOURCE (문자열)**: 사용자가 UTM 정보가 포함된 URL에 접근했을 때, UTM 소스 정보를 기록합니다.

#### 보류중인 변수들 <a href="#reserved-variables" id="reserved-variables"></a>

아래 변수들은 추후의, 혹은 특별한 경우의 사용을 위해 미리 생성된 변수들입니다.

@**EXTERNAL\_EVENT\_DATA** (JSON)

@**SLACK\_BUTTON** (문자열)

@**SLACK\_EVENT\_DATA** (JSON)

@**SLACK\_MESSAGE** (문자열)

@**SLACK\_USER\_ID** (문자열)
