VoiceTranscriptObject - 범위 지정

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기22분
  • VoiceTranscriptObject 스크립트 가능 API는 타사 음성 대화 기록 데이터를 인스턴스 내의 ServiceNow 테이블에 저장하는 기능을 제공합니다.

    VoiceTranscriptObject 클래스를 호출할 때 sn_cs 네임스페이스 식별자를 사용합니다.

    가용성

    이 API는 기본 ServiceNow 시스템에서 사용할 수 있습니다. 상호작용 [interaction] 및 대화 [sys_cs_conversation] 테이블에 부과된 ACL에 의해 액세스가 제한됩니다.

    VoiceTranscriptObject - addVoiceInteractionMessage(interactionId 문자열, JSON 문자열)

    지정된 음성 트랜잭션 기록에 지정된 메시지를 추가합니다.

    통화를 실시간으로 기록하는 동안 이 엔드포인트를 여러 번 호출하거나 기록 목적으로 통화를 기록하는 경우 단일 호출로 모든 메시지를 전달할 수 있습니다. 실시간 대화를 처리하는 경우 메시지가 적시에 표시 에이전트 작업 공간 되도록 이 엔드포인트를 자주 호출해야 합니다. 메시지는 통화 시작과 관련하여 시작 및 종료 시간을 기준으로 정렬됩니다.

    표 1. 매개변수
    이름 유형 설명
    interactionId 문자열 지정된 메시지를 추가할 상호작용 기록의 Sys_id입니다. 이 값은 메서드에서 VoiceTranscriptObject - startVoiceInteraction(JSON 문자열) 반환되고 상호작용 [interaction] 테이블에 저장됩니다.
    <json_string> String(개체 배열)
    지정된 음성 상호작용에 연결할 메시지 목록입니다.
    "<json_string>":[
      {
        "attributes": [Array],
        "beginOffsetMillis": Long,
        "content": "String"
        "endOffsetMillis": Long,
        "id": "String",
        "isEvent": Boolean,
        "isInternalMessage": Boolean,
        "loudnessScore": "Number",
        "participantId": "String",
        "sentiment": "String"
      }
    ]
    &lt;json_string>.속성 개체 배열
    음성 상호작용에 연결할 키-값 쌍입니다.

    단순 개체에서 복잡한 복합 개체에 이르기까지 모든 유형의 데이터 개체가 될 수 있습니다. Amazon Web Services API를 호출할 때 고유 식별자로 사용됩니다.

    기본값: 없음

    &lt;json_string>.beginOffsetMillis 길게 필수 음성 상호작용의 시작과 연결된 메시지의 시작 사이의 시간 오프셋입니다. 예: &quot;beginOffsetMillis&quot;: 2650.

    단위: 밀리초

    &lt;json_string>.콘텐츠 문자열 필수 음성 상호작용에 추가할 메시지의 텍스트입니다.
    &lt;json_string>.endOffsetMillis 길게 필수 음성 상호작용 시작과 메시지 끝 사이의 시간 오프셋입니다. 예: &quot;endOffsetMillis&quot;: 9380.

    단위: 밀리초

    &lt;json_string>.id 문자열 AmazonConnect와 같은 이 음성 대화 소스의 메시지 UUID입니다. 소스 메시지 ID 열 값을 설정합니다.

    기본값: 없음

    &lt;json_string>.is이벤트 부울
    Amazon Connect 커넥트에 의해 설정되었지만 현재 메서드에서 사용되지 않습니다. 연결된 메시지가 이벤트인지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 메시지가 이벤트입니다.
    • false: 메시지가 이벤트가 아닙니다.

    기본값: false

    &lt;json_string>.isInternalMessage 부울
    내부 메시지인지 여부를 나타내며 호출자에게 표시해서는 안 되는 플래그입니다.

    트랜스크립션은 일반적으로 내부 메시지로 간주되며 에이전트에게만 나타나고 호출자에게는 나타나지 않습니다. 또한 에이전트 귓속말은 소리 없는 외부 공급업체가 발신자 모르게 채팅 중이거나 전화 대화에 참여하여 에이전트에게 조언을 제공할 때 사용됩니다. 발신자는 이러한 메시지를 듣거나 볼 수 없지만 에이전트는 듣습니다.

    유효한 값은 다음과 같습니다.
    • true: 내부 메시지로, 호출자에게 표시되지 않습니다.
    • false: 내부 메시지가 아니므로 호출자에게 표시됩니다.

    기본값: false

    &lt;json_string>.loudness점수 번호
    통화 중에 고객 또는 상담원이 말하는 소리의 크기를 측정한 값입니다.

    Contact Lens는 대화 분석을 표시하여 상대방이 큰 소리로 말하고 부정적인 감정을 가질 수 있는 부분을 보여줍니다.

    기본값: Null

    &lt;json_string>.participantId 문자열
    필수 메시지와 연결된 참가자입니다.
    유효한 값은 다음과 같습니다.
    • 고객
    • 에이전트
    &lt;json_string>.감정 문자열
    메시지의 감정입니다.

    이 값은 타사 제공자에 의해 생성됩니다. 인스턴스 구성 설정에 따라 ServiceNow 이 값은 양수, 음수 또는 중립으로 변환되고 대화 및 상호작용 기록에 저장됩니다.

    유효한 값은 다음과 같습니다.
    • 부정적인
    • 중립
    • 긍정적인

    기본값: Null

    표 2. 반환
    유형 설명
    문자열 호출 결과를 설명하는 메시지입니다.
    문자열 성공하면 생성된 음성 상호작용 메시지 기록의 sys_id입니다. 음성 대본 대화 메시지 [sys_cs_message_voice_transcript] 테이블에 있습니다.

    오류가 발생한 경우 실패 이유를 설명하는 오류 메시지입니다.

    다음 예제에서는 기존 음성 상호작용 기록에 메시지를 추가하는 방법을 보여줍니다.

    var request = [ 
      { 
        "isEvent":"False",
        "isInternalMessage":"False",
        "beginOffsetMillis":100000,
        "content":"This is John. How can I help you?",
        "endOffsetMillis":150000, 
        "id":"954c4edc-31a8-48b0-8f6e-7fa0c4ca00a8",
        "participantId":"AGENT",
        "sentiment":"NEUTRAL"
      }, 
      {
        "isEvent":"False",
        "isInternalMessage":"False",
        "beginOffsetMillis":200000,
        "content":"Uh, yes, John. Um, I'm a little very frustrated right now.",
        "endOffsetMillis":25000,
        "id":"18bcf19c-4a9b-4af1-9bd7-7bfb5ba53b9f",
        "participantId":"CUSTOMER",
        "sentiment":"NEGATIVE" 
      } 
    ]; 
    
    gs.log(sn_cs.VoiceTranscriptObject.addVoiceInteractionMessage("1f4ed6fdb7471110b6e8bc15ae11a971", JSON.stringify(request))); 

    출력:

    // Success
    Voice conversation transcript has been successfully saved. Conversation id: ea01113cb7f71110b6e8bc15ae11a94d
    
    // Error
    Exception occurred while adding the message: <error message>

    VoiceTranscriptObject - createConversation(interactionId 문자열, JSON 문자열)

    지정된 상호작용에 대한 대화 [sys_cs_conversation] 테이블 내에 대화 기록을 작성합니다.

    표 3. 매개변수
    이름 유형 설명
    interactionId 문자열 대화 기록을 생성할 상호작용 기록의 Sys_id입니다. 이 값은 메서드에서 VoiceTranscriptObject - startVoiceInteraction(JSON 문자열) 반환되고 상호작용 [interaction] 테이블에 저장됩니다.
    &lt;json_string> 문자열 입력 매개변수의 JSON 문자열입니다.
    "<json_string>": {
      "agentId": "String",
      "callerPhoneNumber": "String",
      "clientSessionId": "String",
      "inboundId": "String",
      "userId": "String"
    
    &lt;json_string>.agentId 문자열 음성 상호작용을 할당할 에이전트의 고유 식별자입니다. 사용자 [sys_user] 테이블의 사용자 ID 필드에 있습니다.

    기본값: 없음. 사용 가능한 다음 에이전트에 할당됩니다.

    &lt;json_string>.callerPhoneNumber 문자열 호출자의 콜백 전화 번호입니다. 통화가 끊길 경우 상담원이 발신자에게 연락하기 위해 사용하는 번호입니다.

    형식: E.164 표준 준수

    기본값: 없음

    &lt;json_string>.clientSessionId 문자열 이 전화 통화를 추적하는 데 사용되는 외부 시스템 기록의 고유 식별자입니다. 이 정보는 두 시스템 간의 기록을 연결합니다.

    기본값: 없음

    &lt;json_string>.inboundId 문자열 음성 서비스에 대한 애플리케이션 제공자의 고유 식별자입니다. 제공자 채널 애플리케이션 [sys_cs_provider_application] 테이블의 인바운드 ID 필드에 있습니다.

    기본값: 채팅에서 끌어오기

    &lt;json_string>.userId 문자열 필수 음성 트랜잭션과 연결된 전화를 건 발신자의 전화 번호입니다.

    형식: 음성 대화 스크립트를 만든 소프트웨어에 의해 정의됩니다. 일반적으로 E.164 표준을 준수합니다.

    표 4. 반환
    유형 설명
    문자열 성공하면 새로 만든 대화 기록의 sys_id 반환합니다. 대화 [sys_cs_conversation] 테이블에 있습니다. 오류가 발생하면 자세한 오류 메시지를 반환합니다.

    다음 코드 예제에서는 이 메서드를 사용하여 새 대화 레코드를 만드는 방법을 보여 줍니다.

    var request = { 
      "userId": "+14089178877"
    }; 
    
    var response = sn_cs.VoiceTranscriptObject.createConversation("e0fc03d7b7a21110b6e8bc15ae11a96c", JSON.stringify(request)); 
    gs.log("Conversation id: " + JSON.stringify(response)); 

    출력:

    // Success
    {"conversationId":"28435dbcb7f71110b6e8bc15ae11a972","status":"SUCCESS"}
    
    // Error
    {"error":"Exception occurred while creating a conversation: <error message>","status":"FAILED"}

    VoiceTranscriptObject - endVoiceInteraction(interactionId 문자열, JSON 문자열)

    지정된 음성 상호작용을 종료합니다. 일단 호출되면 전화 대화에 대한 추가 음성 메시지가 번역 및 저장되지 않습니다.

    표 5. 매개변수
    이름 유형 설명
    interactionId 문자열 음성 상호작용을 종료할 상호작용 기록의 Sys_id입니다. 상호작용 [interaction] 테이블에 있습니다.
    &lt;json_string> JSON 문자열 옵션입니다. 음성 상호작용에 대한 추가 정보를 포함하는 매개변수입니다.
    "<json_string>": {
      "recordingURL": "String"
    }
    &lt;json_string>.recordingURL 문자열 옵션입니다. 원본 음성 녹음이 있는 URL입니다.

    이렇게 구성된 경우 이 URL 에이전트 작업 공간은 .

    기본값: 없음

    표 6. 반환
    유형 설명
    문자열 성공하면 성공을 반환합니다. 오류가 발생하면 자세한 오류 메시지를 반환합니다.

    다음 코드 예제에서는 활성 음성 상호 작용을 종료하고 원래 음성 녹음 URL을 전달하는 방법을 보여 줍니다.

    var request = { 
      "recordingURL": "https://servicenow.zoom.us/rec/QbF7XmPFHPlX1LG" 
    }; 
    
    gs.log(sn_cs.VoiceTranscriptObject.endVoiceInteraction("1f4ed6fdb7471110b6e8bc15ae11a971", JSON.stringify(request))); 

    출력:

    // Success
    Success
    
    // Error
    Exception occurred while ending the interaction: <error message>

    VoiceTranscriptObject - saveVoiceConversationTranscript(String voiceConversationJson)

    타사 음성 대화 증명서 데이터를 를 통해 고객 서비스 관리(CSM)액세스할 수 있는 인스턴스 내 ServiceNow 테이블에 저장합니다.

    이러한 음성 대화는 일반적으로 타사 공급업체 소프트웨어를 사용하여 생성됩니다. 이 메서드는 전달된 JSON을 구문 분석하고 데이터를 인스턴스 내의 ServiceNow 대화 [sys_cs_conversation], 대화 메시지[sys_cs_message] 및 음성 증명서 대화 메시지[sys_cs_message_voice_transcript] 테이블에 저장합니다. CSM은 이러한 테이블의 정보에 액세스하여 음성 대화 기록을 표시합니다.

    표 7. 매개변수
    이름 유형 설명
    보이스컨버레이션Json 문자열 저장할 음성 대화를 나타내는 JSON입니다. 이 JSON은 OpenFrame과 같은 다른 ServiceNow 플러그인에서 전송됩니다. Amazon과 같은 타사 벤더는 JSON을 플러그인으로 보냅니다. 연결된 플러그인이 음성 대화를 구문 분석하고 필요한 형식의 가상 에이전트JSON을 .

    예를 들어, 다음은 Amazon Connect 대화의 예입니다.

    { 
      "interactionId":"bgr09b5a-7308-47b2-jy97-737de9f45d19", 
      "source":"AmazonConnect", 
      "conversationStarted":"2021-08-06 15:07:51", 
      "transcript":[ 
        { 
          "isEvent":"False", 
          "isInternalMessage":"False", 
          "beginOffsetMillis":2650, 
          "content":"This is John. How can I help you? Yeah,", 
          "endOffsetMillis":9380, 
          "id":"954c4edc-31a8-48b0-8f6e-7fa0c4ca00a8", 
          "participantId":"AGENT", 
          "Sentiment":"NEUTRAL", 
          "loudnessScore":"null,null", 
          "attributes": [{ 
            "key":"key1", 
            "value":"value1" 
          },{ 
            "key":"key2", 
            "value":"value2" 
          }] 
        }, 
        { 
          "isEvent":"False", 
          "isInternalMessage":"False", 
          "beginOffsetMillis":9120, 
          "content":"Uh, yes, John. I'm a little very frustrated right now.", 
          "endOffsetMillis":22900, 
          "id":"18bcf19c-4a9b-4af1-9bd7-7bfb5ba53b9f", 
          "participantId":"CUSTOMER", 
          "sentiment":"NEGATIVE", 
          "loudnessScore":"null,null", 
          "attributes": [{ 
            "key":"key1", 
            "value":"value1" 
          },{ 
            "key":"key2", 
            "value":"value2" 
          } ] 
        }, 
        { 
          "isEvent":"True", 
          "isInternalMessage":"True", 
          "beginOffsetMillis":23590, 
          "content":"Agent asked for help in chat", 
          "endOffsetMillis":30610, 
          "id":"ab09b3b6-23fd-4e41-be05-6b2b53c19059", 
          "participantId":"CUSTOMER", 
          "sentiment":"NEUTRAL", 
          "loudnessScore":"null,null,null,null", 
          "attributes": [] 
        } 
      ] 
    }
    표 8. 반환
    유형 설명
    문자열 메서드 호출의 결과입니다.
    가능한 반환 결과:
    • 음성 대화 대본이 성공적으로 저장되었습니다. 대화 ID: &lt;transcript_record_sys_id>
    • 음성 대화 기록을 저장할 수 없습니다. 상세 오류: &lt;오류 상세 정보>
    • 오류: 요청에 InteractionId가 없습니다.
    • 오류: 요청에 지정된 상호작용이 이미 처리되었습니다.

    이 예제에서는 saveVoiceConversationTranscript() 메서드를 호출하여 Amazon Connect 트랜스크립트를 저장하는 방법을 보여줍니다.

    var voiceConversationJson = "{\n" +
      "   \"interactionId\":\"e67a6c30c7233010967a34c91dc26068\",\n" +
      "   \"source\":\"AmazonConnect\",\n" +
      "   \"conversationStarted\":\"2021-08-06 15:07:51\",\n" +
      "   \"transcript\":[\n" +
      "      {\n" +
      "         \"isEvent\":\"False\",\n" +
      "         \"isInternalMessage\":\"False\",\n" +
      "         \"beginOffsetMillis\":2650,\n" +
      "         \"content\":\"This is John. How can I help you? Yeah,\",\n" +
      "         \"endOffsetMillis\":9380,\n" +
      "         \"id\":\"954c4edc-31a8-48b0-8f6e-7fa0c4ca00a8\",\n" +
      "         \"participantId\":\"AGENT\",\n" +
      "         \"sentiment\":\"NEUTRAL\",\n" +
      "         \"loudnessScore\":\"null,null\",\n" +
      "         \"attributes\": [{\n" +
      "           \"key\":\"key1\",\n" +
      "           \"value\":\"value1\"\n" +
      "         },{\n" +
      "           \"key\":\"key2\",\n" +
      "           \"value\":\"value2\"\n" +
      "         }\n" +
      " ]\n" +
      "      },\n" +
      "      {\n" +
      "         \"isEvent\":\"False\",\n" +
      "         \"isInternalMessage\":\"False\",\n" +
      "         \"beginOffsetMillis\":9120,\n" +
      "         \"content\":\"Uh, yes, John. I'm a little frustrated right now.\",\n" +
      "         \"endOffsetMillis\":22900,\n" +
      "         \"id\":\"18bcf19c-4a9b-4af1-9bd7-7bfb5ba53b9f\",\n" +
      "         \"participantId\":\"CUSTOMER\",\n" +
      "         \"sentiment\":\"NEGATIVE\",\n" +
      "         \"loudnessScore\":\"null,null\",\n" +
      "         \"attributes\": [{\n" +
      "           \"key\":\"key1\",\n" +
      "           \"value\":\"value1\"\n" +
      "         },{\n" +
      "           \"key\":\"key2\",\n" +
      "           \"value\":\"value2\"\n" +
      "         }\n" +
      " ]\n" +
      "      },\n" +
      "      {\n" +
      "         \"isEvent\":\"False\",\n" +
      "         \"isInternalMessage\":\"False\",\n" +
      "         \"beginOffsetMillis\":9120,\n" +
      "         \"content\":\"I am sorry to hear that\",\n" +
      "         \"endOffsetMillis\":22900,\n" +
      "         \"id\":\"18bcf19c-4a9b-4af1-9bd7-7bfb5ba53b9f\",\n" +
      "         \"participantId\":\"AGENT\",\n" +
      "         \"sentiment\":\"NEGATIVE\",\n" +
      "         \"loudnessScore\":\"null,null\",\n" +
      "         \"attributes\": [{\n" +
      "           \"key\":\"key1\",\n" +
      "           \"value\":\"value1\"\n" +
      "         },{\n" +
      "           \"key\":\"key2\",\n" +
      "           \"value\":\"value2\"\n" +
      "         }\n" +
      " ]\n" +
      "      },\n" +
      "      {\n" +
      "         \"isEvent\":\"false\",\n" +
      "         \"isInternalMessage\":\"false\",\n" +
      "         \"beginOffsetMillis\":23590,\n" +
      "         \"content\":\"I am having problems with my computer\",\n" +
      "         \"endOffsetMillis\":30610,\n" +
      "         \"id\":\"ab09b3b6-23fd-4e41-be05-6b2b53c19059\",\n" +
      "         \"participantId\":\"CUSTOMER\",\n" +
      "         \"sentiment\":\"NEUTRAL\",\n" +
      "  \"loudnessScore\":\"null,null,null,null\",\n" +
      "         \"attributes\": [\n" +
      "  ]\n" +
      "      },\n" +
      "      {\n" +
      "         \"isEvent\":\"True\",\n" +
      "         \"isInternalMessage\":\"True\",\n" +
      "         \"beginOffsetMillis\":23590,\n" +
      "         \"content\":\"Agent asked for help in chat\",\n" +
      "         \"endOffsetMillis\":30610,\n" +
      "         \"id\":\"ab09b3b6-23fd-4e41-be05-6b2b53c19059\",\n" +
      "         \"participantId\":\"CUSTOMER\",\n" +
      "         \"sentiment\":\"NEUTRAL\",\n" +
      "  \"loudnessScore\":\"null,null,null,null\",\n" +
      "         \"attributes\": [\n" +
      "  ]\n" +
      "      }\n" +
      "   ]\n" +
      "}\n";
    var result = sn_cs.VoiceTranscriptObject.saveVoiceConversationTranscript(voiceConversationJson);
    gs.log(result);

    출력:

    Voice conversation transcript has been successfully saved. Conversation id: 9c573169c611228700193229fff72400

    VoiceTranscriptObject - startVoiceInteraction(JSON 문자열)

    상호작용 [interaction] 테이블 내에 음성 상호작용 기록을 생성합니다.

    기록된 음성 메시지를 저장하기 전에 이 기록을 생성해야 합니다. 또한 이 메서드를 사용하여 ir 특정 사용자 ID를 전달하여 특정 에이전트에 호출을 할당할 수 있습니다.

    표 9. 매개변수
    이름 유형 설명
    &lt;json_string> 문자열 입력 매개변수의 JSON 문자열입니다.
    "<json_string>": {
      "agentId": "String",
      "callerPhoneNumber": "String",
      "clientSessionId": "String",
      "inboundId": "String",
      "userId": "String"
    
    &lt;json_string>.agentId 문자열 음성 상호작용을 할당할 에이전트의 고유 식별자입니다. 사용자 [sys_user] 테이블의 사용자 ID 필드에 있습니다.

    기본값: 없음. 사용 가능한 다음 에이전트에 할당됩니다.

    &lt;json_string>.callerPhoneNumber 문자열 호출자의 콜백 전화 번호입니다. 통화가 끊길 경우 상담원이 발신자에게 연락하기 위해 사용하는 번호입니다.

    형식: E.164 표준 준수

    기본값: 없음

    &lt;json_string>.clientSessionId 문자열 이 전화 통화를 추적하는 데 사용되는 외부 시스템 기록의 고유 식별자입니다. 이 정보는 두 시스템 간의 기록을 연결합니다.

    기본값: 없음

    &lt;json_string>.inboundId 문자열 음성 서비스에 대한 애플리케이션 제공자의 고유 식별자입니다. 제공자 채널 애플리케이션 [sys_cs_provider_application] 테이블의 인바운드 ID 필드에 있습니다.

    기본값: 채팅에서 끌어오기

    &lt;json_string>.userId 문자열 필수 음성 트랜잭션과 연결된 전화를 건 발신자의 전화 번호입니다.

    형식: 음성 대화 스크립트를 만든 소프트웨어에 의해 정의됩니다. 일반적으로 E.164 표준을 준수합니다.

    표 10. 반환
    유형 설명
    문자열 메서드 호출의 결과입니다.
    가능한 반환 결과:
    • 성공: {&quot;interactionId&quot;:&quot;&lt;interaction_sys_id>&quot;,&quot;status&quot;:&quot;SUCCESS&quot;}
    • 오류: {&quot;error&quot;:&quot;&lt;오류 메시지>&quot;,&quot;status&quot;:&quot;FAILED&quot;}

    다음 코드 예제에서는 음성 상호 작용 레코드를 만드는 방법을 보여 줍니다.

    var request = { 
      "userId": "+14089178877", 
      "callerPhoneNumber": "+14089178878", 
      "clientSessionId": "f8453abb-a33d-45b7-bf01-52b7a821e99z" 
    }; 
    var response = sn_cs.VoiceTranscriptObject.startVoiceInteraction(JSON.stringify(request)); 
    gs.log(JSON.stringify(response)); 

    출력:

    // Success 
    {"interactionId":"ea01113cb7f71110b6e8bc15ae11a950","status":"SUCCESS"}
    
    // Error
    {"error":"Exception occurred while starting the interaction: <error message>","status":"FAILED"}