CTI API
L’API CTI fournit des points de terminaison qui permettent aux fournisseurs de couplage téléphonie-informatique (CTI) d’interagir avec le cadre de travail du centre d’appel cloud.
- Appelez les opérations CTI à l’aide de gestionnaires d’opérations personnalisés dans le cadre de travail du centre d’appel cloud.
- Transmettez des événements d’un fournisseur CCP à une ServiceNow instance.
- Affichez les transcriptions et les enregistrements pour un appel d’agent spécifié.
Cette API s’exécute dans l’espace de sn_cti_core noms. Avant de pouvoir accéder à cette API, vous devez installer l’application Cloud Call Center Core (sn_cti_core). Pour en savoir plus sur cette installation, consultez Installer les applications Centre d’appel cloud.
Pour plus d’informations sur le Centre d’appel cloud, consultez Centre d’appel cloud.
CTI_API : GET /sn_cti_core/cti_api/call_analysis/{interaction_sys_id}
Affiche les transcriptions et les enregistrements pour un appel d’agent spécifié.
Les composants utilisent ce point de terminaison dans les espaces de travail Agent et Manager pour restituer les transcriptions et les enregistrements des appels d’agent associés. Pour accéder à ce point de terminaison, les informations d’identification de l’utilisateur que vous transmettez lors de l’appel doivent avoir le rôle workspace_user, interaction_agent ou administrateur.
Ce point de terminaison a un point d’extension correspondant, sn_cti_core. CTICallAnalysisExtractor, qui est responsable du rendu des données d’appel. Le système de base fournit une implémentation pour Amazon Connect. Si votre implémentation est différente, vous devez personnaliser ce point d’extension avant d’utiliser ce point de terminaison. De plus, les paramètres de réponse renvoyés par ce point de terminaison correspondent à l’implémentation de ce point d’extension. Pour plus d’informations sur l’implémentation de points d’extension, consultez Utilisation de points d’extension pour étendre les fonctionnalités d’application et les points d’extension dans le Centre d’appel cloud.
Format d'URL
URL par défaut : /api/sn_cti_core/cti_api/call_analysis/{interaction_sys_id}
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| interaction_sys_id | Sys_id de l’appel d’agent à rendre à la transcription et à l’enregistrement. Situé dans la table Interaction [interaction]. Type de données : chaîne |
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| Aucun |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml. Valeur par défaut : application/json |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| Divers | Cela dépend de l’implémentation dans le sn_cti_core. Point d’extension CTICallAnalysisExtractor. |
Paramètres du corps de réponse (JSON ou XML)
| Nom | Description |
|---|---|
| Cela dépend de l’implémentation dans le sn_cti_core. Point d’extension CTICallAnalysisExtractor. |
Demande cURL
L’exemple suivant demande le rendu d’un appel d’agent spécifique.
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'
Rendu des données d’appel en fonction du traitement spécifié dans le sn_cti_core. Point d’extension 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}
Invoque les opérations de couplage téléphonie-informatique (CTI) à l’aide d’un gestionnaire d’opération spécifié dans le cadre de travail du centre d’appel cloud.
Avant d’appeler ce point de terminaison, vous devez créer un enregistrement de configuration du fournisseur et les transformateurs de message associés. Cela se fait généralement lorsque le cadre de travail du centre d’appel cloud est initialement implémenté dans votre instance. Pour plus d’informations, consultez Configuration du fournisseur dans le centre d’appel cloud.
Un transformateur de message est responsable de l’analyse de la charge utile spécifiée dans le corps de la demande de ce point de terminaison et de la définition des données de charge utile sur un objet CTIOperationRequest associé. Un gestionnaire d’opération est ensuite responsable de l’obtention des informations à partir de l’objet CTIOperationRequest et de l’utilisation des données pour traiter l’opération demandée.
Une fois que le transformateur de message a terminé l’analyse de la charge utile transmise, le cadre de travail Centre d’appel cloud instancie le gestionnaire d’opérations spécifié. Le gestionnaire d’exploitation utilise les méthodes GET de l’API CTIOperationResponse CTIOperationResponse : champ d’application, global pour obtenir les informations dont il a besoin à partir de l’objet CTIOperationRequest associé pour traiter l’opération demandée.
Vous définissez le gestionnaire d’opération à appeler et ses paramètres associés dans le corps de la demande de cet appel de point de terminaison. Le gestionnaire d’opération spécifié doit être défini dans votre instance dans la table Gestionnaire d’opération [sn_cti_operation_handler]. Pour plus d’informations sur la création de gestionnaires d’opérations, voir Configurer un flux de contact pour une interaction d’appelant automatisée.
- Amazon Web Services (AWS) Proxy Lambda (appeler la fonction AWS Lambda)
- Bot Lex AWS (obtenir l’entrée du client)
En outre, les informations d’identification de l’utilisateur que vous transmettez lors de l’appel doivent avoir le rôle sn_cti_core.service ou administrateur pour accéder à ce point de terminaison.
Pour plus d’informations sur le Centre d’appel cloud, consultez Centre d’appel cloud.
Format d'URL
URL par défaut : /api/sn_cti_core/cti_api/providers/{provider}/components/{component}/versions/{version}
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| composant | Étiquette de votre composant fournisseur, telle que sn_aws_connect_lambda_proxy_component ou sn_aws_connect_lex_intent_processor_component. Situé dans le champ Composant de la table Composant du fournisseur [sn_cti_provider_component]. Type de données : chaîne |
| fournisseur | Sys_id de l’enregistrement de votre fournisseur CTI. Situé dans la table Composant du fournisseur [sn_cti_provider_component]. Type de données : chaîne |
| version | Version de l’enregistrement de fournisseur spécifié. Situé dans le champ Version de la table Composant du fournisseur [sn_cti_provider_component]. Type de données : chaîne |
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| Dépend du gestionnaire d’opération appelé et de son implémentation spécifique. |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml. Valeur par défaut : application/json |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
| Divers | Dépend de l’opération appelée et de son implémentation spécifique. |
Paramètres du corps de réponse (JSON ou XML)
| Nom | Description |
|---|---|
| Dépend de l’opération appelée et de son implémentation spécifique. |
Demande cURL
L’exemple suivant appelle le gestionnaire d’opération interactionEvent via le composant sn_aws_connect_lambda_proxy_component.
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"
}
}'
Exemple de réponse à l’appel du gestionnaire d’opération 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}
Transmet les événements d’un fournisseur du panneau de contrôle de contact (LAMB) à une ServiceNow instance.
En règle générale, vous appelez ce point de terminaison à partir de votre page d’interface utilisateur CCP pour effectuer diverses tâches (événements), telles que la modification de l’état de présence d’un agent ou la modification de l’état d’un enregistrement à la fin de l’appel. Pour accéder à ce point de terminaison, les informations d’identification de l’utilisateur que vous transmettez lors de l’appel doivent avoir le rôle sn_openframe_user ou administrateur.
Ce point de terminaison a un point d’extension correspondant, sn_cti_core. SoftPhoneEventSink, qui est responsable de la détermination de l’action réellement effectuée par cet appel de point de terminaison pour chaque événement. Le système de base fournit une implémentation pour les événements Amazon Connect. Si votre implémentation est différente, vous devez personnaliser ce point d’extension avant d’utiliser ce point de terminaison. Les formats de corps de demande et de réponse de ce point de terminaison correspondent à l’implémentation de ce point d’extension. Pour plus d’informations sur l’implémentation de points d’extension, consultez Utilisation de points d’extension pour étendre les fonctionnalités d’application et les points d’extension dans le Centre d’appel cloud.
Format d'URL
URL par défaut : /api/sn_cti_core/cti_api/softphone/sources/{source}/actor/{actor}/events/{event}
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| acteur | Émetteur de l’événement, tel qu’un agent ou un external_system. Les valeurs spécifiques sont déterminées par l’implémenteur. Type de données : chaîne |
| event | Nom de l’événement dans le système du fournisseur de Couplage téléphonie-informatique (CTI), par exemple Disponible ou Hors ligne. Les valeurs spécifiques sont déterminées par l’implémenteur, mais doivent être un seul mot/phrase sans espaces ni caractères spéciaux. Type de données : chaîne |
| sources | Identificateur de la page d’interface utilisateur Softphone du fournisseur, tel que aws_ccp. Type de données : chaîne |
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| Spécifique à l’implémentation. Déterminé par la mise en œuvre du sn_cti_core. Point d’extension SoftPhoneEventSink. |
En-têtes
Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir la liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.
| En-tête | Description |
|---|---|
| Accepter | Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml. Valeur par défaut : application/json |
| En-tête | Description |
|---|---|
| Aucun |
Codes d'état
Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir la liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été correctement traitée. |
Paramètres du corps de réponse (JSON ou XML)
| Nom | Description |
|---|---|
| Aucun |
Demande cURL
L’exemple suivant transmet les informations d’événement AgentStatusOne à l’instance ServiceNow . Les paramètres du corps de la demande sont déterminés par l’implémentation du sn_cti_core. Point d’extension 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"
}
}
}
}'
Aucun paramètre de réponse n’est renvoyé.
{
"result": {}
}