가상 에이전트 스크립트
스크립트 메서드와 변수를 사용하여 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가 예상 값과 일치하는지 여부를 평가합니다.주:사용자 입력 변수의 값은 사용자 입력 컨트롤을 사용하여 할당됩니다. 이 값은 스크립트에서 변경할 수 없습니다.- 이 릴리스는 오스트레일리아 추가 데이터 유형을 지원합니다. 자세한 내용은 주제의 가상 에이전트 입력 데이터 유형 문서를 참조하십시오.
- 기본적으로 사용자 변수를 사용할 수 있으며 사용자의 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
- 애플리케이션
- 언어
- 포털
- search_text
- short_description
변수 구문이 vaContext.LiveAgent_myvar이며, 여기서 myvar 는 사용 가능한 라이브 에이전트 컨텍스트 변수 중 하나입니다. vaContext.LiveAgent_myvar = 값;을 사용하여 변수에 액세스합니다.
주제 스크립트에서 변수를 사용하려면 라이브 에이전트 에서 주제 도우미 디자이너를 여십시오. 속성 탭에서 라이브 에이전트 변수 옆에 있는 연필 아이콘을 선택하여 주제에 추가합니다.
에 가상 에이전트포함된 라이브 에이전트 컨텍스트 변수에 대한 자세한 내용은 문서를 참조하십시오 라이브 에이전트 채팅 컨텍스트 변수.
| 방법 | 설명 |
|---|---|
| vaVars.global_utterance | 기술 선택기가 렌더링되고 발언이 입력될 때 업데이트됩니다. |
vaSystem 메서드
- 기록에 이미지를 첨부합니다.
- 현재 주제를 찾는 데 사용된 검색 문자열에 액세스합니다.
- 라이브 에이전트가 대화를 수신할 수 있는지 확인합니다.
- 사용자를 라이브 에이전트에 연결합니다.
| 방법 | 설명 |
|---|---|
| vaSystem.applyLinkTemplate(문자열 sysId, 문자열 tableName, 문자열 actionName) | 포털과 관련된 외부 링크를 생성합니다. |
| vaSystem.attachRecordToConversation(문자열 tableName, 문자열 sysId) | 상호작용 기록의 관련 작업 목록에 기록을 첨부 ServiceNow 합니다.가상 에이전트 이러한 기록은 대화 중에 업데이트되거나 생성됩니다 가상 에이전트 . |
| vaSystem.attachToRecord(문자열 mediaId, 문자열 tableName, 문자열 sysId) | 업로드한 이미지를 기록에 첨부합니다 ServiceNow . 메서드는 다음 매개변수를 사용합니다.
|
| vaSystem.connectToAgent() | 고객을 라이브 에이전트에 연결합니다. 이 방법에 대한 자세한 내용은 다음 문서를 참조하십시오 라이브 에이전트로 대화 전송 가상 에이전트. |
| 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) |
기술 선택기 컨트롤을 사용자에게 보냅니다.
|
| vaSystem.switchTopicByName() | 사용자가 현재 대화 주제에서 지정된 주제 이름으로 이동할 수 있습니다. 사용자가 대화를 종료할 수 있도록 X 버튼을 사용할 수 있습니다. 주제가 종료된 후 사용자는 전역 주제를 다시 시작합니다. 대화가 끝나면 사용자는 채팅 창 하단에서 여기를 클릭하여 새 대화를 시작 하도록 선택하여 주제를 다시 시작할 수 있습니다. 선택적 resumeBehavior 매개변수는 다음과 같이 대화 플로우가 다시 시작되는 방법을 지정합니다.
resumeBehavior 지정하지 않으면 인스턴스의 기본 동작이 사용됩니다. |
| vaSystem.switchTopicById(sysid) | 이 메서드는 의 sysid sys_cb_topic이며, 사용자가 현재 대화 주제에서 지정된 주제 ID로 이동할 수 있도록 해줍니다. 사용자가 대화를 종료할 수 있도록 X 버튼을 사용할 수 있습니다. 주제가 종료된 후 사용자는 전역 주제를 다시 시작합니다. 대화가 끝나면 사용자는 채팅 창 하단에서 여기를 클릭하여 새 대화를 시작 하도록 선택하여 주제를 다시 시작할 수 있습니다. 선택적 resumeBehavior 매개변수는 다음과 같이 대화 플로우가 다시 시작되는 방법을 지정합니다.
resumeBehavior 지정하지 않으면 인스턴스의 기본 동작이 사용됩니다. |
| vaSystem.topicDiscovery(문자열 searchTextOverride, 부울 키워드 Impl) | 매개변수의 용어를 기반으로 주제 검색을 searchTextOverride 수행합니다. 메서드는 다음 매개변수를 사용합니다.
|
| 방법 | 설명 |
|---|---|
| sn_cs. VASystemObject.getTranscriptById(<대화 sysId>) | 현재 가상 에이전트 대화의 녹취록을 가져옵니다. |