VoiceTranscriptObject - 범위 지정됨

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 22분
  • VoiceTranscriptObject 스크립트 가능한 API는 타사 음성 대화 녹취록 데이터를 인스턴스 내의 테이블에 저장하는 메서드를 ServiceNow 제공합니다.

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

    고객 세부 정보와 대화가 표시되는 에이전트 작업 공간 페이지입니다.

    가용성

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

    VoiceTranscriptObject - addVoiceInteractionMessage(String interactionId, String Json)

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

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

    표 1. 매개변수
    이름 유형 설명
    interactionId 문자열 지정된 메시지를 추가할 상호작용 기록의 Sys_id입니다. 이 값은 메서드에 VoiceTranscriptObject - startVoiceInteraction(문자열 Json) 의해 반환됩니다.

    테이블: 상호작용 [interaction]

    <json_string> 문자열(객체 배열)
    지정된 음성 상호작용에 첨부할 메시지 목록입니다.
    "<json_string>":[
      {
        "attributes": [Array],
        "beginOffsetMillis": Long,
        "content": "String"
        "endOffsetMillis": Long,
        "id": "String",
        "isEvent": Boolean,
        "isInternalMessage": Boolean,
        "loudnessScore": "Number",
        "participantId": "String",
        "sentiment": "String"
      }
    ]
    <json_string>.attributes 객체 배열
    음성 상호작용에 연결할 키-값 쌍입니다.

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

    기본값: 없음

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

    단위: 밀리초

    <json_string>.content 문자열 필수 음성 상호작용에 추가할 메시지의 텍스트입니다.
    <json_string>.endOffsetMillis 길게 필수 음성 상호작용 시작과 메시지 종료 사이의 시간 오프셋입니다. 예: "endOffsetMillis": 9380.

    단위: 밀리초

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

    기본값: 없음

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

    기본값: false

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

    기록은 일반적으로 내부 메시지로 간주되며 에이전트에게만 표시되고 호출자에게는 표시되지 않습니다. 또한 에이전트 귓속말은 침묵하는 외부 공급업체가 호출자 모르게 채팅 중이거나 전화 대화에 참여하여 에이전트에게 조언을 제공할 때 사용됩니다. 호출자는 이러한 메시지를 듣거나 못하지만 에이전트는 봅니다.

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

    기본값: false

    <json_string>.loudnessScore 번호
    통화 중에 고객이나 에이전트가 말하는 소리에 대한 측정입니다.

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

    기본값: null

    <json_string>.participantId 문자열
    필수 메시지와 연결된 참가자입니다.
    유효한 값은 다음과 같습니다.
    • 에이전트
    • 고객
    <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] 테이블에 저장됩니다.
    <json_string> 문자열 입력 매개변수의 JSON 문자열입니다.
    "<json_string>": {
      "agentId": "String",
      "callerPhoneNumber": "String",
      "clientSessionId": "String",
      "inboundId": "String",
      "userId": "String"
    
    <json_string>.agentId 문자열 음성 상호작용을 할당할 에이전트의 고유 식별자입니다.

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

    테이블: 사용자 [sys_user] 테이블의 사용자 ID 필드

    <json_string>.callerPhoneNumber 문자열 호출자의 콜백 전화 번호입니다. 이 번호는 콜이 끊어지는 경우 에이전트가 발신자에게 연락하는 데 사용하는 번호입니다.

    형식: E.164 표준 준수

    기본값: 없음

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

    기본값: 없음

    <json_string>.inboundId 문자열 음성 서비스에 대한 애플리케이션 제공자의 고유 식별자입니다.

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

    테이블: 제공자 채널 애플리케이션 [sys_cs_provider_application] 테이블의 인바운드 ID 필드.

    <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(String interactionId, String Json)

    지정된 음성 상호작용을 종료합니다. 일단 전화를 걸면 전화 통화를 위해 추가 음성 메시지가 번역되어 저장되지 않습니다.

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

    외부 공급업체 음성 대화 기록 데이터를 인스턴스 내의 ServiceNow 테이블에 저장한 다음 을 통해 고객 서비스 관리(CSM)액세스할 수 있습니다.

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

    표 7. 매개변수
    이름 유형 설명
    voiceConversationJson 문자열 저장할 음성 대화를 나타내는 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: <transcript_record_sys_id>
    • 음성 대화 녹취록을 저장할 수 없습니다. 상세 오류: <오류 상세 정보>
    • 오류: 요청에서 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. 매개변수
    이름 유형 설명
    <json_string> 문자열 입력 매개변수의 JSON 문자열입니다.
    "<json_string>": {
      "agentId": "String",
      "callerPhoneNumber": "String",
      "clientSessionId": "String",
      "inboundId": "String",
      "userId": "String"
    
    <json_string>.agentId 문자열 음성 상호작용을 할당할 에이전트의 고유 식별자입니다.

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

    테이블: 사용자 [sys_user] 테이블의 사용자 ID 필드

    <json_string>.callerPhoneNumber 문자열 호출자의 콜백 전화 번호입니다. 이 번호는 콜이 끊어지는 경우 에이전트가 발신자에게 연락하는 데 사용하는 번호입니다.

    형식: E.164 표준 준수

    기본값: 없음

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

    기본값: 없음

    <json_string>.inboundId 문자열 음성 서비스에 대한 애플리케이션 제공자의 고유 식별자입니다.

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

    테이블: 제공자 채널 애플리케이션 [sys_cs_provider_application] 테이블의 인바운드 ID 필드.

    <json_string>.userId 문자열 필수 음성 트랜잭션과 관련된 전화를 건 발신자의 전화 번호입니다.

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

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

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

    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"}