VoiceTranscriptObject - 범위 지정됨
VoiceTranscriptObject 스크립팅 가능한 API는 타사 음성 대화 기록 데이터를 인스턴스 내의 ServiceNow 테이블에 저장하는 메서드를 제공합니다.
VoiceTranscriptObject 클래스를 호출할 때 sn_cs 네임스페이스 식별자를 사용합니다.
가용성
이 API는 기본 ServiceNow 시스템에서 사용할 수 있습니다. 상호작용 [interaction] 및 대화 [sys_cs_conversation] 테이블에 적용되는 ACL에 의해 액세스가 제한됩니다.
VoiceTranscriptObject - addVoiceInteractionMessage(String interactionId, String Json)
지정된 음성 트랜잭션 기록에 지정된 메시지를 추가합니다.
호출을 실시간으로 기록하는 동안 이 엔드포인트를 여러 번 호출하거나 기록 목적으로 호출을 기록하는 경우 단일 호출에서 모든 메시지를 전달할 수 있습니다. 실시간 대화를 처리하는 경우 메시지가 적시에 표시 에이전트 작업 공간 되도록 이 끝점을 자주 호출해야 합니다. 메시지는 호출 시작과 관련된 시작 및 종료 시간을 기준으로 정렬됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| interactionId | 문자열 | 지정된 메시지를 추가할 상호작용 기록의 Sys_id입니다. 이 값은 메서드에서 VoiceTranscriptObject - startVoiceInteraction(String Json) 반환됩니다. 테이블: 상호작용 [interaction] |
| <json_string> | 문자열(객체 배열) | 지정된 음성 상호작용에 첨부할 메시지 목록입니다.
|
| <json_string>.속성 | 객체 배열 | 음성 상호작용에 연결할 키-값 쌍입니다.
단순한 개체에서 복잡한 복합 개체에 이르기까지 모든 유형의 데이터 개체가 될 수 있습니다. Amazon Web Services API를 호출할 때 고유 식별자로 사용됩니다. 기본값: 없음 |
| <json_string>.beginOffsetMillis | 길게 | 필수. 음성 상호작용의 시작과 연결된 메시지의 시작 사이의 시간 오프셋입니다. 예: "beginOffsetMillis": 2650. 단위: 밀리초 |
| <json_string>.content | 문자열 | 필수. 음성 상호작용에 추가할 메시지의 텍스트입니다. |
| <json_string>.endOffsetMillis | 길게 | 필수. 음성 상호 작용의 시작과 메시지 종료 사이의 시간 오프셋입니다. 예: "endOffsetMillis": 9380. 단위: 밀리초 |
| <json_string>.id | 문자열 | 이 음성 대화 소스의 메시지 UUID입니다(예: AmazonConnect). 원본 메시지 ID 열 값을 설정합니다. 기본값: 없음 |
| <json_string>.is이벤트 | 부울 | Amazon Connect에서 설정했지만 현재 메서드에서 사용되지 않습니다. 연결된 메시지가 이벤트인지 여부를 나타내는 플래그입니다.
유효한 값은 다음과 같습니다.
기본값: false |
| <json_string>.isInternalMessage | 부울 | 내부 메시지인지 여부를 나타내며 호출자에게 표시해서는 안 되는 플래그입니다.
트랜스크립션은 일반적으로 내부 메시지로 간주되며 호출자가 아닌 에이전트에 대해서만 나타납니다. 또한 에이전트 귓속말은 침묵하는 제3자가 채팅 중이거나 발신자 모르게 전화 대화에 참여하여 에이전트에게 조언을 제공할 때 사용됩니다. 호출자는 이러한 메시지를 듣거나 볼 수 없지만 에이전트는 듣거나 볼 수 있습니다. 유효한 값은 다음과 같습니다.
기본값: false |
| <json_string>.loudnessScore | 번호 | 통화 중 고객 또는 상담원의 목소리 큰 소리로 말하는 정도를 측정합니다.
Contact Lens는 대화 분석을 표시하여 큰 소리로 말하고 부정적인 감정을 가질 수 있는 위치를 보여줍니다. 기본값: null |
| <json_string>.참가자 ID | 문자열 | 필수 메시지와 관련된 참가자입니다. 유효한 값은 다음과 같습니다.
|
| <json_string>.감정 | 문자열 | 메시지의 감정입니다.
이 값은 외부 공급업체 제공자가 생성합니다. 인스턴스 구성 설정에 따라 ServiceNow 이 값은 긍정적, 부정적 또는 중간으로 변환되고 대화 및 상호작용 기록에 저장됩니다. 유효한 값은 다음과 같습니다.
기본값: null |
| 유형 | 설명 |
|---|---|
| 문자열 | 호출의 결과를 설명하는 메시지입니다. |
| 문자열 | 성공하면 생성된 음성 상호작용 메시지 기록을 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(String interactionId, String Json)
대화 [sys_cs_conversation] 테이블 내에 지정된 상호작용에 대한 대화 기록을 작성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| interactionId | 문자열 | 대화 기록을 생성할 상호작용 기록의 Sys_id입니다. 이 값은 메서드에서 VoiceTranscriptObject - startVoiceInteraction(String Json) 반환되고 상호작용 [interaction] 테이블에 저장됩니다. |
| <json_string> | 문자열 | 입력 매개변수의 JSON 문자열입니다. |
| <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 표준을 준수합니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 성공하면 새로 만든 대화 기록의 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)
지정된 음성 상호작용을 종료합니다. 일단 전화를 걸면 전화 통화를 위해 추가 음성 메시지가 번역되거나 저장되지 않습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| interactionId | 문자열 | 음성 상호작용이 종료될 상호작용 기록의 Sys_id. 상호작용 [interaction] 테이블에 있습니다. |
| <json_string> | JSON 문자열 | 옵션입니다. 음성 상호 작용에 대한 추가 정보를 포함하는 매개 변수입니다. |
| <json_string>.recordingURL | 문자열 | 옵션입니다. 원본 음성 녹음이 있는 URL입니다. 이렇게 구성된 경우 이 URL은 에이전트 작업 공간다음에 표시됩니다. 기본값: 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 | 성공하면 성공을 반환합니다. 오류가 발생하면 자세한 오류 메시지를 반환합니다. |
다음 코드 예제에서는 활성 음성 상호 작용을 종료하고 원래 음성 녹음 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)
외부 공급업체 음성 대화 기록 데이터를 인스턴스 내의 ServiceNow 테이블에 저장한 다음 고객 서비스 관리(CSM).
이러한 음성 대화는 일반적으로 타사 벤더 소프트웨어를 사용하여 생성됩니다. 이 메서드는 전달된 JSON을 구문 분석하고 인스턴스 내의 ServiceNow 대화 [sys_cs_conversation], 대화 메시지 [sys_cs_message] 및 음성 증명서 대화 메시지 [sys_cs_message_voice_transcript] 테이블에 데이터를 저장합니다. CSM은 이러한 테이블의 정보에 액세스하여 음성 대화 기록을 표시합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| voiceConversationJson | 문자열 | 저장할 음성 대화를 나타내는 JSON입니다. 이 JSON은 OpenFrame과 같은 다른 ServiceNow 플러그인에서 전송됩니다. Amazon과 같은 외부 공급업체 벤더는 플러그인에 JSON을 보냅니다. 연결된 플러그인은 음성 대화를 구문 분석하고 필요한 형식의 JSON을 가상 에이전트. 예를 들어 다음은 Amazon Connect 대화의 예입니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 메서드 호출의 결과입니다. 가능한 반환 결과:
|
이 예제에서는 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(String Json)
상호작용 [interaction] 테이블 내에 음성 상호작용 기록을 만듭니다.
전사된 음성 메시지를 저장하기 전에 이 기록을 생성해야 합니다. 이 메서드를 사용하여 ir 특정 사용자 ID를전달하여 특정 에이전트에 호출을 할당할 수도 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| <json_string> | 문자열 | 입력 매개변수의 JSON 문자열입니다. |
| <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 표준을 준수합니다. |
| 유형 | 설명 |
|---|---|
| 문자열 | 메서드 호출의 결과입니다. 가능한 반환 결과:
|
다음 코드 예제에서는 음성 상호 작용 레코드를 만드는 방법을 보여 줍니다.
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"}