---
sourceDocument: 호주 대화형 인터페이스
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/conversational-interfaces

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 대화형 인터페이스

ft:clusterId :

    - convint

bundleId :

    - convint

workflow :

    - Platform


---

# 가상 에이전트 스크립트

# 가상 에이전트 스크립트 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 12분

스크립트 메서드와 변수를 사용하여 ServiceNow® 가상 에이전트 응답, 트리거, 플로우 스크립트와 같은 채팅 스크립트를 작성합니다. 변수는 실시간 지원 주제 및 대화에 대한 컨텍스트를 제공할 수도 있습니다.

가상 에이전트 스크립트는 사용자 또는 사용자의 입력에 대한 정보 보존과 같은 주제에 대한 컨텍스트를 제공할 수 있습니다. 이 정보를 사용하여 스크립트로 작성된 인사말이나 확인을 표시하는 등 대화를 개인화할 수 있습니다. 스크립트는 대화 중에 얻은 정보에 대해 수행할 특정 작업을 지정할 수도 있습니다. 이러한 작업은 기록을 만들거나 업데이트하는 데 사용할 수 있습니다 ServiceNow .

스크립트는 주제가 정의된 범위의 서버에서 실행됩니다. 모든 범위 보호가 적용됩니다. 범위가 지정된 애플리케이션에 대한 대화를 개발하는 경우 범위가 지정된 API를 사용해야 합니다. 서버 스크립트에서 실행되는 대부분의 API를 사용할 수 있습니다.

## 사용자 입력 및 ServiceNow 기록 변수 {#virtual-agent-scripts__section_ssh_pxw_sdb}

에서 가상 에이전트주제에 대해 만드는 스크립트에 다음 변수를 사용할 수 있습니다.  

사용자 입력 변수

:   주제에 입력 컨트롤을 추가하면 시스템에서 사용자 입력(문자열, 부울 값 등)을 저장할 변수를 자동으로 생성합니다. 구문은 `vaInputs.myvar` 이며 여기서 `myvar` 는 입력 노드에 할당한 이름입니다.

    예를 들어 <kbd class="ph userinput">첫 번째 프롬프트</kbd> 라는 이름의 텍스트 입력 프롬프트에는 `vaInputs.first_prompt`라는 시스템 정의 변수가 있습니다. 이름의 공백은 밑줄로 대체되고 대문자는 소문자로 변경됩니다.

ServiceNow 기록 변수

