가상 에이전트 스크립트

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 12분
  • 스크립트 메서드와 변수를 사용하여 ServiceNow® 가상 에이전트 응답, 트리거, 플로우 스크립트와 같은 채팅 스크립트를 작성합니다. 변수는 실시간 지원 주제 및 대화에 대한 컨텍스트를 제공할 수도 있습니다.

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

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

    사용자 입력 및 ServiceNow 기록 변수

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

    사용자 입력 변수

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

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

    ServiceNow 기록 변수

    테이블을 쿼리 ServiceNow 하는 주제에 대한 스크립트를 만들면 반환된 기록 객체(GlideRecord)를 주제에서 자동으로 사용할 수 있게 됩니다. 변수 구문은 vaInputs.myvar 이며, 여기서 myvar 은 레코드 객체입니다. 기록 객체를 반환하기 위해 테이블을 쿼리 ServiceNow 하는 방법에 대한 자세한 내용은 스크립트에서 테이블 쿼리를 참조하십시오.

    기록이 포함된 ServiceNow 변수에서 닷워킹을 사용하여 테이블의 특정 필드를 지정합니다. 구문은 vaInputs.myvar.field입니다. 스크립트 내의 닷워킹에 대한 자세한 내용은 닷워킹 예시를 참조하십시오.

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

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

    다음 방법을 사용할 수 있습니다.

    표 1. vaInputs 메서드
    방법 설명
    vaInputs.myvar == "예상 값" myvar이 예상 값과 일치하는지 여부를 평가합니다.
    주:
    사용자 입력 변수의 값은 사용자 입력 컨트롤을 사용하여 할당됩니다. 이러한 값은 스크립트에서 변경할 수 없습니다.
    • 이 릴리스는 Zurich 추가 데이터 유형을 지원합니다. 자세한 내용은 주제의 가상 에이전트 입력 데이터 유형 문서를 참조하십시오.
    • 기본적으로 사용자 변수를 사용할 수 있으며 이 변수는 사용자의 sys_user 기록에 대한 참조입니다.
    vaInputs.myvar.getValue(); 값을 반환합니다.
    vaInputs.myvar.getDisplayValue();

    저장된 값이 기록이 ServiceNow 아닌 경우 표시 값을 반환합니다. 레코드가 포함된 ServiceNow 변수의 경우 이 메서드는 해당 테이블의 표시 필드에 정의된 대로 표시 값을 반환합니다.

    다음 예는 사용자 입력에 대한 label 및 choice 값을 보여줍니다. 이 경우 myVar.getValue( )는 10, 20 또는 30의 값을 반환하고 myVar.getDisplayValue() 는 Apple, Orange 또는 Pear를 반환합니다.

    그림 1. 예시 선택 목록
    레이블 필드에는 선택 항목에 대한 Apple, Orange 및 Pear가 포함됩니다. 각 값은 10, 20 및 30입니다.
    vaInputs.myvar.getDefaultValue(); 확인 메시지에 기본값을 반환합니다.
    vaInputs.myvar.getDefaultDisplayValue(); 확인 메시지에서 기본값의 표시 값을 반환합니다.
    vaInputs.myvar.unbindEntity(); 예측 서비스가 추출된 엔터티로 슬롯에 채워진 NLU 입력 변수의 값을 제거합니다(초기 입력 값에서 바인딩 해제).

    예를 들어 사용자가 확인 프롬프트에서 선택을 변경하기로 결정한 경우 입력 변수에서 엔터티 값의 바인딩을 해제할 수 있습니다. 그러면 사용자가 해당 입력 노드로 루프백할 때 다시 메시지가 표시됩니다.

    주:
    NLU 이 항목은 주제에서 활성화되어야 합니다. 에서 가상 에이전트 디자이너속성 탭을 선택하여 설정합니다NLU. 엔터티 정의 NLU 에 대한 자세한 내용은 엔터티 단원을 참조하십시오.

    스크립트 변수

    테이블에 저장되지 ServiceNow 않지만 주제의 다른 곳에서 정보를 공유하는 데 사용할 수 있는 정보에 대한 스크립트 변수를 정의할 수 있습니다. 스크립트 변수는 정수, 부울 값 또는 문자열과 같은 프리미티브를 저장하는 워크플로우 스크래치패드 변수와 유사합니다. 문자열 값은 정적 또는 동적 스크립트 값일 수 있습니다. 변수 사이드바를 사용하여 에서 가상 에이전트 디자이너주제에 대한 스크립트 변수를 정의합니다.

    그림 2. 변수 사이드바
    주제 스크립트에 가상 에이전트 디자이너 사용되는 스크립트 변수를 수동으로 추가하기 위한 페이지의 사이드바입니다.
    주:
    스크립트 변수는 고급 스크립팅 기술을 갖춘 주제 작성자가 사용하기 위한 것입니다.

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

    주제에서 스크립트 변수를 정의하는 방법에 대한 자세한 내용은 을 참조하십시오 주제에 대한 스크립트 변수 정의.

    컨텍스트 변수

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

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

    https://<instance>.service-now.com/$sn-va-web-client-app.do?sysparm_city=milan
    주제 스크립트에 여러 라이브 에이전트 변수를 사용할 수 있습니다. 이러한 변수에는 다음이 포함됩니다.
    • 신청
    • 언어
    • portal
    • search_text
    • short_description

    변수 구문은 vaContext.LiveAgent_myvar이며, 여기서 myvar 는 사용 가능한 라이브 에이전트 컨텍스트 변수 중 하나입니다. vaContext.LiveAgent_myvar = value;를 사용하여 변수에 액세스합니다.

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

    가상 에이전트포함된 라이브 에이전트 컨텍스트 변수에 대한 자세한 내용은 문서를 참조하십시오 라이브 에이전트 채팅 컨텍스트 변수.

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

    vaSystem 메서드

    vaSystem 객체의 메서드를 사용하여 다양한 작업을 수행할 수 있습니다. 이러한 작업 중 일부는 다음과 같습니다.
    • 기록에 이미지를 첨부합니다.
    • 현재 주제를 찾는 데 사용된 검색 문자열에 액세스합니다.
    • 라이브 에이전트가 대화를 수신할 수 있는지 확인합니다.
    • 사용자를 라이브 에이전트에 연결합니다.
    주:
    문서화되지 않은 시스템 방법은 지원되지 않으며 사전 통지 없이 언제든지 중단되거나 변경될 수 있으므로 사용하지 않는 것이 좋습니다.
    표 3. 주제 스크립트에 가상 에이전트 사용되는 메서드
    방법 설명
    vaSystem.applyLinkTemplate(String sysId, String tableName, String actionName) 포털에만 해당하는 외부 링크를 작성합니다.
    vaSystem.attachRecordToConversation(문자열 tableName, 문자열 sysId)

    기록을 상호작용 기록의 관련 작업 목록에 첨부 ServiceNow 합니다 가상 에이전트 . 이러한 기록은 대화 중에 가상 에이전트 업데이트되거나 생성됩니다.

    vaSystem.attachToRecord(문자열 mediaId, 문자열 tableName, 문자열 sysId)
    업로드된 이미지를 기록에 첨부합니다 ServiceNow . 이 메서드는 다음 매개 변수를 사용합니다.
    • mediaId: 첨부할 이미지의 경로입니다. 고객이 입력한 이미지를 사용하려면 이미지 입력 변수에 getValue() 를 사용합니다. 예: vaInputs.image_input.getValue()).
    • tableName: 테이블 이름이 포함된 문자열입니다.
    • sysId: 기록의 sys_id입니다.
    vaSystem.connectToAgent() 고객을 라이브 에이전트에 연결합니다. 이 메서드에 대한 자세한 내용은 다음 문서를 참조하십시오 대화를 라이브 에이전트로 전송 가상 에이전트.
    vaSystem.didConnectToLiveAgent() 현재 대화가 라이브 에이전트에 연결되었는지 여부에 관계없이 부울(true 또는 false) 값을 반환합니다.
    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(String topicSelectionMessage, String topicPickerButtonLabel) 메시지 및 "모두 표시" 단추 레이블에 대한 연결된 값이 있는 주제 선택기 컨트롤을 보냅니다.
    vaSystem.sendSkillPickerControl(skillSelectionMessage, 인수)

    기술 선택기 컨트롤을 사용자에게 보냅니다.

    skillSelectionMessage는 선택기를 표시하기 전에 표시되는 메시지입니다. args 매개 변수는 추가 구성 옵션을 허용합니다:

    • hideSkillDetails 는 기술 선택 메시지를 숨깁니다. 기본값은 false입니다.
    • hidePromotedTopics : 기술 선택기에서 승격된 주제를 숨깁니다. 기본값은 false입니다.
    • hideShowMeEverything 은 기술 선택기에서 "모두 표시" 버튼을 제거합니다. 기본값은 false입니다.
    • showNoSkillsConfigured 는 적용 가능한 기술이 없는 경우 "구성된 기술 없음" 메시지를 표시합니다. 기본값은 false입니다.
    • appendPromotedSkillsToMsg 는 승격된 기술의 글머리 기호 목록을 기술 선택 메시지에 추가합니다. 기본값은 true입니다.
    vaSystem.switchTopicByName() 사용자가 현재 대화 주제에서 지정된 주제 이름으로 이동할 수 있습니다. 사용자가 대화를 종료할 수 있도록 X 버튼을 사용할 수 있습니다. 주제가 종료된 후 사용자는 전역 주제를 재개합니다. 대화가 끝나면 사용자는 채팅 창 아래쪽에서 여기를 클릭하여 새 대화 시작을 선택하여 주제를 다시 시작할 수 있습니다.
    선택적 resumeBehavior 매개변수는 다음과 같이 대화 플로우가 재개되는 방법을 지정합니다.
    • 가상 에이전트 인 경우 resumeBehavior=resume호출 항목을 다시 시작합니다.
    • 인 경우 resumeBehavior=skip호출 가상 에이전트 항목을 건너뜁니다.

    resumeBehavior 지정하지 않으면 인스턴스의 기본 동작이 사용됩니다.

    vaSystem.switchTopicById(sysid) 이 메서드는 의 sys_cb_topicsysid이며 사용자가 현재 대화 주제에서 지정된 주제 ID로 이동할 수 있도록 합니다. 사용자가 대화를 종료할 수 있도록 X 버튼을 사용할 수 있습니다. 주제가 종료된 후 사용자는 전역 주제를 재개합니다. 대화가 끝나면 사용자는 채팅 창 아래쪽에서 여기를 클릭하여 새 대화 시작을 선택하여 주제를 다시 시작할 수 있습니다.
    선택적 resumeBehavior 매개변수는 다음과 같이 대화 플로우가 재개되는 방법을 지정합니다.
    • 가상 에이전트 인 경우 resumeBehavior=resume호출 항목을 다시 시작합니다.
    • 인 경우 resumeBehavior=skip호출 가상 에이전트 항목을 건너뜁니다.

    resumeBehavior 지정하지 않으면 인스턴스의 기본 동작이 사용됩니다.

    vaSystem.topicDiscovery(문자열 searchTextOverride, 부울 keywordImpl) 매개변수의 용어를 searchTextOverride 기반으로 주제 검색을 수행합니다. 이 메서드는 다음 매개 변수를 사용합니다.
    • searchTextOverride: 주제 디스커버리를 실행할 문자열입니다.
    • keywordImpl: 키워드를 사용할지 여부를 결정하는 부울입니다.
    표 4. 주제 외부에서 가상 에이전트 사용할 수 있는 방법
    방법 설명
    sn_cs. VASystemObject.getTranscriptById(<대화 sysId>)

    현재 가상 에이전트 대화의 녹취록을 가져옵니다.