가상 에이전트 스크립트
스크립트 메서드 및 변수를 사용하여 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이 예상 값과 일치하는지 여부를 평가합니다.주:사용자 입력 변수의 값은 사용자 입력 컨트롤을 사용하여 할당됩니다. 이러한 값은 스크립트에서 변경할 수 없습니다.- 이 릴리스는 Xanadu 추가 데이터 유형을 지원합니다. 자세한 내용은 주제의 가상 에이전트 입력 데이터 유형 문서를 참조하십시오.
- 기본적으로 사용자 변수는 사용할 수 있으며 사용자의 sys_user 기록에 대한 참조입니다.
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 추출된 엔터티로 채운 입력 변수의 값을 제거합니다(초기 입력 값에서 바인딩 해제). 예를 들어 사용자가 확인 프롬프트에서 선택 사항을 변경하기로 결정한 경우 입력 변수에서 엔터티 값을 바인딩 해제할 수 있습니다. 그런 다음 사용자가 해당 입력 노드로 루프백할 때 메시지가 다시 표시됩니다.
주:
스크립트 변수
테이블에 저장 ServiceNow 되지 않지만 주제의 다른 곳에서 해당 정보를 공유하는 데 사용할 수 있는 정보에 대한 스크립트 변수를 정의할 수 있습니다. 스크립트 변수는 정수, 부울 값 또는 문자열과 같은 기본 요소를 저장하는 워크플로우 스크래치패드 변수와 유사합니다. 문자열 값은 정적 또는 동적 스크립트 값일 수 있습니다. 변수 사이드바를 사용하여 의 가상 에이전트 디자이너주제에 대한 스크립트 변수를 정의합니다.
변수 구문은 vaVars.myvar이며, 여기서 myvar 은 변수에 할당하는 이름입니다. 예를 들어, vaVars.myvar = value;를 사용하여 변수에 값을 할당할 수 있습니다. 사용자 입력 변수와 달리 스크립트 변수는 스크립트에서 값을 할당할 수 있습니다.
주제에서 스크립트 변수를 정의하는 방법에 대한 자세한 내용은 을 참조하십시오 주제에 대한 스크립트 변수 정의.
컨텍스트 변수
컨텍스트 변수는 전역 범위에서 작동하는 반면 시스템 변수는 주제 범위 내에서 작동합니다. 웹 클라이언트 URL 내의 시스템 매개변수에 컨텍스트 변수를 사용할 수 있습니다. 이러한 변수는 vaContext 개체를 사용하여 대화의 어느 곳에서나 사용할 수 있습니다. 이러한 옵션을 사용하여 미리 정의된 변수를 가진 링크를 만들 수 가상 에이전트 있습니다.
다음 예제 링크에는 매개 변수 sysparm_city=milan이 포함되어 있습니다. 이 링크를 사용하면 대화를 여는 가상 에이전트 것 외에도 Milan 값을 갖는 city라는 변수가 생성됩니다. 이 변수는 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;를 사용하여 변수에 액세스합니다.
주제 스크립트에서 변수를 사용하려면 라이브 에이전트 에서 가상 에이전트 디자이너주제를 여십시오. 속성 탭에서 라이브 에이전트 변수 옆에 있는 연필 아이콘을 선택하여 주제에 추가합니다.
에 가상 에이전트포함된 라이브 에이전트 컨텍스트 변수에 대한 자세한 내용은 다음 문서를 참조하십시오 라이브 에이전트 채팅 컨텍스트 변수.
vaSystem 메서드
- 기록에 이미지를 첨부합니다.
- 현재 주제를 찾는 데 사용된 검색 문자열에 액세스합니다.
- 라이브 에이전트를 사용하여 대화를 수신할 수 있는지 확인합니다.
- 사용자를 라이브 에이전트에 연결합니다.
| 방법 | 설명 |
|---|---|
| vaSystem.applyLinkTemplate(문자열 sysId, 문자열 tableName, 문자열 actionName) | 포털과 관련된 외부 링크를 생성합니다. |
| vaSystem.attachRecordToConversation(문자열 tableName, 문자열 sysId) | 상호작용 기록의 관련 작업 목록에 기록을 첨부 ServiceNow 합니다 가상 에이전트 . 이러한 기록은 대화 중에 가상 에이전트 업데이트되거나 생성됩니다. |
| vaSystem.attachToRecord(문자열 mediaId, 문자열 tableName, 문자열 sysId) | 업로드된 이미지를 기록에 첨부합니다 ServiceNow . 이 메서드는 다음 매개 변수를 사용합니다.
|
| vaSystem.connectToAgent() | 고객을 라이브 에이전트에 연결합니다. 이 방법에 대한 자세한 내용은 을 참조하십시오 Live Agent로 대화 전송 가상 에이전트. |
| 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.switchTopicByName()을 호출합니다. | 사용자가 현재 대화 주제에서 지정된 주제 이름으로 이동할 수 있습니다. 사용자가 대화를 종료할 수 있도록 X 버튼을 사용할 수 있습니다. 주제가 끝나면 사용자는 전역 주제를 다시 시작합니다. 대화가 끝나면 사용자는 채팅 창 아래쪽 에서 여기를 클릭하여 새 대화를 시작 을 선택하여 주제를 다시 시작할 수 있습니다. 선택적 resumeBehavior 매개 변수는 다음과 같이 대화 흐름이 다시 시작되는 방법을 지정합니다.
resumeBehavior 지정하지 않으면 인스턴스의 기본 동작이 사용됩니다. |
| vaSystem.switchTopicById(sysid) | 사용자가 현재 대화 주제에서 지정된 주제 ID로 이동할 수 있습니다. 사용자가 대화를 종료할 수 있도록 X 버튼을 사용할 수 있습니다. 주제가 끝나면 사용자는 전역 주제를 다시 시작합니다. 대화가 끝나면 사용자는 채팅 창 아래쪽 에서 여기를 클릭하여 새 대화를 시작 을 선택하여 주제를 다시 시작할 수 있습니다. 선택적 resumeBehavior 매개 변수는 다음과 같이 대화 흐름이 다시 시작되는 방법을 지정합니다.
resumeBehavior 지정하지 않으면 인스턴스의 기본 동작이 사용됩니다. |
| vaSystem.topicDiscovery(String searchTextOverride, Boolean keywordImpl) | 매개변수의 용어에 searchTextOverride 따라 주제 검색을 수행합니다. 이 메서드는 다음 매개 변수를 사용합니다.
|
| 방법 | 설명 |
|---|---|
| sn_cs. VASystemObject.getTranscriptById(<conversation sysId>) | 현재 가상 에이전트 대화의 녹취록을 가져옵니다. |