:   테이블을 ServiceNow 쿼리하는 주제에 대한 스크립트를 만들면 반환된 기록 객체(GlideRecord)를 주제에서 사용할 수 자동으로 사용할 수 있습니다. 변수 구문은 `vaInputs.myvar` 이며 `여기서 myvar` 는 기록 객체입니다. 기록 객체를 반환하기 위한 테이블 쿼리 ServiceNow 에 대한 자세한 내용은 [스크립트에서 테이블 쿼리를](https://www.servicenow.com/docs/access?context=c_UsingGlideRecordToQueryTables&version=australia&pubname=australia-api-reference&ft:locale=en-US) 참조하십시오.

    기록이 ServiceNow 포함된 변수에서 닷워킹을 사용하여 테이블의 특정 필드를 지정합니다. 구문은 `vaInputs.myvar.field입니다.` 스크립트 내에서 닷워킹에 대한 자세한 내용은 [닷워킹 예](https://www.servicenow.com/docs/access?context=dot-walking-examples&version=australia&pubname=australia-platform-user-interface&ft:locale=en-US)시를 참조하십시오.

사용자 입력 및 ServiceNow 기록 변수 접근

:   vaInputs 객체를 사용하여 스크립트의 기록 변수에 액세스합니다ServiceNow. 예를 들어 `vaInputs.myvar == "expected value"`입니다. 기록이 아닌 사용자 입력의 값에 액세스하려면 `vaInputs.myvar.getValue()`를 사용합니다.

    다음 방법을 사용할 수 있습니다.  
    {#virtual-agent-scripts__table_uht_pzs_cpb__entry__2}

    | 방법 | 설명 |
    |-|-|
    | vaInputs.myvar == "예상 값" | `myvar`가 예상 값과 일치하는지 여부를 평가합니다. 주: 사용자 입력 변수의 값은 사용자 입력 컨트롤을 사용하여 할당됩니다. 이 값은 스크립트에서 변경할 수 없습니다. * 이 릴리스는 Australia 추가 데이터 유형을 지원합니다. 자세한 내용은 [주제의 가상 에이전트 입력 데이터 유형](https://servicenow-prod.fluidtopics.net/piRDYziESvvSN8eVrN93_Q "스크립트를 작성하지 않고도 일반적으로 사용되는 Glide 가상 에이전트 (com.glide.cs.chatbot) 데이터 유형의 도우미 디자이너 입력을 정의할 수 있습니다. 사용자 지정 컨트롤 또는 주제 블록의 시작 노드에서 입력 데이터 유형을 정의합니다.") 문서를 참조하십시오. * 기본적으로 사용자 변수를 사용할 수 있으며 사용자의 sys_user 기록에 대한 참조입니다. {#virtual-agent-scripts__ul_dsz_rbt_cpb} |
    | vaInputs.myvar.getValue(); | 값을 반환합니다. |
    | vaInputs.myvar.getDisplayValue(); | 저장된 값이 기록이 아닌 경우 표시 값을 반환합니다 ServiceNow . 기록을 포함하는 ServiceNow 변수의 경우 이 메서드는 해당 테이블의 표시 필드에 정의된 표시 값을 반환합니다. 다음 예는 사용자 입력에 대한 레이블 및 선택 값을 보여줍니다. 이 경우 `myVar.getValue()` 는 10, 20 또는 30 값을 반환하고 `myVar.getDisplayValue()` 는 Apple, Orange 또는 Pear를 반환합니다. 그림 1. 선택 목록 예시 |
    | vaInputs.myvar.getDefaultValue(); | 확인 메시지의 기본값을 반환합니다. |
    | vaInputs.myvar.getDefaultDisplayValue(); | 확인 메시지에서 기본값의 표시 값을 반환합니다. |
    | vaInputs.myvar.unbindEntity(); | 예측 서비스 슬롯이 NLU 추출된 엔터티로 채워진 입력 변수 값을 제거합니다(초기 입력 값에서 바인딩 해제). 예를 들어 사용자가 확인 프롬프트에서 선택을 변경하기로 결정한 경우 입력 변수에서 엔터티의 값을 바인딩을 해제할 수 있습니다. 그런 다음 사용자가 해당 입력 노드로 루프백할 때 다시 메시지가 표시됩니다. 주: NLU 이 주제에서 활성화되어야 합니다. 도우미 디자이너에서 속성 탭을 선택하여 설정합니다NLU. 엔터티 정의 NLU 에 대한 자세한 내용은 [엔터티를](https://www.servicenow.com/docs/access?context=entities&version=australia&pubname=australia-intelligent-experiences&ft:locale=en-US) 참조하십시오. |
    [표 1. vaInputs 메서드]

    {#virtual-agent-scripts__table_uht_pzs_cpb}

## 스크립트 변수 {#virtual-agent-scripts__section_kpv_qxj_12b}

테이블에 ServiceNow 저장되지 않지만 주제의 다른 곳에서 해당 정보를 공유하는 데 사용할 수 있는 정보에 대한 스크립트 변수를 정의할 수 있습니다. 스크립트 변수는 정수, 부울 값 또는 문자열과 같은 기본 요소를 저장하는 워크플로우 스크래치패드 변수와 유사합니다. 문자열 값은 정적 또는 동적 스크립팅 값일 수 있습니다. 변수 사이드바를 사용하여 에서 주제 도우미 디자이너에 대한 스크립트 변수를 정의합니다.  
그림 2. 변수 사이드바  
주:  
스크립트 변수는 고급 스크립팅 기술을 보유한 주제 작성자가 사용하기 위한 것입니다.

변수 구문은 `vaVars.myvar`이며, `여기서 myvar` 는 변수에 할당하는 이름입니다. 예를 들어, `vaVars.myvar = value;`를 사용하여 변수에 값을 할당할 수 있습니다. 사용자 입력 변수와 달리 스크립트 변수는 스크립트에서 값을 할당할 수 있습니다.

주제에서 스크립트 변수를 정의하는 방법에 대한 자세한 내용은 다음 문서를 참조하십시오 [주제에 대한 스크립트 변수 정의](https://servicenow-prod.fluidtopics.net/FdSE_RF6ejMMAHzLlGf7_g "변수 사이드바를 사용하여 주제에 대한 스크립트 변수를 정의합니다. 스크립트 변수는 테이블에서 ServiceNow 찾을 수 없는 정보를 저장할 수 있습니다. 이 정보는 주제의 다른 곳에서 공유할 수 있습니다.").

## 컨텍스트 변수 {#virtual-agent-scripts__section_mc5_tvw_22b}

컨텍스트 변수는 전역 범위에서 작동하는 반면 시스템 변수는 주제 범위 내에서 작동합니다. 웹 클라이언트 URL 내의 시스템 매개변수에서 컨텍스트 변수를 사용할 수 있습니다. 이러한 변수는 `vaContext` 객체를 사용하여 대화의 어느 곳에서나 사용할 수 있습니다. 이러한 옵션을 사용하여 미리 정의된 변수에 대한 가상 에이전트 링크를 만듭니다.

다음 예시 링크에는 매개변수 `sysparm_city=milan`이 포함되어 있습니다. 대화를 가상 에이전트 여는 것 외에도 이 링크를 사용하면 `값이 milan`인 `city`라는 변수가 생성됩니다. `vaContext.city`를 사용하여 스크립트에서 이 변수에 액세스할 수 있습니다.

    https://<instance>.service-now.com/$sn-va-web-client-app.do?sysparm_city=milan

주제 스크립트에서 사용할 수 있는 변수는 다양 라이브 에이전트 합니다. 이러한 변수는 다음을 포함합니다.

* <var class="keyword varname">애플리케이션</var>
* <var class="keyword varname">언어</var>
* <var class="keyword varname">포털</var>
* <var class="keyword varname">search_text</var>
* <var class="keyword varname">short_description</var>
{#virtual-agent-scripts__ul_nvm_krg_rwb}

변수 구문이 `vaContext.LiveAgent_myvar`이며, `여기서 myvar` 는 사용 가능한 [라이브 에이전트 컨텍스트 변수](https://servicenow-prod.fluidtopics.net/ObXHJLR2zYdI~EwcbWLeEA "채팅 컨텍스트 변수를 사용하여 주제의 특정 정보를 전달하여 라이브 에이전트와 공유하거나 봇 대화가 라이브 에이전트로 라우팅되는 방법을 제어합니다. 가상 에이전트 에는 몇 가지 기본 변수가 포함되어 있으며 새 변수를 정의할 수 있습니다.") 중 하나입니다. `vaContext.LiveAgent_myvar = 값;`을 사용하여 변수에 액세스합니다.

주제 스크립트에서 변수를 사용하려면 라이브 에이전트 에서 주제 도우미 디자이너를 여십시오. 속성 탭에서 라이브 에이전트 변수 옆에 있는 연필 아이콘을 선택하여 주제에 추가합니다.

에 가상 에이전트포함된 라이브 에이전트 컨텍스트 변수에 대한 자세한 내용은 문서를 참조하십시오 [라이브 에이전트 채팅 컨텍스트 변수](https://servicenow-prod.fluidtopics.net/ObXHJLR2zYdI~EwcbWLeEA "채팅 컨텍스트 변수를 사용하여 주제의 특정 정보를 전달하여 라이브 에이전트와 공유하거나 봇 대화가 라이브 에이전트로 라우팅되는 방법을 제어합니다. 가상 에이전트 에는 몇 가지 기본 변수가 포함되어 있으며 새 변수를 정의할 수 있습니다.").  
{#virtual-agent-scripts__table_evl_vbd_cfc__entry__2}

| 방법 | 설명 |
|-|-|
| vaVars.global_utterance | 기술 선택기가 렌더링되고 발언이 입력될 때 업데이트됩니다. |
[표 2. vaVars 메서드]

{#virtual-agent-scripts__table_evl_vbd_cfc}

## vaSystem 메서드 {#virtual-agent-scripts__section_bdc_wtr_h2b}

vaSystem 객체의 메서드를 사용하여 다양한 작업을 수행할 수 있습니다. 이러한 작업에는 다음이 포함됩니다.

* 기록에 이미지를 첨부합니다.
* 현재 주제를 찾는 데 사용된 검색 문자열에 액세스합니다.
* 라이브 에이전트가 대화를 수신할 수 있는지 확인합니다.
* 사용자를 라이브 에이전트에 연결합니다.
{#virtual-agent-scripts__ul_rgh_w31_fpb}  
주:  
문서화되지 않은 시스템 방법은 지원되지 않으며 사전 통지 없이 언제든지 중단되거나 변경될 수 있으므로 사용하지 않는 것이 좋습니다.
{#virtual-agent-scripts__table_xvn_c5r_h2b__entry__2}

| 방법 | 설명 |
|-|-|
| vaSystem.applyLinkTemplate(문자열 sysId, 문자열 tableName, 문자열 actionName) | 포털과 관련된 외부 링크를 생성합니다. |
| vaSystem.attachRecordToConversation(문자열 tableName, 문자열 sysId) | 상호작용 기록의 관련 작업 목록에 기록을 첨부 ServiceNow 합니다.가상 에이전트 이러한 기록은 대화 중에 업데이트되거나 생성됩니다 가상 에이전트 . |
| vaSystem.attachToRecord(문자열 mediaId, 문자열 tableName, 문자열 sysId) | 업로드한 이미지를 기록에 첨부합니다 ServiceNow . 메서드는 다음 매개변수를 사용합니다. * `mediaId`: 첨부할 이미지의 경로입니다. 고객이 입력한 이미지를 사용하려면 이미지 입력 변수에 `getValue()` 를 사용합니다. 예를 들어 `vaInputs.image_input.getValue()입니다.` * `tableName`: 테이블 이름을 포함하는 문자열입니다. * `sysId`: 기록의 sys_id입니다. {#virtual-agent-scripts__ul_dlj_4yr_h2b} |
| vaSystem.connectToAgent() | 고객을 라이브 에이전트에 연결합니다. 이 방법에 대한 자세한 내용은 다음 문서를 참조하십시오 [라이브 에이전트로 대화 전송 가상 에이전트](https://servicenow-prod.fluidtopics.net/5W2ZhoQrNfFDdFnv6NG0FQ "대화가 라이브 에이전트로 전송될 때 가상 에이전트 사용되는 채팅 지원 인터페이스를 포함하여 라이브 채팅 지원을 관리합니다."). |
| vaSystem.didConnectToLiveAgent() | 현재 대화가 라이브 에이전트에 연결되었는지 여부에 관계없이 부울(예 또는 아니오) 값을 반환합니다. |
| vaSystem.getClosingMessage() | 시스템 속성에서 대화에 대한 마무리 메시지를 반환합니다. com.glide.cs.general.closing_message ( 및 Slack등의 Microsoft Teams 외부 공급업체 메시징 앱에 따라 메시지가 다릅니다.) |
| vaSystem.getConversationId() | 현재 대화의 대화 ID를 반환합니다. |
| vaSystem.getGreetingMessage() | UI 메시지에서 "안녕하세요, 저는 가상 에이전트입니다. 오늘은 제가 어떻게 도와드릴 수 있는지 알려주세요." |
| vaSystem.getInteractionSysId() | 현재 대화의 상호작용 ID를 반환합니다. |
| vaSystem.getSearchText() | 사용자가 입력한 마지막 발언을 반환합니다. |
| vaSystem.getTopicSelectionMessage() | "문제 또는 요청은 무엇입니까? 아니면 내가 무엇을 도울 수 있는지 살펴보세요." ( 및 Slack등의 Microsoft Teams 외부 공급업체 메시징 앱에 따라 메시지가 다릅니다.) 이 메서드는 시스템 속성 com.glide.cs.topic_picker_msg에서 반환됩니다. |
| vaSystem.getTranscript() | 대화 녹취록을 가져옵니다. |
| vaSystem.isLiveAgentAvailable() | 라이브 에이전트가 봇에서 전송된 대화를 수신할 수 있는지 확인합니다. 라이브 에이전트로 대화를 전송하려면 `vaSystem.connectToAgent()`를 사용하기 전에 이 메서드를 호출합니다. |
| vaSystem.isLiveAgentConfigured() | 라이브 채팅의 사용 여부를 반환합니다. |
| vaSystem.resetAllEntities() | 대화에 로그인한 모든 엔터티를 재설정합니다. |
| vaSystem.sendBatchedMessages() | 대기 중인 메시지를 즉시 보냅니다. |
| vaSystem.sendSeparatorMessage() | 구분 기호 메시지 라인을 보내고 `getClosingMessage()`에서 종료 메시지를 반환합니다. |
| vaSystem.sendSystemMessage(문자열 메시지, 부울 showAvatar) | 시스템 메시지를 보내고 `getGreetingMessage()`에서 인사말 메시지를 반환합니다. |
| vaSystem.sendTopicPickerControl(문자열 topicSelectionMessage, 문자열 topicPickerButtonLabel) | 메시지에 연결된 값과 "모두 표시" 버튼 레이블이 포함된 주제 선택기 컨트롤을 보냅니다. |
| vaSystem.sendSkillPickerControl(skillSelectionMessage, args) | 기술 선택기 컨트롤을 사용자에게 보냅니다. `skillSelectionMessage`는 선택기를 표시하기 전에 표시되는 메시지입니다. `args` 매개변수를 사용하면 다음과 같은 추가 구성 옵션을 사용할 수 있습니다. * `hideSkillDetails` 는 기술 선택 메시지를 숨깁니다. 기본값은 `false`입니다. * `hidePromotedTopics` 는 기술 선택기에서 승격된 주제를 숨깁니다. 기본값은 `false`입니다. * `hideShowMeEverything` 은 기술 선택기에서 "모두 표시" 버튼을 제거합니다. 기본값은 `false`입니다. * `showNoSkillsConfigured` 적용 가능한 기술이 없는 경우 "구성된 기술 없음" 메시지를 표시합니다. 기본값은 `false`입니다. * `appendPromotedSkillsToMsg` 는 승격된 기술의 글머리 기호 목록을 기술 선택 메시지에 추가합니다. 기본값은 `true`입니다. {#virtual-agent-scripts__ul_lwk_dgx_22c} |
| vaSystem.switchTopicByName() | 사용자가 현재 대화 주제에서 지정된 주제 이름으로 이동할 수 있습니다. 사용자가 대화를 종료할 수 있도록 X 버튼을 사용할 수 있습니다. 주제가 종료된 후 사용자는 전역 주제를 다시 시작합니다. 대화가 끝나면 사용자는 채팅 창 하단에서 여기를 클릭하여 새 대화를 시작 하도록 선택하여 주제를 다시 시작할 수 있습니다. 선택적 resumeBehavior 매개변수는 다음과 같이 대화 플로우가 다시 시작되는 방법을 지정합니다. * If resumeBehavior=resume, 가상 에이전트 호출 주제를 다시 시작합니다. * 만약 resumeBehavior=skip, 가상 에이전트 호출 주제를 건너뜁니다. {#virtual-agent-scripts__ul_x2k_rxk_gtb} resumeBehavior 지정하지 않으면 인스턴스의 기본 동작이 사용됩니다. |
| vaSystem.switchTopicById(sysid) | 이 메서드는 의 sysid sys_cb_topic이며, 사용자가 현재 대화 주제에서 지정된 주제 ID로 이동할 수 있도록 해줍니다. 사용자가 대화를 종료할 수 있도록 X 버튼을 사용할 수 있습니다. 주제가 종료된 후 사용자는 전역 주제를 다시 시작합니다. 대화가 끝나면 사용자는 채팅 창 하단에서 여기를 클릭하여 새 대화를 시작 하도록 선택하여 주제를 다시 시작할 수 있습니다. 선택적 resumeBehavior 매개변수는 다음과 같이 대화 플로우가 다시 시작되는 방법을 지정합니다. * If resumeBehavior=resume, 가상 에이전트 호출 주제를 다시 시작합니다. * 만약 resumeBehavior=skip, 가상 에이전트 호출 주제를 건너뜁니다. {#virtual-agent-scripts__ul_hwt_21l_gtb} resumeBehavior 지정하지 않으면 인스턴스의 기본 동작이 사용됩니다. |
| vaSystem.topicDiscovery(문자열 searchTextOverride, 부울 키워드 Impl) | 매개변수의 용어를 기반으로 주제 검색을 searchTextOverride 수행합니다. 메서드는 다음 매개변수를 사용합니다. * `searchTextOverride`: 주제 디스커버리를 실행할 문자열입니다. * `keywordImpl`: 키워드를 사용할지 여부를 결정하는 부울입니다. {#virtual-agent-scripts__ul_rq2_zst_ssb} |
[표 3. 주제 스크립트에 가상 에이전트 사용되는 메서드]

{#virtual-agent-scripts__table_xvn_c5r_h2b} {#virtual-agent-scripts__table_mqd_wqp_1jb__entry__2}

| 방법 | 설명 |
|-|-|
| sn_cs. VASystemObject.getTranscriptById(\<대화 sysId\>) | 현재 가상 에이전트 대화의 녹취록을 가져옵니다. |
[표 4. 주제 외부 가상 에이전트 에서 사용할 수 있는 메서드]

{#virtual-agent-scripts__table_mqd_wqp_1jb}
**관련 개념**   

* [도메인 분리 및 가상 에이전트](https://servicenow-prod.fluidtopics.net/AL~gmD8IVVV4awSWKyvPbA "도메인 분리는 가상 에이전트 애플리케이션에서 지원됩니다. 도메인 분리를 사용하여 데이터, 프로세스 및 관리 작업을 도메인이라는 논리적 그룹으로 분할할 수 있습니다. 어떤 사용자가 데이터를 보고 액세스할 수 있는지를 포함하여 이러한 분리의 여러 측면을 제어할 수 있습니다.")
* [가상 에이전트 상호작용 기록](https://servicenow-prod.fluidtopics.net/qF8mCCsu0f7fHpIh90Xcjg "대화가 가상 에이전트 발생할 때마다 상호작용 기록은 상호작용 [interaction] 테이블에서 전체 대화를 캡처합니다. 이 기록에는 대화에 사용된 모든 주제 요소와 라이브 에이전트 전송이 포함됩니다.")  
**관련 참조**   

* [주제의 가상 에이전트 입력 데이터 유형](https://servicenow-prod.fluidtopics.net/piRDYziESvvSN8eVrN93_Q "스크립트를 작성하지 않고도 일반적으로 사용되는 Glide 가상 에이전트 (com.glide.cs.chatbot) 데이터 유형의 도우미 디자이너 입력을 정의할 수 있습니다. 사용자 지정 컨트롤 또는 주제 블록의 시작 노드에서 입력 데이터 유형을 정의합니다.")
* [NLU 시스템 엔터티](https://servicenow-prod.fluidtopics.net/NSekCXUtLkxk4FOO5gbEWQ "전역으로 정의된 NLU 엔터티를 사용하여 대화에서 추출할 수 있는 시스템 정보를 가상 에이전트 식별합니다. 엔터티를 주제에 대한 \"노드가 없는\" 입력 변수로 정의할 수 있습니다. 이러한 변수는 서비스 제공자 예측에서 NLU 슬롯으로 채워지거나 주제 범위 밖에서 제공될 수 있습니다.")
* [가상 에이전트 URL 매개변수](https://servicenow-prod.fluidtopics.net/LVF1wTmxN4u8RSkzLIfW~w "가상 에이전트 는 관리자가 인스턴스 URL에 추가하여 페이지 콘텐츠가 렌더링되는 방법을 제어할 수 있는 다양한 시스템 매개변수를 제공합니다.")
* [가상 에이전트의 대기 시간 피드백](https://servicenow-prod.fluidtopics.net/MbdWTqKwxyl92zvHFVJpNw "시스템 속성은 com.glide.cs.message.processing.enabled 생성형 AI 대규모 언어 모델(LLM)이 채팅 위젯 및 Now Assist 패널에서 요청을 처리할 때마다 요청자에게 알립니다.가상 에이전트")

