가상 에이전트 봇 통합 API

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 70분
  • 가상 에이전트 봇 통합 API는 사용자가 모든 채팅 인터페이스 또는 봇 생태계를 및/또는 라이브 에이전트앱과 ServiceNow 가상 에이전트 통합할 수 있는 엔드포인트를 제공합니다.

    이 API는 sn_va_as_service 네임스페이스와 함께 가상 에이전트 제공되는 대화형 사용자 지정 채팅 통합 프레임워크를 기반으로 구축되고 작동합니다.

    봇 통합 API 설치 및 구성 가상 에이전트 에 대한 자세한 내용은 다음 문서를 참조하십시오 Using Virtual Agent with a live agent.

    VA 봇 통합 - POST /sn_va_as_service/bot/integration

    지정된 메시지, 첨부 파일 또는 URL을 지정된 보조 ServiceNow 가상 에이전트 (VA) 봇으로 보냅니다.

    고객의 사이트에는 하나 이상의 보조 ServiceNow 봇이 있을 수 있습니다. VA 보조 봇에 ServiceNow 메시지를 전달하는 것 외에도 기본 봇 또는 채팅 클라이언트는 이 엔드포인트를 사용하여 채팅을 통해 라이브 에이전트 에이전트에게 메시지를 전달할 수 있습니다. 요청 본문에 전달된 매개변수를 사용하여 action 지정된 컨텐츠를 처리하는 방법을 지정합니다.

    주:
    이 엔드포인트는 구성 방식에 따라 동기식 또는 비동기식일 수 있습니다. 비동기인 경우 엔드포인트에서 요청을 받으면 요청을 확인하고 성공 또는 실패의 호출 상태와 적절한 HTTP 상태 코드로 응답합니다. 그런 다음 VA는 요청을 처리하고 구성된 응답 엔드포인트로 두 번째 응답을 보냅니다. 예를 들어 봇 대 봇 통합의 경우 두 번째 응답은 기본 봇의 URL에 대한 것입니다. 이 두 응답은 모두 아래에 정의되어 있습니다. 구성된 응답 엔드포인트에 대한 자세한 내용은 가상 에이전트 API에 대한 출력 응답 REST 엔드포인트 및 아웃바운드 인증 구성을 참조하십시오.
    주:
    이 엔드포인트에 대한 코드 예제의 응답은 VA에서 구성된 응답 엔드포인트로 전송되는 내용을 보여줍니다. 단순한 성공 또는 실패 응답인 이 엔드포인트에 대한 실제 응답은 표시하지 않습니다.

    URL 형식

    기본 URL: /api/sn_va_as_service/bot/integration

    지원되는 요청 매개변수

    표 1. 경로 매개변수
    이름 설명
    없음
    표 2. 쿼리 매개변수
    이름 설명
    없음
    표 3. 요청 본문 매개변수
    이름 설명
    작업 VA가 수행해야 하는 작업입니다.
    유효한 값은 다음과 같습니다.
    • 에이전트: 대화를 VA 라이브 에이전트에서 로 전환합니다.
    • CREATE_CONVERSATION: 채팅 상호작용을 생성합니다.
    • END_CONVERSATION: 채팅 대화를 종료합니다. 이 작업을 사용할 때는 매개변수가 message.text 비어 있어야 합니다.
    • FAULT_CONVERSATION: 대화에 결함이 있습니다. FAULT_CONVERSATION 작업을 설정할 때 매개변수에 대한 cause 설명을 제공합니다.
    • SEND_HISTORY: 채팅 기록만 업데이트합니다. 매개변수와 함께 history 표준 메시지 처리를 사용하여 채팅 기록을 보낼 수도 있습니다.
    • SET_USER_TIMEZONE: 사용자의 시간대를 매개변수에 timezone 지정된 시간대로 설정합니다. 이 시간대는 동일한 매개변수를 사용하여 재설정할 때까지 적용됩니다.
    • START_CONVERSATION: 채팅 대화를 시작합니다.
    • START_CREATED_CONVERSATION: CREATE_CONVERSATION를 사용하여 시작된 채팅 대화를 시작합니다.
    • 전환: ORtopic.name 매개변수에 지정된 내용과 일치하는 주제로 대화를 전환합니다intent.id.
      주:
      의도 디스커버리가 기본 봇에서 발생하는 경우에만 주제 전환에 스위치 작업을 사용하십시오 . 의도 디스커버리가 VA에서 ServiceNow® 발생하는 경우 매개변수를 사용합니다 message.text .
    • TYPING/VIEWING: 에 입력 표시기를 라이브 에이전트표시합니다. 먼저 TYPING 을 보낸 다음 사용자가 입력을 마친 후 VIEWING을 보냅니다.
    • UPDATE_MESSAGES: 이 작업은 라이브 에이전트 대화 중에 사용되며 에이전트 채팅 패널에 반영되는 라이브 에이전트로부터 수신된 메시지에 대해 타사 채팅 통합을 위한 두 가지 메시지 업데이트 기능을 제공합니다.
      • 외부 공급업체에서 메시지를 보낸 후의 최신 메시지 배달 상태입니다.
      • 에이전트 채팅 패널의 업데이트된 텍스트입니다.

      외부 공급업체 채팅 통합은 최종 사용자에게 보내기 전에 메시지의 텍스트 부분을 업데이트할 수 있습니다. 이 작업을 호출하여 에이전트가 "업데이트됨" 태그가 있는 업데이트된 텍스트를 볼 수 있도록 에이전트 채팅 패널의 텍스트를 업데이트할 수 있습니다.

      이 작업은 and message.id 매개변수와 message.status 함께 사용됩니다.

      이 옵션은 이름이 제공자 애플리케이션에 연결된 사용자 지정 어댑터 속성이 로 설정된 경우에만 third_party_chat. 이는 채널의 동기/비동기 특성에 관계없이 동기 작업입니다.

    • Null 또는 매개변수가 전달되지 않음: VA로 ServiceNow 메시지를 보냅니다.
    외부 공급업체 채팅 통합은 최종 사용자에게 보내기 전에 라이브 에이전트에서 트리거된 텍스트 메시지를 업데이트할 수 있습니다. 이 작업을 호출하여 에이전트가 "업데이트됨" 태그가 있는 업데이트된 텍스트를 볼 수 있도록 에이전트 채팅 패널의 텍스트를 업데이트할 수 있습니다.

    데이터 유형: 문자열

    기본값: null

    봇To봇 대화가 봇 간(예: 기본 봇과 보조 봇 간)인지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 봇 대 봇 대화입니다.
    • false: 독립 실행형 ServiceNow 봇 대화입니다.

    데이터 유형: 부울

    기본값: true

    원인 채팅 대화 오류의 원인입니다(예: EXTERNAL_FAILURE). 이 속성은 속성이 로 설정된 FAULT_CONVERSATION경우에만 action 사용됩니다.

    데이터 유형: 문자열

    clientSessionId 최종 사용자가 봇 또는 지원되는 외부 공급업체 채팅 애플리케이션과 통신하는 데 사용하는 애플리케이션/서비스의 고유 클라이언트 세션 식별자입니다ServiceNow.
    • 이 ID는 특정 사용자 대화에 대한 요청/응답 집합을 식별하는 데 도움이 됩니다.
    • 이 매개 변수의 형식은 구현자가 결정합니다.
    • 이 값은 사용자 지정 어댑터 속성 양식에서 필드 값이 third_party_chattrue인 경우에만 업데이트됩니다.

    테이블: 상호작용 [interaction]

    데이터 유형: 문자열

    기본값: null

    클라이언트 변수 응답에서 다시 전송되는 통과 JSON 형식의 이름-값 쌍입니다. 이러한 값은 엔드포인트에서 처리되지 않지만 특정 고객 정보를 대화에 첨부된 상태로 유지하는 데 사용할 수 있습니다.

    데이터 유형: 객체

    기본값: null

    context변수 사용자에 대한 추가 정보를 제공하는 JSON 형식의 이름-값 쌍입니다. 대화 환경을 사용자 지정하려면 이 정보를 제공합니다. 컨텍스트 변수에 대한 자세한 내용은 채팅 컨텍스트 변수 정의 및 게시를 참조하십시오.
    예:
    "contextVariables": {
      "requester_session_language": "es", 
      "deviceTimeZone": "America/Los_Angeles"
      "live_agent_only": "true",
      "liveagent_deviceType": "test_device_type"
      "topic": "7c3c819073a3101066c7e9344ef6a7e4" 
    } 

    데이터 유형: 객체

    기본값: null

    emailId 계정 연결을 활성화할 때 필수이며, 그렇지 않으면 모든 사용자가 게스트 사용자로 간주됩니다. 채팅 클라이언트 최종 사용자의 이메일 주소로, 봇이 상호작용하는 사람입니다. 계정 연결에 대한 자세한 내용은 가상 에이전트 대화를 위한 메시징 애플리케이션에 ServiceNow 사용자 계정 연결을 참조하십시오.

    데이터 유형: 문자열

    역사 사용자의 초기 요청으로 시작하는 기본 봇과 사용자의 대화 이력입니다.

    데이터 유형: 객체

    "history": {
      "displayName": "String",
      "isBotMessage": Boolean,
      "timestamp": "String",
      "type": "String",
      "value": "String"
    }
    history.displayName 메시지가 전송된 사용자의 이름입니다. 기본 봇인 경우 을 전달합니다.

    데이터 유형: 문자열

    history.isBotMessage 기본 봇이 메시지를 보냈는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 기본 봇에서 메시지를 보냈습니다.
    • false: 사용자가 메시지를 보냈습니다.

    데이터 유형: 부울

    history.timestamp 메시지가 전송된 시간(밀리초)을 나타내는 타임스탬프입니다.

    유효한 값: 13자리 Unix 타임스탬프

    데이터 유형: 문자열

    이력.유형 보낸 메시지의 유형입니다.

    유효한 값: text

    데이터 유형: 문자열

    이력.값 정보의 내용입니다. 예를 들어 메시지 텍스트입니다.

    데이터 유형: 문자열

    의도 대화의 의도를 설명합니다. 매개변수가 actionSWITCH로 설정된 경우 이 정보를 제공합니다.

    데이터 유형: 객체

    "intent": {
      "id": "String"
    }
    intent.id NLU 대화를 전환할 시스템 주제의 의도 ID입니다. intent.id 채팅 세션에서 전달된 언어에 따라 해결됩니다. 대화를 시작할 때 전달된 언어가 없으면 사용자의 세션/프로파일에서 언어를 가져옵니다.

    데이터 유형: 문자열

    테이블: CS 주제 언어 [sys_cs_topic_language]

    메시지 필수 봇에 보낼 메시지의 상세 정보입니다.ServiceNow

    데이터 유형: 객체

    "message": {
      "attachment": [Array of Objects],
      "clientMessageId": "String",
      "status": "String",
      "text": "String",
      "typed": Boolean
    }
    message.attachment 첨부 파일을 보내는 경우 필수입니다. 보낼 각 첨부 파일의 상세 정보입니다.

    첨부 파일은 URL로만 전달할 수 있습니다. 모든 첨부 파일에서 바이러스 검사가 트리거됩니다. 첨부 파일 크기에는 제한이 없지만 큰 파일은 전송하는 데 상당한 시간이 걸릴 수 있습니다.

    데이터 유형: 객체 배열

    "attachment": [
      {
        "clientAttachmentId": "String",
        "contentType": "String",
        "fileName": "String",
        "headers":{Object},
        "id": "String",
        "url": "String"
      }
    ]
    message.attachment.clientAttachmentId 봇에 보낼 첨부 파일의 고유 식별자입니다.ServiceNow 이 식별자의 형식은 구현자가 결정합니다.

    데이터 유형: 문자열

    기본값: null

    message.attachment.contentType 첨부 파일이 지정된 경우 필수입니다. 첨부 파일의 표준 MIME 유형입니다.
    유효한 값(대/소문자 구분 안 함):
    • 신청서/PDF
    • 애플리케이션/msword
    • 이미지/PNG
    • 이미지/jpeg
    • 텍스트/일반
    • 비디오/MPEG

    데이터 유형: 문자열

    message.attachment.fileName 첨부 파일이 지정된 경우 필수입니다. 첨부 파일의 파일 이름입니다.

    데이터 유형: 문자열

    message.attachment.headers 첨부 파일이 비공개이고 보호되는 경우 추가 정보가 필요합니다.
    데이터 유형: 객체
    "headers":{
      "Authorization":"String"	
    }
    message.attachment.headers.Authorization 첨부 파일에 액세스할 수 있는 권한을 얻는 데 필요한 정보(예: 사용자 이름 및 암호)입니다.

    데이터 유형: 문자열

    message.attachment.url 첨부 파일이 지정된 경우 필수입니다. 첨부 파일이 있는 URL입니다. VA는 이 URL에서 첨부 파일을 가져오고 바이러스 검사를 실행한 다음 파일을 처리합니다. 첨부 파일이 공용 파일이 아닌 경우 첨부 파일에 액세스할 수 있도록 권한 부여 정보가 포함된 객체를 전달 message.attachment.header 해야 합니다. 또한 URL 도메인이 다음 필드에 sys_cs_provider있는 신뢰할 수 있는 도메인에 있는지 확인해야 합니다.

    데이터 유형: 문자열

    message.clientMessageId 메시지의 고유한 영숫자 식별자입니다. 이 식별자의 형식은 구현자가 결정합니다.

    데이터 유형: 문자열

    기본값: null

    message.id 작업과 함께 UPDATE_MESSAGES 사용됩니다. 업데이트할 채팅 메시지의 고유 ID입니다.

    데이터 유형: 문자열

    message.status 메시지 상태입니다.
    유효한 값(대/소문자 구분 안 함):
    • external_error - 외부 공급업체 채팅 통합에서 최종 사용자에게 메시지를 전달하지 못한 경우 사용됩니다. 에이전트 채팅 패널이 "실패" 태그로 반영됩니다.
    • sent_to_user - 처음에는 라이브 에이전트에서 외부 공급업체 채팅 통합으로 전달된 메시지에 대해 단일 눈금이 표시됩니다. 메시지가 외부 공급업체 채팅 통합에서 최종 사용자에게 성공적으로 전달될 때 이 상태를 사용해야 합니다. 성공하면 에이전트 채팅 패널에 이중 확인 표시가 표시됩니다.

    데이터 유형: 문자열

    메시지.텍스트 매개변수가 지정되지 않은 경우 attachment 필요합니다. 메시지 텍스트.
    • 메시지의 언어는 매개변수에 contextVariables 전달되어야 합니다.
    • 작업 속성 값이 END_CONVERSATION 경우 비어 있어야 합니다.
    • 작업 속성 값이 UPDATE_MESSAGES인 경우 에이전트 채팅 패널에 반영될 업데이트된 텍스트여야 합니다.

    데이터 유형: 문자열

    최대 길이: 무제한

    message.typed 필수 메시지가 입력되었는지 또는 옵션 선택(선택됨)인지를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 사용자가 메시지를 입력했습니다.
    • false: 메시지가 옵션 선택입니다.

    데이터 유형: 부울

    requestId 필수 이 요청에 대한 고유한 영숫자 식별자입니다. 이 식별자의 형식은 구현자가 결정합니다.

    데이터 유형: 문자열

    사일런트 메시지 자동 메시지인지 여부를 나타내는 플래그입니다. 자동 메시지는 응답이 필요하지 않은 메시지입니다.
    유효한 값은 다음과 같습니다.
    • 예: 자동 메시지입니다. 응답 메시지가 필요하지 않습니다.
    • 아니오: 일반 메시지, 응답 메시지가 예상됩니다.
    주:
    silentMessage = true인 요청이 전송되면 silentMessage = false를 전달하여 자동 모드를 끄는 요청을 보낼 때까지 모든 후속 봇 메시지가 억제된 상태로 유지됩니다.

    데이터 유형: 부울

    기본값: false

    타임스탬프 채팅 클라이언트의 최종 사용자가 메시지를 보낸 Unix Epoch 시간입니다.

    데이터 유형: 숫자

    단위: 밀리초

    기본값: 현재 시간

    시간대 채팅 클라이언트의 최종 사용자의 GMT 시간대입니다.
    예:
    "timezone":"Asia/Kolkata"

    사용 가능한 시간대 값 목록은 다음 문서를 참조하십시오 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.

    데이터 유형: 문자열

    기본값: 인스턴스의 ServiceNow GMT 시간대입니다.

    주제 사용자가 주제 이름을 지정하여 특정 주제로 전환하려는 경우 필요합니다. 전환할 주제의 이름-값 쌍입니다. 주제 이름 또는 주제 sys_id 지정할 수 있습니다.
    주:
    객체에는 단일 주제 이름 또는 ID만 지정할 수 있습니다.

    데이터 유형: 객체

    "topic": {
      "name": "String",
      "id": "String"
    }

    예:

    {​ 
      "requestId": "xxxx-xxxx-xxxx-xxxx",​
      "clientSessionId": "xxx-xxx-xxx-xxx",​
      "action":"SWITCH",​
      "topic":{​ 
        "name": "Topic Name"​
      },​ 
      "userId": "beth"​ 
    }​ 
    topic.name 전환할 주제의 이름입니다.

    데이터 유형: 문자열

    테이블: 가상 에이전트 주제 [sys_cs_topic] 테이블의 이름 필드에 있습니다.

    topic.id 전환할 주제의 Sys_id입니다.

    데이터 유형: 문자열

    테이블: 가상 에이전트 주제 [sys_cs_topic]

    userID 필수 고유 사용자 식별자입니다. 봇과 상호 작용하는 최종 사용자의 식별자입니다.

    데이터 유형: 문자열

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하십시오.

    표 4. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. application/json만 지원합니다.
    콘텐츠-형식 요청 본문의 데이터 형식입니다. application/json만 지원합니다.
    토큰 토큰 기반 인증을 사용하는 경우 필수입니다. 기본 또는 OAuth 인증의 경우 선택 사항입니다. 이 엔드포인트에 대해 토큰 인증을 설정한 경우 사용할 인증 토큰입니다.

    데이터 유형: 문자열

    표 5. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다. REST API에 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하십시오.

    표 6. 상태 코드
    상태 코드 설명
    200 성공입니다. 요청이 성공적으로 처리되었습니다.
    상태 코드 200을 받았지만 응답을 받지 못한 경우 다음 사항을 확인하십시오.
    • 요청이 정적, JWT 또는 해시 기반 토큰 유효성 검사에서 실패하는지 여부(일반적으로 가상 에이전트.
    • 요청 본문 형식이 올바른지 여부입니다. 올바르지 않은 경우 변환이 제대로 이루어지지 않습니다.
    • 요청 본문에 일부 필수 매개변수가 없는지 여부입니다. 인스턴스의 시스템 로그에서 예외와 오류를 추적할 ServiceNow 수 있습니다.
    • 응답을 수신하기 위해 REST 메시지에 정의된 사이트가 운영되고 있는지 여부; 로그에서 탐지할 수 있습니다.
    • 응답을 게시할 위치를 정의하는 REST 메시지가 올바르게 설정되어 있는지 확인합니다.
    400 잘못된 요청입니다. 잘못된 요청 유형 또는 잘못된 형식의 요청이 탐지되었습니다.
    401 권한이 해제되었습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다.
    405 잘못된 메서드입니다. 기능이 비활성화되었습니다.
    500 내부 서버 오류입니다. 요청을 처리하는 동안 예기치 않은 오류가 발생했습니다. 응답에는 오류에 대한 추가 정보가 포함되어 있습니다.

    응답 본문 매개변수

    엔드포인트 호출의 상태입니다. 초기 호출 요청이 수신될 때 응답으로 전송됩니다. 요청이 아직 처리되지 않았습니다.

    이름 설명
    오류 탐지된 오류에 대한 설명입니다. 오류가 발생한 경우에만 반환됩니다.

    데이터 유형: 객체

    "error": {
      "detail": "String",
      "message": "String"
    }
    오류.상세 정보 발생한 오류에 대한 상세 정보입니다.

    데이터 유형: 문자열

    오류.메시지 오류 메시지가 throw되었습니다.

    데이터 유형: 문자열

    상태 엔드포인트 호출의 상태입니다.
    유효한 값은 다음과 같습니다.
    • 실패
    • 성공

    데이터 유형: 문자열

    VA 응답 본문 매개변수

    VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    이름 설명
    에이전트 채팅 대화가 에 ServiceNow 라이브 에이전트연결되어 있는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 채팅 메시지가 라이브 에이전트에서 전송됩니다.
    • false: 채팅 메시지가 봇에서 오고 이 매개변수는 응답에 반환되지 않습니다.

    데이터 유형: 부울

    본문 응답 메시지 본문의 요소를 설명하는 객체의 목록입니다.

    데이터 유형: 객체 배열

    "body": [
      {
        "actionType": "String",
        "agentInfo": {Object},
        "data": "String",
        "group": "String",
        "header": "String",
        "height": Number,
        "itemType": "String",
        "label": "String",
        "maskType": "String",
        "maxCount": Number,
        "maxSize": Number,
        "message": "String",
        "messageId": "String",
        "multiSelect": Boolean,
        "nluTextEnabled": Boolean,
        "options": {Object},
        "promptMsg": "String",
        "required": Boolean,
        "style": "String",
        "templateName": "String",
        "type": "String",
        "uiType": "String",
        "value": "String/{Object}",
        "width": Number
      }
    ]
    body.actionType 보조 봇이 기본 봇에 디스패치한 작업 메시지의 유형입니다. 예를 들어 표시기 또는 에이전트 대기 시간을 입력합니다.
    가능한 값:
    • EndTypingIndicator
    • 시작 스피너
    • StartTypingIndicator

    예:

    입력 표시기가 활성화되면 기본 봇에 StartTypeIndicator 를 보냅니다.

    "body": {​ 
      "uiType":"ActionMsg",​ 
      "actionType":"StartTypingIndicator"​ 
    }  

    최종 사용자에게 대기 시간을 표시하기 위해 전송할 때 라이브 에이전트StartSpinner를 보냅니다.

    "body": { 
      "uiType":"ActionMsg", 
      "actionType":"StartSpinner", 
      "spinnerType":"wait_time",  
      "message":"Routing you to a live agent...", 
      "waitTime":"8 Seconds" 
    } 

    데이터 유형: 문자열

    body.agentInfo 에이전트 채팅 설정에서 활성화된 경우 연결된 에이전트의 이름과 아바타입니다.
    데이터 유형: 객체
    "agentInfo":{   
      "agentAvatar":"String",
      "agentId":"String",
      "agentName": "String", 
      "sentFromAgent": Boolean
    }

    예:

    "agentInfo":{ 
      "sentFromAgent": true,
      "agentName":"Beth Anglin", 
      "agentAvatar":"https://instance.servicenow.com/ee4eebf30a0004d963b5c5ac0d734dc4.iix?t=small" 
    } 
    body.agentInfo.agentAvatar 에이전트의 연결된 아바타 파일의 URL입니다.

    예: "https://instance.servicenow.com/ee4eebf30a0004d963b5c5ac0d734dc4.iix?t=small"

    데이터 유형: 문자열

    body.agentInfo.agentId 라이브 에이전트의 sys_id입니다.

    테이블: 라이브 프로파일 [live_profile]

    데이터 유형: 문자열

    body.agentInfo.agentName 에이전트의 표시 이름입니다.

    데이터 유형: 문자열

    body.agentInfo.sentFromAgent 메시지를 라이브 에이전트에서 보냈는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 라이브 에이전트에서 보냅니다.
    • false: 가상 에이전트에서 보냅니다.

    데이터 유형: 부울

    본문.데이터 카드 내의 데이터를 정의하는 JSON 문자열입니다.

    데이터 유형: 문자열

    본문.그룹 본문 요소가 속한 리치 컨트롤 그룹입니다. 아웃바운드 변환 스크립트를 작성하여 이러한 기본 컨트롤을 추가로 변환할 수 있습니다. 이러한 스크립트에 대한 자세한 내용은 가상 에이전트 작업 스크립트를 참조하십시오.
    가능한 값:
    • DefaultOutput카드
    • 기본 날짜
    • DefaultGroupedPartsOutputControl
    • 기본 HTML
    • DefaultOutputImage
    • DefaultOutputLink
    • DefaultText
    • 기본 선택기

    데이터 유형: 문자열

    본문.헤더 링크 헤더.

    데이터 유형: 문자열

    본문.높이 HTML 요소의 높이입니다.

    데이터 유형: 숫자

    단위: 픽셀

    body.itemType 본문 요소의 유형입니다.
    가능한 값: (대/소문자 구분)
    • DefaultText
      • 파일
      • 이미지
      • 입력 텍스트
      • 출력 텍스트
    • 기본 선택기
      • 그림: 항목이 캐러셀에 나타납니다.
      • 목록: 항목이 드롭다운 스타일 목록에 나타납니다.

    데이터 유형: 문자열

    본문.레이블 연결된 요소에 대해 표시할 레이블입니다.

    데이터 유형: 문자열

    body.maskType 관련 데이터의 민감도입니다.
    가능한 값:
    • 없음: 연결된 데이터는 일반적인 특성이므로 보호할 필요가 없습니다.
    • 보안: 관련 데이터는 중요한 특성이므로 안전하게 처리해야 합니다.

    데이터 유형: 문자열

    body.maxCount FileUpload인 경우에만 uiType 반환됩니다. 한 번에 업로드할 수 있는 최대 첨부 파일 수입니다.

    데이터 유형: 숫자(정수)

    body.maxSize FileUpload인 경우에만 uiType 반환됩니다. 업로드할 수 있는 첨부 파일의 최대 크기입니다.

    데이터 유형: 숫자(정수)

    단위: 메가바이트

    본문.메시지 StartSpinner인 경우에만 actionType 반환됩니다. 사용자에게 표시할 메시지입니다.

    데이터 유형: 문자열

    body.messageId 에서 ServiceNow 가상 에이전트지원되는 외부 공급업체 채팅 애플리케이션으로 전송되는 메시지의 고유 식별자입니다.

    테이블: 대화 메시지 [sys_cs_message]

    데이터 유형: 문자열

    body.multiSelect 사용자가 여러 옵션을 선택할 수 있는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 다중 선택.
    • false: 단일 선택.

    데이터 유형: 부울

    body.nluTextEnabled 사용자 채팅 클라이언트가 자연어 이해(NLU) 텍스트 메시지를 받을 수 있는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: NLU 메시지를 수신할 수 있습니다.
    • false: NLU 메시지를 수신할 수 없습니다.

    데이터 유형: 부울

    본문.옵션 선택기 컨트롤에 사용할 수 있는 옵션을 설명하는 목록입니다.
    데이터 유형: 객체 배열
    "options": [
      {
        "attachment": "String",
        "description": "String",
        "enabled": Boolean,
        "label": "String",
        "renderStyle": "String",
        "value": "String"
      }
    ]
    본문.옵션.첨부 파일 검색할 캐러셀에 있는 이미지의 URL입니다.

    데이터 유형: 문자열

    본문.옵션.설명 캐러셀 항목에 대한 설명입니다.

    데이터 유형: 문자열

    body.options.enabled 최종 사용자의 채팅 클라이언트에서 선택기 컨트롤이 활성화되어 있는지 여부를 나타내는 플래그입니다. 봇 간 구현에서 기본 봇은 선택기 컨트롤을 사용하지 않도록 설정하는 역할을 담당합니다.
    가능한 값:
    • true: 사용
    • false: 사용 안 함

    데이터 유형: 부울

    body.options.label 연결된 body.options.value 매개변수에 표시할 레이블입니다.

    데이터 유형: 문자열

    body.options.renderStyle 연결된 요소를 렌더링할 때 사용할 스타일입니다.

    가능한 값: data

    데이터 유형: 문자열

    본문.옵션.값 연결된 body.options.label 매개변수에 대해 표시할 값입니다.

    데이터 유형: 문자열

    body.promptMsg 선택기 컨트롤과 함께 표시할 프롬프트 메시지입니다.

    데이터 유형: 문자열

    본문.필수 최종 사용자가 본문 요소의 쿼리에 응답해야 하는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 필수
    • false: 선택 사항

    데이터 유형: 부울

    body.spinnerType StartSpinner인 경우에만 actionType 반환됩니다. 채팅 사용자에게 표시되는 스피너 유형입니다.

    가능한 값:

    wait_time: 라이브 에이전트로 전송되기 전의 지연 시간을 나타내는 메시지입니다.

    데이터 유형: 문자열

    본문.스타일 본문 요소의 스타일입니다.
    가능한 값:
    • 단추
    • 캐러셀
    • 목록
    • null

    데이터 유형: 문자열

    body.templateName 연결된 카드를 표시하는 데 사용할 템플릿의 이름입니다.

    데이터 유형: 문자열

    본문.유형 DefaultOutputLink에 대해서만 반환됩니다. 반환 데이터의 유형입니다.

    가능한 값: 링크

    데이터 유형: 문자열

    body.uiType 본문 요소의 유형입니다. 가능한 값은 매개변수의 body.group 값에 따라 달라집니다. 이러한 값은 가상 에이전트 디자이너에 정의된 컨트롤에 다시 매핑됩니다. 자세한 내용은 가상 에이전트 디자이너 시작하기를 참조하십시오.
    가능한 값:
    • 작업 메시지
    • DefaultOutput카드

      출력 카드

    • 기본 날짜
      • 날짜
      • 날짜/시간
      • 시간
    • DefaultGroupedPartsOutputControl

      GroupedPartsOutputControl

    • 기본 HTML

      출력 HTML

    • DefaultOutputImage

      출력 이미지

    • DefaultOutputLink

      출력 링크

    • DefaultText
      • 입력 텍스트
      • 출력 텍스트
      • 파일 업로드
    • 기본 선택기
      • 선택기
      • TopicPicker통제
      • 부울

    데이터 유형: 문자열

    본문.값 본문 요소를 처리하는 데 사용할 데이터입니다. 다시 전달되는 정보의 유형은 본문 요소의 유형에 따라 다릅니다.
    OutputLink: 객체입니다.
    "value": {
      "action": "String"
    }

    OutputImage: 문자열입니다. 이미지 URL입니다.

    OutputHtml: 문자열. 클라이언트가 렌더링해야 하는 HTML입니다.

    데이터 유형: 문자열 또는 객체

    본문.값.작업 DefaultOutputLink에 대해서만 반환됩니다. 반환된 링크의 URL입니다.

    데이터 유형: 문자열

    body.waitTime 사용자가 라이브 에이전트에 연결되기 전에 기다려야 하는 시간입니다.

    데이터 유형: 문자열

    본문.너비 연결된 HTML 요소의 너비입니다.

    데이터 유형: 숫자

    단위: 픽셀

    clientSessionId 최종 사용자가 봇과 통신하는 데 사용하는 채팅 애플리케이션/서비스의 고유 클라이언트 세션 식별자입니다.ServiceNow

    데이터 유형: 문자열

    클라이언트 변수 요청 본문의 매개변수에 clientVariables 전달된 내용에서 복사되는 JSON 형식의 이름-값 쌍입니다. 이러한 값은 엔드포인트에서 처리되지 않지만 특정 고객 정보를 대화에 첨부된 상태로 유지하는 데 사용할 수 있습니다.

    데이터 유형: 객체

    완료됨 대화를 성공적으로 완료했는지 여부를 ServiceNow 가상 에이전트 나타내는 플래그입니다.
    가능한 값:
    • 예: 대화가 성공적으로 완료되었습니다.
    • false: 대화가 완료되지 않았으며 이 매개변수가 응답에 반환되지 않습니다.

    데이터 유형: 부울

    엔터프라이즈 ID 현재 사용되지 않습니다.
    interactionId 및 지원되는 외부 공급업체 채팅 애플리케이션 간의 ServiceNow 가상 에이전트 각 대화에 대한 고유 식별자입니다.

    데이터 유형: 문자열

    메시지 VA로 전송된 메시지의 상세 정보입니다 ServiceNow . 이는 전달된 메시지 객체와 동일합니다.

    데이터 유형: 객체

    "message": {
      "attachment": {Object},
      "clientMessageId": "String",
      "text": "String",
      "typed": Boolean
    }
    message.attachment 첨부 파일에 대한 상세 정보입니다. 첨부 파일은 파일 또는 URL일 수 있습니다.

    데이터 유형: 객체

    "attachment": {
      "clientAttachmentId": "String",
      "contentType": "String",
      "fileName": "String",
      "url": "String"
    message.attachment.clientAttachmentId VA로 전송된 첨부 파일의 고유 식별자입니다.ServiceNow 이 식별자의 형식은 구현자가 결정합니다.

    데이터 유형: 문자열

    message.attachment.contentType 첨부 파일의 표준 MIME 유형입니다.
    가능한 값(대/소문자 구분 없음):
    • 애플리케이션/msword
    • 신청서/PDF
    • 이미지/jpeg
    • 이미지/PNG
    • 텍스트/일반
    • 비디오/MPEG

    데이터 유형: 문자열

    message.attachment.fileName 첨부 파일의 파일 이름입니다.

    데이터 유형: 문자열

    message.attachment.url 첨부 파일이 있는 URL입니다.

    데이터 유형: 문자열

    message.clientMessageId 메시지의 고유한 영숫자 식별자입니다.

    데이터 유형: 문자열

    메시지.텍스트 메시지 텍스트.

    데이터 유형: 문자열

    최대 길이: 무제한

    message.typed 메시지가 입력되었는지 또는 옵션 선택(선택됨)인지를 나타내는 플래그입니다.
    가능한 값:
    • true: 사용자가 메시지를 입력했습니다.
    • false: 메시지가 옵션 선택입니다.

    데이터 유형: 부울

    nowBotId 현재 사용되지 않습니다.
    nowSessionId 현재 사용되지 않습니다.
    requestId 이 요청의 고유 식별자입니다.

    데이터 유형: 문자열

    점수 모델의 ServiceNow NLU 의도 신뢰도 점수로, 백분율로 지정됩니다(예: 87.3%). 이 점수를 통해 기본 봇은 기본 봇 모델의 NLU 신뢰도 임계치에 따라 관련 의도를 표면화할지 여부를 결정할 수 있습니다. ServiceNow NLU 인스턴스에서 ServiceNow 모델의 신뢰도 임계치는 무시되므로 기본 봇의 NLU 모델 신뢰도 임계치를 모든 보조 봇에 일관되게 적용할 수 있습니다.

    데이터 유형: 숫자

    통제 기본 봇에 제어를 다시 넘겨주려고 한다는 것을 나타내는 ServiceNow 가상 에이전트 플래그입니다.
    가능한 값:
    • true: 통제를 기본 봇으로 반환합니다.
    • false: 통제를 유지합니다.

    데이터 유형: 부울

    기본값: false

    userID 봇과 상호 작용하는 최종 사용자의 식별자입니다.

    데이터 유형: 문자열

    대화를 시작하려면 START_CONVERSATION 작업을 사용하여 대화를 시작합니다.

    다음 예는 START_CONVERSATION 작업을 사용하여 대화를 시작하는 방법을 보여줍니다.가상 에이전트 이 호출은 사용자를 인사말 주제로 안내합니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{ 
      "requestId": "asd2423-sda23-qwe23-we23", 
      "action": "START_CONVERSATION", 
      "enterpriseId": "ServiceNow", 
      "nowBotId": "A85PWLERF", 
      "clientSessionId": "", 
      "nowSessionId": "",
      "message":{ 
        "text": "", 
        "typed": true, 
        "clientMessageId": "ABC-123" 
      }, 
      "userId": "beth.anglin", 
      "emailId": "beth.anglin@example.com", 
      "timestamp": 1588824102, 
      "timezone": "America/New_York" 
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    { 
      "requestId":"asd2423-sda23-qwe23-we23", 
      "clientSessionId":"", 
      "nowSessionId":"", 
      "message":{ 
        "text":"", 
        "typed":true, 
        "clientMessageId":"ABC-123" 
      },
      "userId":"beth.anglin", 
      "body":[ 
        { 
          "uiType":"OutputText", 
          "group":"DefaultText", 
          "value":"Hi, I'm your Virtual Agent. Let me know how I can help you today.", 
          "maskType":"NONE" 
        },
        { 
          "uiType":"TopicPickerControl", 
          "group":"DefaultPicker", 
          "nluTextEnabled":false, 
          "promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type help any time when you need help.", 
          "label":"Show me everything", 
          "options":[ 
            { 
              "label":"b2b topic", 
              "value":"2bb7bd7670de6010f877c7f188266fc7", 
              "enabled":true 
            }, 
            { 
               "label":"Live Agent Support.", 
               "value":"ce2ee85053130010cf8cddeeff7b12bf", 
               "enabled":true 
            } 
          ] 
        }
      ],
      "score":1 
    } 

    채팅 상호작용 생성

    다음 예시는 CREATE_CONVERSATION 작업을 사용하여 채팅 상호작용을 생성하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "action": "CREATE_CONVERSATION",
      "message": {
        "text": "hi",
        "typed": false
      },
      "userId": "abel.tuter",
      "emailId": "abel.tuter@example.com"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "message": {
        "text": "hi",
        "typed": false
      },
      "userId": "abel.tuter",
      "interactionId": "240c91c8fd9f2e50f877c29ac5fbe8ed",
      "body": [
        {
          "uiType": "ActionMsg",
          "actionType": "CreateConversation",
          "conversationId": "a40c91c8fd9f2e50f877c29ac5fbe8eb",
          "interactionId": "240c91c8fd9f2e50f877c29ac5fbe8ed",
          "messageId": "b80c91c8fd9f2e50f877c29ac5fbe8f8"
        }
      ],
      "score": 1
    }

    START_CREATED_CONVERSATION 작업을 사용하여 시작된 대화 시작

    다음 예는 CREATE_CONVERSATION 작업을 사용하여 시작된 채팅 대화를 시작하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "action": "START_CREATED_CONVERSATION",
      "userId": "abel.tuter",
      "emailId": "abel.tuter@example.com"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    { 
      "requestId":"302bas2be70-sadsa-we32-3eq2-1231ra9", 
      "clientSessionId":"",
      "message":{ 
        "text":"hola", 
        "typed":true
      }, 
      "userId”:”abel.tuter", 
      "body":[
        { 
          "uiType":"OutputText", 
          "group":"DefaultText",
          "value":"Hi, I'm your Virtual Agent. Let me know how I can help you today.",
          "maskType":"NONE"
        },
        { 
          "uiType":"TopicPickerControl", 
          "group":"DefaultPicker",
          "nluTextEnabled":false,
          "promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type hellllp! any time when you need help.", 
          "label":"Show me everything",
          "options":[
            {
              "label":"boolean check",
              "value":"1b5257a1db712010d3d6d9595e9619f3",
              "enabled":true
            },
            { 
              "label":"Test_table_datepicker",
              "value":"6515f0cadb4220108249f7541d961980",
              "enabled":true
            }, 
            { 
              "label":"Test File upload",
              "value":"76c1f4b2db7520108249f7541d9619a7",
              "enabled":true
            },
            { 
              "label":"Test B2B 2",
              "value":"8373e55cdb8120108249f7541d96196d",
              "enabled":true
            },
            {
              "label":"FAQ Conversation Builder_Global",
              "value":"9f3114a3dbc520108249f7541d961981",
              "enabled":true
            },
            {
              "label":"Get to know you",
              "value":"a443dd6adb812010d3d6d9595e961954", 
              "enabled":true
            }, 
            { 
              "label":"Get to know you_Global", 
              "value":"b1a56b87db8120108249f7541d9619b2", 
              "enabled":true 
            },
            {
              "label":"Live Agent Support.",
              "value":"ce2ee85053130010cf8cddeeff7b12bf",
              "enabled":true
            },
            {
              "label":"Apply for PTO_B2B NLU",
              "value":"d948c94cdb052010d3d6d9595e961969",
              "enabled":true 
            }
          ]
        } 
       ], 
       "score":1 
    } 

    를 사용하여 대화 오류

    다음 예시에서는 FAULT_CONVERSATION 작업을 사용하고 매개변수 값을 cause 설정하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "action": "FAULT_CONVERSATION",
      "cause": "EXTERNAL_FAILURE",
      "userId": "abel.tuter",
      "emailId": "abel.tuter@example.com"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "userId": "abel.tuter",
      "body": [],
      "takeControl": true,
      "score": 0
    }

    에이전트 채팅 패널에서 메시지 업데이트

    UPDATE_MESSAGES 작업은 라이브 에이전트 대화 중에 사용되며 외부 공급업체 채팅 통합에서 에이전트 채팅 패널에 메시지 업데이트를 반영하는 데 사용됩니다. 이 작업은 메시지 목록을 수락할 수 있으며 모든 메시지에 대한 업데이트는 한 번의 실행으로 수행할 수 있습니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "message": [
        {
          "status": "external_error",
          "id": "54623afeff762210efa1ffffffffff77"
        }
      ],
      "userId": "abel.tuter",
      "emailId": "abel.tuter@example.com",
      "action": "UPDATE_MESSAGES"
    }"
    --user "username":"password"

    다음은 VA에서 구성된 응답 엔드포인트로 보낸 응답 메시지입니다.

    Message Processed Successfully

    채팅 기록만 업데이트

    다음 예시는 SEND_HISTORY 작업을 사용하여 채팅 기록만 업데이트하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
    "clientSessionId": "",
      "userId": "abel.tuter",
      "emailId": abel.tuter@example.com,
      "action": "SEND_HISTORY",
      "history": [
        {
          "isBotMessage": true,
          "value": "How can I help you?",
          "displayName": "Genesys Bot",
          "type": "text",
          "timestamp": "1739866290393"
        },
        {
          "isBotMessage": false,
          "value": "I am facing an issue while creating an incident.",
          "displayName": "User",
          "type": "text",
          "timestamp": "1739877357223"
        },
        {
          "isBotMessage": true,
          "value": "Okay. i am routing you to an agent",
          "displayName": "Genesys Bot",
          "type": "text",
          "timestamp": "1739877409746"
        },
        {
          "isBotMessage": false,
          "value": "Thanks.",
          "displayName": "User",
          "type": "text",
          "timestamp": "1739877453201"
        }
      ]
    }"
    --user "username":"password"

    다음은 VA에서 구성된 응답 엔드포인트로 보낸 성공 응답입니다.

    {"status": "success"}

    발언 사용으로 대화 라이브 에이전트 전송

    다음 예제에서는 매개 변수에서 message.text agent를 발언으로 전달하여 인사말 주제를 바이패스하고 대화를 라이브 에이전트로 전송하는 방법을 보여줍니다. 가능한 발언 값은 sys_cs_contextual_action 테이블에 정의되어 있습니다. 상황별 작업에 대한 자세한 내용은 사용자 지정 채팅 통합을 위한 상황별 작업을 참조하십시오.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: ORANGE" \
    --data " {
      "requestId": "322bas2be70-sadsa-we32-3eq2-1231ra9",
      "botToBot": true,
      "clientSessionId": "",
      "silentMessage": false,
      "message":{
        "text": "agent",
        "typed": true
      },
      "userId": "abel.tuter",
      "emailId": "abel.tuter@servicenow.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId":"322bas2be70-sadsa-we32-3eq2-1231ra9",
      "clientSessionId":"",
      "message":{
        "text":"agent",
        "typed":true
      },
      "userId":"abel.tuter",
      "body":[
        {
          "uiType":"Picker",
          "group":"DefaultPicker",
          "required":true,
          "nluTextEnabled":false,
          "label":"I want to be sure I got this right. What item best describes what you want to do?",
          "itemType":"List",
          "style":"list",
          "multiSelect":false,
          "options":[
            {
              "label":"Live Agent Support.",
              "value":"Live Agent Support.",
              "renderStyle":"data",
              "enabled":false
            },
            {
              "label":"Virtual Agent Capabilities.",
              "value":"Virtual Agent Capabilities.",
              "renderStyle":"data",
              "enabled":false
            },
            {
              "label":"I want something else",
              "value":"-1",
              "renderStyle":"data",
              "enabled":false
            }
          ],
          "scriptedData":null
        }
      ],
      "score":1
    }

    사용자의 선택에 따라 라이브 에이전트 지원으로 대화 전송

    다음 예는 이전 상호작용에서 사용자의 선택에 따라 대화를 라이브 에이전트 지원으로 전송하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: ORANGE" \
    --data "{
      "requestId": "322bas2be70-sadsa-we32-3eq2-1231ra9",
      "botToBot": true,
      "clientSessionId": "",
      "silentMessage": false,
      "message":{
        "text": "Live Agent Support.",
        "typed": true
      },
      "userId": "abel.tuter",
      "emailId": "abel.tuter@servicenow.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    } "

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId":"322bas2be70-sadsa-we32-3eq2-1231ra9",
      "clientSessionId":"",
      "message":{
        "text":"Live Agent Support.",
        "typed":true
      },
      "userId":"abel.tuter",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "value":"Please stand by while I connect you to a live agent."
        }
      ],
      "agentChat":true,
      "score":1
    }

    작업 매개변수를 설정하여 대화 종료 가상 에이전트

    다음 예시에서는 매개변수를 actionEND_CONVERSATION로 설정하여 대화를 가상 에이전트 종료하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "s345ew-sjg554-qwe23-we23",
      "action": "END_CONVERSATION",
      "enterpriseId": "ServiceNow",
      "nowBotId": "A85PWLERF",
      "clientSessionId": "",
      "nowSessionId": "",
      "message":{
        "text": "b2b topic",
        "typed": true,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "emailId": beth.anglin@example.com,
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문으로, 대화가 종료되었음을 보여줍니다.

    {
      "requestId":"s345ew-sjg554-qwe23-we23",
      "clientSessionId":"",
      "nowSessionId":"",
      "message":{
        "text":"",
        "typed":true,
        "clientMessageId":"ABC-123"
      },
      "userId":"beth.anglin",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "value":"The conversation has ended. If you need help again, type hi.",
          "maskType":"NONE"
        }
      ],
      "score":1
    }

    작업 매개변수를 설정하여 대화 종료 라이브 에이전트

    다음 예시에서는 매개변수를 actionEND_CONVERSATION로 설정하여 대화를 라이브 에이전트 종료하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "sad-sjg554-qwe23-we23",
      "action": "END_CONVERSATION",
      "enterpriseId": "ServiceNow",
      "nowBotId": "A85PWLERF",
      "clientSessionId": "",
      "nowSessionId": "",
      "message":{
        "text": "",
        "typed": true,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "emailId": "beth.anglin@example.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문으로, 대화가 종료되었음을 보여줍니다.

    {
      "requestId":"sad-sjg554-qwe23-we23",
      "clientSessionId":"",
      "nowSessionId":"",
      "message":{
        "text":"",
        "typed":true,
        "clientMessageId":"ABC-123"
      },
      "userId":"beth.anglin",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "value":"The conversation has ended. If you need help again, type hi.",
          "maskType":"NONE"
        }
      ],
      "completed":true,
      "score":1
    }

    sys_cs_contextual_action 테이블에 정의된 명령을 대화를 시작할 발언으로 사용합니다. 가상 에이전트

    다음 예제에서는 이전 예제와 같이 매개변수를 actionSTART_CONVERSATION로 설정하는 대신 sys_cs_contextual_action 테이블에 정의된 명령을 대화 가상 에이전트 를 시작할 발언으로 사용하는 Hi 방법을 보여줍니다. 이 예에서는 명령의 Hi 언어 변형 중 하나인 "hola"를 사용하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: ORANGE" \
    --data "{
      "requestId": "302bas2be70-sadsa-we32-3eq2-1231ra9",
      "botToBot": true,
      "clientSessionId": "",
      "silentMessage": false,
      "message":{
        "text": "hola",
        "typed": true
      },
      "userId": "fred.ludy",
      "emailId": "abel.tuter@servicenow.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    { 
      "requestId":"302bas2be70-sadsa-we32-3eq2-1231ra9", 
      "clientSessionId":"",
      "message":{ 
        "text":"hola", 
        "typed":true
      }, 
      "userId":"fred.ludy", 
      "body":[
        { 
          "uiType":"OutputText", 
          "group":"DefaultText",
          "value":"Hi, I'm your Virtual Agent. Let me know how I can help you today.",
          "maskType":"NONE"
        },
        { 
          "uiType":"TopicPickerControl", 
          "group":"DefaultPicker",
          "nluTextEnabled":false,
          "promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type hellllp! any time when you need help.", 
          "label":"Show me everything",
          "options":[
            {
              "label":"boolean check",
              "value":"1b5257a1db712010d3d6d9595e9619f3",
              "enabled":true
            },
            { 
              "label":"Test_table_datepicker",
              "value":"6515f0cadb4220108249f7541d961980",
              "enabled":true
            }, 
            { 
              "label":"Test File upload",
              "value":"76c1f4b2db7520108249f7541d9619a7",
              "enabled":true
            },
            { 
              "label":"Test B2B 2",
              "value":"8373e55cdb8120108249f7541d96196d",
              "enabled":true
            },
            {
              "label":"FAQ Conversation Builder_Global",
              "value":"9f3114a3dbc520108249f7541d961981",
              "enabled":true
            },
            {
              "label":"Get to know you",
              "value":"a443dd6adb812010d3d6d9595e961954", 
              "enabled":true
            }, 
            { 
              "label":"Get to know you_Global", 
              "value":"b1a56b87db8120108249f7541d9619b2", 
              "enabled":true 
            },
            {
              "label":"Live Agent Support.",
              "value":"ce2ee85053130010cf8cddeeff7b12bf",
              "enabled":true
            },
            {
              "label":"Apply for PTO_B2B NLU",
              "value":"d948c94cdb052010d3d6d9595e961969",
              "enabled":true 
            }
          ]
        } 
       ], 
       "score":1 
    } 

    sys_cs_contextual_action 테이블에 정의된 명령을 대화를 종료하는 발언으로 사용합니다.

    다음 예시에서는 sys_cs_contextual_action 테이블에 정의된 명령을 이전 예시에서와 같이 END_CONVERSATION로 설정하는 action 대신 대화 가상 에이전트 를 끝내는 발언으로 사용하는 Bye 방법을 보여줍니다. 이 예는 명령의 Bye 언어 변형 중 하나인 "choa"를 사용하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: ORANGE" \
    --data "{
      "requestId": "302bas2be70-sadsa-we32-3eq2-1231ra9",
      "botToBot": true,
      "clientSessionId": "",
      "silentMessage": false,
      "message":{
        "text": "choa",
        "typed": true
      },
      "userId": "fred.ludy",
      "emailId": "abel.tuter@servicenow.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId":"302bas2be70-sadsa-we32-3eq2-1231ra9",
      "clientSessionId":"",
      "message":{ 
        "text":"chao",
        "typed":true
      }, 
      "userId":"fred.ludy",
      "body":[ 
        {
          "uiType":"Picker",
          "group":"DefaultPicker",
          "required":true,
          "nluTextEnabled":false,
          "label":"Please make a selection.",
          "itemType":"List",
          "style":"list",
          "multiSelect":false,
          "options":[
            {
              "label":"End conversation",
              "value":"1",
              "renderStyle":"data",
              "enabled":false
            }, 
            {
              "label":"Cancel",
              "value":"0",
              "renderStyle":"data",
              "enabled":false
            } 
          ],
          "scriptedData":null 
        }
      ],
      "score":1 
    }

    SWITCH 작업 매개변수를 사용하여 진행 중인 대화 변경

    다음 예제는 SWITCH action 매개변수를 사용하여 진행 중인 대화를 매개변수에 intent.id 지정된 항목과 일치하는 주제로 변경하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "sdfsfs-hgfhg-34fssd-zxcz-sd43",
      "enterpriseId": "ServiceNow",
      "nowBotId": "A85PWLERF",
      "clientSessionId": "",
      "nowSessionId": "",
      "action": "SWITCH",
      "intent" : {
        "id": "Saloon Vehicle"
      },
      "message":{
        "typed": true,
        "clientMessageId": "ABC-123"
      },
      "userId": "Guest",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문으로, VA가 새 주제로 전환되었음을 보여줍니다.

    {
       "requestId":"sdfsfs-hgfhg-34fssd-zxcz-sd43",
       "clientSessionId":"",
       "nowSessionId":"",
       "message":{
          "typed":true,
          "clientMessageId":"ABC-123"
       },
       "userId":"Guest",
       "body":[
          {
             "uiType":"InputText",
             "group":"DefaultText",
             "required":true,
             "nluTextEnabled":false,
             "label":"limo input:",
             "maskType":"NONE"
          }
       ],
       "score":1
    }

    발언에 대한 신뢰도 점수() 얻기 자연어 이해NLU

    다음 예시에서는 VA에서 활성화된 경우 NLU 발언에 대한 신뢰 점수를 가져오 NLU 는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "sdfsfs-hgfhg-34fssd-zxcz-sd43", 
      "enterpriseId": "ServiceNow", 
      "nowBotId": "A85PWLERF", 
      "clientSessionId": "", 
      "nowSessionId": "", 
      "message":{ 
        "text": "most popular choice", 
        "typed": true, 
        "clientMessageId": "ABC-123" 
      }, 
      "userId": "Guest", 
      "timestamp": 1588824102, 
      "timezone": "America/New_York" 
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문으로, NLU 신뢰 점수를 보여줍니다.

    { 
      "requestId":"sdfsfs-hgfhg-34fssd-zxcz-sd43", 
      "clientSessionId":"", 
      "nowSessionId":"", 
      "message":{ 
        "text":"most popular choice", 
        "typed":true, 
        "clientMessageId":"ABC-123" 
      }, 
      "userId":"Guest", 
      "body":[ 
        { 
          "uiType":"InputText", 
          "group":"DefaultText", 
          "required":true, 
          "nluTextEnabled":false, 
          "label":"model input:", 
          "maskType":"NONE" 
        }
      ], 
      "score":"0.92" 
    }

    특정 큐의 라이브 에이전트로 대화 전송

    다음 예는 특정 큐의 Live Agent로 대화를 전송하는 방법을 보여줍니다. 먼저 특정 조건으로 큐를 설정해야 합니다. 그런 다음 요청 본문에서와 같이 contextVariables 해당 조건을 전달합니다. 이 예시에서는 AGENT 작업 매개변수를 사용합니다. 작업 항목 큐 생성에 대한 자세한 내용은 작업 항목 큐 생성을 참조하세요.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "34re-dasd-qwe23-dsds", // Unique value for a message (hash)
      "enterpriseId": "ServiceNow", // ServiceNow (Optional
      "nowBotId": "A85PWLERF", // In case of multiple ServiceNow secondary bots (one for HR, one for ITSM)
      "action":"AGENT", // Actions to close conversation. Other possible value is END_CONVERSATION
      "clientSessionId": "", // Client conversation id
      "nowSessionId": "", // ServiceNow conversation id
      "message":{
        "text": "How are you?", // User passed message
        "typed": true, // typed or clicked
        "clientMessageId": "ABC-123"
      },
      "userId": "abraham.lincoln", // User’s id in their system
      "emailId": "abraham.lincoln@example.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York",
      "contextVariables":{
        "b2b_category":"humanresource"
      } 
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId":"34re-dasd-qwe23-dsds",
      "clientSessionId":"",
      "nowSessionId":"",
      "message":{
        "text":"How are you?",
        "typed":true,
        "clientMessageId":"ABC-123"
       },
       "userId":"abraham.lincoln",
       "body":[
         {
           "uiType":"OutputText",
           "group":"DefaultText",
           "value":"I am sorry but I didn't understand your request.",
           "maskType":"NONE"
        },
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "value":"Please try giving me your request in a different way. I'm currently better at understanding short sentences.",
          "maskType":"NONE"
        },
        {
          "uiType":"TopicPickerControl",
          "group":"DefaultPicker",
          "nluTextEnabled":false,
          "promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type help any time when you need help.",
          "label":"Show me everything",
          "options":[
            {
              "label":"Live Agent Support.",
              "value":"ce2ee85053130010cf8cddeeff7b12bf",
              "enabled":true
            }
          ]
        }
      ],
      "score":0
    }

    공개 신청서/PDF 첨부 파일 전송

    이 예는 공개 신청서/PDF 첨부 파일을 전송하는 방법을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: BOT_Token" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "U94CSJLEN",
      "message": {
        "attachment": {
        "clientAttachmentId": "my-unique-identifier",
        "contentType": "application/pdf",
        "fileName": "MY PDF TEST",
        "url": "http://www.africau.edu/images/default/sample.pdf"
        }
      },
      "userId": "U94CSJLEN",
      "emailId": "admin@example.com"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId":"U94CSJLEN",
      "message":{
        "attachment":{
          "clientAttachmentId":"my-unique-identifier",
          "contentType":"application/pdf",
          "fileName":"MY PDF TEST",
          "url":"http://www.africau.edu/images/default/sample.pdf"}
        },
        "userId":"U94CSJLEN",
        "body":[
          {
            "uiType":"OutputText",
            "group":"DefaultText",
            "required":false,
            "nluTextEnabled":false,
            "label":"File got",
            "maskType":"NONE",
            "itemType":"outputtext"
          },
          {
            "uiType":"OutputText",
            "group":"DefaultText",
            "required":false,
            "nluTextEnabled":false,
            "label":"The conversation has ended. If you need help again, type hi.",
            "maskType":"NONE",
            "itemType":"outputtext"
           }
        ],
      "completed":true,
      "score":1
    }

    비디오/MPEG 첨부 파일 전송

    이 예는 비디오/mpeg 첨부 파일 업로드에 대한 요청/응답을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: BOT_TOKEN" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "U94CSJLEN",
      "message": {
        "attachment": {
        "clientAttachmentId": "my-unique-identifier10",
        "contentType": "video/mpeg",
        "fileName": "MY TEST10.mp4",
        "url": "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"
        }
      },
      "userId": "U94CSJLEN",
      "emailId": "admin@example.com"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId":"U94CSJLEN",
      "message":{
        "attachment":{
          "headers":{
            "Authorization":"Basic amFzbWluZS53YWRod2FuaWE6VGVzdGluZ0AxMjM="
          },
          "clientAttachmentId":"my-unique-identifier10",
          "contentType":"video/mpeg",
          "fileName":"MY TEST10.mp4",
          "url":"https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"
        }
      },
      "userId":"U94CSJLEN",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "required":false,
          "nluTextEnabled":false,
          "label":"File got",
          "maskType":"NONE",
          "itemType":"outputtext"
        },
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "required":false,
          "nluTextEnabled":false,
          "label":"The conversation has ended. If you need help again, type hi.",
          "maskType":"NONE","itemType":"outputtext"
        }
      ],
      "completed":true,
      "score":1
    }

    이미지/jpeg 첨부 파일 전송

    이 예는 이미지/jpeg 첨부 파일 업로드에 대한 요청/응답을 보여줍니다.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: BOT_TOKEN" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "U94CSJLEN",
      "message": {
        "attachment": {
          "clientAttachmentId": "my-unique-identifier10",
          "contentType": "image/jpeg",
          "fileName": "MY TEST10.jpg",
          "url": "https://image.imagestock.com/image-photo/pink-butterfly-isolated-on-white-260nw-1218104047.jpg"
        }
      },
      "userId": "U94CSJLEN",
      "emailId": "admin@example.com"
    }"
    --user "username":"password"
    

    다음은 VA에서 구성된 응답 엔드포인트로 전송된 응답 본문입니다.

    {
      "requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId":"U94CSJLEN",
      "message":{
        "attachment":{
          "headers":{
            "Authorization":"Basic amFzbWluZS53YWRod2FuaWE6VGVzdGluZ0AxMjM="
          },
          "clientAttachmentId":"my-unique-identifier10",
          "contentType":"image/jpeg",
          "fileName":"MY TEST10.jpg",
          "url":"https://image.imagestock.com/image-photo/pink-butterfly-isolated-on-white-260nw-1218104047.jpg"
        }
      },
      "userId":"U94CSJLEN",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "required":false,
          "nluTextEnabled":false,
          "label":"File got",
          "maskType":"NONE",
          "itemType":"outputtext"
        },
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "required":false,
          "nluTextEnabled":false,
          "label":"The conversation has ended. If you need help again, type hi.",
          "maskType":"NONE",
          "itemType":"outputtext"
        }
      ],
      "completed":true,
      "score":1
    }