CTI API
CTI API는 CTI(컴퓨터 전화 통합 시스템) 제공자가 클라우드 콜 센터 프레임워크와 상호 작용할 수 있도록 하는 엔드포인트를 제공합니다.
- 클라우드 콜 센터 프레임워크 내에서 사용자 지정 작업 핸들러를 사용하여 CTI 작업을 호출합니다.
- CCP 제공자에서 인스턴스로 ServiceNow 이벤트를 전달합니다.
- 지정된 에이전트 호출에 대한 녹취록 및 녹음을 렌더링합니다.
이 API는 네임스페이스에서 sn_cti_core 실행됩니다. 이 API에 액세스하려면 먼저 클라우드 콜 센터 코어(sn_cti_core) 애플리케이션을 설치해야 합니다. 이 설치에 대한 자세한 내용은 클라우드 콜 센터 애플리케이션 설치를 참조하십시오.
클라우드 콜 센터에 대한 자세한 내용은 클라우드 콜 센터를 참조하십시오.
CTI_API - GET /sn_cti_core/cti_api/call_analysis/{interaction_sys_id}
지정된 에이전트 호출에 대한 녹취록 및 녹음을 렌더링합니다.
구성요소는 에이전트 및 관리자 작업 공간에서 이 엔드포인트를 사용하여 연결된 에이전트 통화 녹취록 및 기록을 렌더링합니다. 이 엔드포인트에 액세스하려면 호출에 전달하는 사용자 자격 증명에 workspace_user, interaction_agent 또는 관리자 역할이 있어야 합니다.
이 엔드포인트에는 해당 확장점 sn_cti_core가 있습니다. 호출 데이터 렌더링을 담당하는 CTICallAnalysisExtractor입니다. 기본 시스템은 Amazon Connect Connect에 대한 구현을 제공합니다. 구현이 다른 경우 이 엔드포인트를 사용하기 전에 이 확장점을 사용자 지정해야 합니다. 또한 이 엔드포인트에서 반환되는 응답 매개 변수는 이 확장점의 구현에 해당합니다. 확장점 구현에 대한 자세한 내용은 확장점을 사용하여 애플리케이션 기능 확장 및 클라우드 콜 센터의 확장점을 참조하십시오.
URL 형식
기본 URL: /api/sn_cti_core/cti_api/call_analysis/{interaction_sys_id}
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| interaction_sys_id | 기록 및 기록으로 렌더링할 에이전트 호출의 Sys_id입니다. 데이터 유형: 문자열 테이블: 상호작용 [interaction] |
| 이름 | 설명 |
|---|---|
| 없음 |
| 이름 | 설명 |
|---|---|
| 없음 |
헤더
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.
| 헤더 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다. 기본값: application/json |
| 헤더 | 설명 |
|---|---|
| 없음 |
상태 코드
다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 다양 | sn_cti_core의 구현에 따라 다릅니다. CTICallAnalysisExtractor 확장점입니다. |
응답 본문 매개변수(JSON 또는 XML)
| 이름 | 설명 |
|---|---|
| sn_cti_core의 구현에 따라 다릅니다. CTICallAnalysisExtractor 확장점입니다. |
cURL 요청
다음 예제에서는 특정 에이전트 호출의 렌더링을 요청합니다.
curl -X POST \
https://instance.servicenow.com/api/sn_cti_core/cti_api/call_analysis/88f2d9b7dbd7101058f05214dc96192a \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-u 'username':'password'
sn_cti_core 지정된 처리에 따라 렌더링된 콜 데이터입니다. CTICallAnalysisExtractor 확장점입니다.
{
"result":{
"status":"success",
"recordingData":{
"recordingUrls":[
"https://instance.awsapps.com/connect/get-recording?format=wav&callLegId=7626da7f-e083-4085-b77a-85bfea18fe24",
"https://s3.console.aws.amazon.com/s3/object/connect-60f8665899b6/connect/instance/CallRecordings/2020/09/23/7626da7f-e083-4085-b77a-85bfea18fe24_20200923T18%3A24_UTC.wav"
],
"status":"success"
},
"transcriptData":{
"transcript":[
{
"content":"Okay. Hello? Mhm. Okay, okay.",
"beginOffsetMillis":3940,
"participantId":"CUSTOMER",
"additionalInfo":[
{
"value":"Neutral",
"highlightColor":"info"
}
]
},
{
"content":"bye.",
"beginOffsetMillis":26040,
"participantId":"AGENT",
"additionalInfo":[
{
"value":"Neutral",
"highlightColor":"info"
}
]
}
],
"sentimentTrend":[
{
"x":0,
"y":0
},
{
"x":3939,
"y":0
},
{
"x":3940,
"y":0
},
{
"x":26450,
"y":0
}
],
"sentimentPercents":{
"positive":0,
"neutral":100,
"negative":0
},
"talkTimePercents":{
"agent_talk_time":2.515491747959998,
"customer_talk_time":28.82998956991226,
"non_talk_time":68.65451868212774
},
"metadata":{
"ctiVendor":"amazon_connect",
"customerId":"Alice Smith",
"agentId":"Piper Epps"
},
"status":"success"
},
"metadata":{
"callMonitorURL":"https://instance.awsapps.com/connect/real-time-metrics?tableType=user",
"recordingState":"success",
"transcriptState":"success",
"emptyStateImages":{
"in_progress":"call_in_progress.png",
"processing":"processing_post_call.png",
"unavailable":"transcript_failed.png"
}
}
}
}
CTI_API - POST /sn_cti_core/cti_api/providers/{provider}/components/{component}/versions/{version}
클라우드 콜 센터 프레임워크 내에서 지정된 작업 핸들러를 사용하여 CTI(컴퓨터 전화 통합 시스템) 작업을 호출합니다.
이 엔드포인트를 호출하기 전에 제공자 구성 레코드 및 관련 메시지 변환기를 만들어야 합니다. 이 작업은 일반적으로 클라우드 콜 센터 프레임워크가 인스턴스에서 처음 구현될 때 수행됩니다. 자세한 내용은 클라우드 콜 센터의 제공자 구성을 참조하세요.
메시지 변환기는 이 엔드포인트의 요청 본문에 지정된 페이로드를 구문 분석하고 연결된 CTIOperationRequest 개체에 페이로드 데이터를 설정하는 작업을 담당합니다. 그런 다음 작업 처리기는 CTIOperationRequest 개체에서 정보를 가져오고 데이터를 사용하여 요청된 작업을 처리합니다.
메시지 변환기가 전달된 페이로드의 구문 분석을 마치면 클라우드 콜 센터 프레임워크가 지정된 작업 핸들러를 인스턴스화합니다. 운영 처리기는 CTIOperationResponse CTIOperationResponse - 범위가 지정됨, 전역 API GET 메서드를 사용하여 요청된 작업을 처리하는 데 연결된 CTIOperationRequest 개체에서 필요한 정보를 가져옵니다.
호출할 작업 핸들러 및 관련 파라미터를 이 엔드포인트 호출의 요청 본문에서 정의합니다. 지정된 운영 핸들러는 운영 핸들러 [sn_cti_operation_handler] 테이블 내의 인스턴스에 정의되어 있어야 합니다. 작업 핸들러 생성에 대한 자세한 내용은 을 참조하십시오자동화된 호출자 상호작용을 위한 연락처 플로우 구성.
- Amazon Web Services(AWS) Lambda 프록시(AWS Lambda 함수 호출)
- AWS Lex 봇(고객 입력 가져오기)
또한 호출에 전달하는 사용자 자격 증명에는 이 엔드포인트에 액세스할 수 있는 sn_cti_core.service 또는 admin 역할이 있어야 합니다.
클라우드 콜 센터에 대한 자세한 내용은 클라우드 콜 센터를 참조하십시오.
URL 형식
기본 URL: /api/sn_cti_core/cti_api/providers/{provider}/components/{component}/versions/{version}
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| 구성요소 | 제공자 구성요소의 레이블입니다(예: sn_aws_connect_lambda_proxy_component 또는 sn_aws_connect_lex_intent_processor_component). 데이터 유형: 문자열 테이블: 제공자 구성요소의 구성요소 필드 [sn_cti_provider_component] |
| 제공자 | CTI 제공자 기록의 Sys_id입니다. 데이터 유형: 문자열 테이블: 제공자 구성요소 [sn_cti_provider_component] |
| 버전 | 지정된 제공자 기록의 버전입니다. 데이터 유형: 문자열 테이블: 제공자 구성요소 [sn_cti_provider_component] 테이블의 버전 필드 |
| 이름 | 설명 |
|---|---|
| 없음 |
| 이름 | 설명 |
|---|---|
| 호출되는 작업 처리기와 해당 특정 구현에 따라 달라집니다. |
헤더
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.
| 헤더 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다. 기본값: application/json |
| 헤더 | 설명 |
|---|---|
| 없음 |
상태 코드
다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 다양 | 호출되는 작업과 해당 작업의 구체적인 구현에 따라 달라집니다. |
응답 본문 매개변수(JSON 또는 XML)
| 이름 | 설명 |
|---|---|
| 호출되는 작업과 해당 작업의 구체적인 구현에 따라 달라집니다. |
cURL 요청
다음 예제에서는 sn_aws_connect_lambda_proxy_component 구성 요소를 통해 interactionEvent 작업 처리기를 호출합니다.
curl -X POST \
https://instance.servicenow.com/api/sn_cti_core/cti_api/providers/c4b12aa6e700001034b36584c2f6a9bc/components/sn_aws_connect_lambda_proxy_component/versions/v1.0 \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-u 'username':'password'
-d '{
"context": {
"callbackWaitsForEmptyEventLoop": true,
"functionVersion": "$LATEST",
"functionName": "snRALJNLambda",
"memoryLimitInMB": "128",
"logGroupName": "/aws/lambda/snRALJNLambda",
"logStreamName": "2020/09/24/[$LATEST]b604a9579ef548a1b3f6b6739d19e1d9",
"invokedFunctionArn": "arn:aws:lambda:us-west-2:028738656045:function:snRALJNLambda",
"awsRequestId": "b528a5a8-bb0b-4ec8-8e76-aa568f68fdc8"
},
"event": {
"Details": {
"ContactData": {
"Attributes": {
"$accepted_terms": "true"
},
"Channel": "VOICE",
"ContactId": "8fe7c107-78df-4eec-85b3-91c6dcb8e912",
"CustomerEndpoint": {
"Address": "+16693504374",
"Type": "TELEPHONE_NUMBER"
},
"Description": null,
"InitialContactId": "8fe7c107-78df-4eec-85b3-91c6dcb8e912",
"InitiationMethod": "INBOUND",
"InstanceARN": "arn:aws:connect:us-west-2:028738656045:instance/d276bd83-6305-4f63-abee-e66fd5bdf503",
"LanguageCode": "en-US",
"MediaStreams": {
"Customer": {
"Audio": null
}
},
"Name": null,
"PreviousContactId": "8fe7c107-78df-4eec-85b3-91c6dcb8e912",
"Queue": {
"ARN": "arn:aws:connect:us-west-2:028738656045:instance/d276bd83-6305-4f63-abee-e66fd5bdf503/queue/0f17b62d-d493-439a-88c6-42db0d0e652f",
"Name": "BasicQueue",
"OutboundCallerId": {
"Address": "+18335441399",
"Type": "TELEPHONE_NUMBER"
}
},
"References": {},
"SystemEndpoint": {
"Address": "+18335441399",
"Type": "TELEPHONE_NUMBER"
}
},
"Parameters": {
"sn_component": "sn_aws_connect_lambda_proxy_component",
"sn_operation": "interactionEvent"
}
},
"Name": "ContactFlowEvent"
}
}'
interactionEvent 작업 핸들러 호출에 대한 응답 예입니다.
{
"result": {
"snc_user_first_name": "Jane",
"snc_user_last_name": "Doe",
"snc_user_sys_id": "bbe591bfdb5710100231dbdb5e9619e3",
"snc_user_vip": "false",
"interactionTable": "interaction",
"interactionId": "973b07c8dbe710100231dbdb5e961908",
"statusCode": 200,
"message": "success"
}
}
CTI_API - POST /sn_cti_core/cti_api/softphone/sources/{source}/actor/{actor}/events/{event}
연락처 제어판(CCP) 제공자의 이벤트를 인스턴스로 ServiceNow 전달합니다.
일반적으로 CCP UI 페이지에서 이 엔드포인트를 호출하여 에이전트의 현재 상태 변경 또는 통화 완료 시 기록 상태 변경과 같은 다양한 작업(이벤트)을 수행합니다. 이 엔드포인트에 액세스하려면 호출에 전달하는 사용자 자격 증명에 sn_openframe_user 또는 관리자 역할이 있어야 합니다.
이 엔드포인트에는 해당 확장점 sn_cti_core가 있습니다. SoftPhoneEventSink - 각 이벤트에 대해 이 끝점 호출에 의해 실제로 수행되는 작업을 결정합니다. 기본 시스템은 Amazon Connect 이벤트에 대한 구현을 제공합니다. 구현이 다른 경우 이 엔드포인트를 사용하기 전에 이 확장점을 사용자 지정해야 합니다. 이 엔드포인트의 요청 본문 및 응답 형식은 이 확장점의 구현에 해당합니다. 확장점 구현에 대한 자세한 내용은 확장점을 사용하여 애플리케이션 기능 확장 및 클라우드 콜 센터의 확장점을 참조하십시오.
URL 형식
기본 URL: /api/sn_cti_core/cti_api/softphone/sources/{source}/actor/{actor}/events/{event}
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| 배우 | 에이전트 또는 external_system와 같은 이벤트의 송신기입니다. 구체적인 값은 구현자가 결정합니다. 데이터 유형: 문자열 |
| 이벤트 | 컴퓨터 전화 통합 시스템(CTI) 벤더 시스템의 이벤트 이름(예: 사용 가능 또는 오프라인)입니다. 구체적인 값은 구현자가 결정하지만 공백이나 특수 문자가 없는 한 단어/구여야 합니다. 데이터 유형: 문자열 |
| sources | 벤더의 소프트폰 UI 페이지 식별자입니다(예: aws_ccp). 데이터 유형: 문자열 |
| 이름 | 설명 |
|---|---|
| 없음 |
| 이름 | 설명 |
|---|---|
| 구현에 따라 다릅니다. sn_cti_core 구현에 따라 결정됩니다. SoftPhoneEventSink 확장점입니다. |
헤더
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.
| 헤더 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. 지원되는 유형은 application/json 또는 application/xml입니다. 기본값: application/json |
| 헤더 | 설명 |
|---|---|
| 없음 |
상태 코드
다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
응답 본문 매개변수(JSON 또는 XML)
| 이름 | 설명 |
|---|---|
| 없음 |
cURL 요청
다음 예에서는 AgentStatusOne 이벤트 정보를 ServiceNow 인스턴스에 전달합니다. 요청 본문 매개변수는 sn_cti_core 구현에 따라 결정됩니다. SoftPhoneEventSink 확장점입니다.
curl -X POST \
https://instance.servicenow.com/api/sn_cti_core/cti_api/softphone/sources/aws_ccp/actor/agent/events/AgentStatusOne \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-u 'username':'password'
-d '{
"agent":{
"sys_id":"doe.john@snc",
"status":{
"agentStateARN":null,
"type":"not_routable",
"name":"AgentStatusOne",
"startTimestamp":"2020-09-24T21:43:20.957Z"
}
},
"window":{
"location":{
"href":"https://instance.servicenow.com/sn_cti_amzn_cct_aws_ccp.do?id=44106eabdb5710100231dbdb5e96191d",
"search":"?id=44106eabdb5710100231dbdb5e96191d"
}
},
"aws":{
"connect":{
"config":{
"ccpHost":"instance.awsapps.com",
"ccpUrl":"https://instance.awsapps.com/connect/ccp-v2/",
"loginPopup":true,
"audioRecordingUrlPrefix":"https://instance.awsapps.com/connect/get-recording?format=wav&callLegId=",
"softphone":{
"allowFramedSoftphone":true
},
"region":"us-west-2"
}
}
}
}'
응답 매개변수가 반환되지 않습니다.
{
"result": {}
}