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 Centre d’appel cloud.
- Appelez les opérations CTI à l’aide de gestionnaires d’opérations personnalisés dans le cadre de travail Centre d’appel cloud.
- Transmettez des événements d’un fournisseur CCP à une ServiceNow instance.
- Effectuez le rendu des transcriptions et des 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 plus d’informations 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 afficher 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 dans 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 de l’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 retournés par ce point de terminaison correspondent à l’implémentation de ce point d’extension. Pour plus d’informations sur l’implémentation des points d’extension, consultez Utilisation de points d’extension pour étendre les fonctionnalités de l’application et Points d’extension dans 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 de l’agent à rendre à la transcription et à l’enregistrement. Type de données : chaîne Table : Interaction [interaction] |
| Nom | Description |
|---|---|
| Néant |
| Nom | Description |
|---|---|
| Néant |
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’implémentation dans le sn_cti_core. Point d’extension CTICallAnalysisExtractor. |
Paramètres du corps de la réponse (JSON ou XML)
| Nom | Description |
|---|---|
| Dépend de l’implémentation dans le sn_cti_core. Point d’extension CTICallAnalysisExtractor. |
Demande cURL
L’exemple suivant demande l’exécution 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'
Données d’appel rendues 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 CTI (Computer Telephonie Integration) à 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 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 chargé d’analyser la charge utile spécifiée dans le corps de la demande de ce point de terminaison et de définir les données de la charge utile sur un objet CTIOperationRequest associé. Un gestionnaire d’opération est ensuite chargé d’obtenir les informations de l’objet CTIOperationRequest et d’utiliser les 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ération spécifié. Le gestionnaire d’opération 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 à invoquer 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, consultez Configurer un flux de contact pour une interaction automatisée de l’appelant.
- Proxy Lambda Amazon Web Services (AWS) (invoquer la fonction AWS Lambda)
- Bot AWS Lex (obtenir l’entrée du client)
En outre, les informations d’identification de l’utilisateur que vous transmettez dans l’appel doivent avoir le rôle sn_cti_core.service ou admin 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 du composant de votre fournisseur, tel que sn_aws_connect_lambda_proxy_component ou sn_aws_connect_lex_intent_processor_component. Type de données : chaîne Table : champ Composant du composant fournisseur [sn_cti_provider_component] |
| fournisseur | Sys_id de votre enregistrement de fournisseur CTI. Type de données : chaîne Table : Composant du fournisseur [sn_cti_provider_component] |
| version | Version de l’enregistrement de fournisseur spécifié. Type de données : chaîne Table : dans le champ Version de la table Composant du fournisseur [sn_cti_provider_component]. |
| Nom | Description |
|---|---|
| Néant |
| Nom | Description |
|---|---|
| Cela 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 la 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 invoque 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 de l’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 de panneau de contrôle de contact (CCP) à 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 dans 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 déterminer 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. Le corps de la demande et les formats 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 des points d’extension, consultez Utilisation de points d’extension pour étendre les fonctionnalités de l’application et Points d’extension dans 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 l’intégration 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, par exemple aws_ccp. Type de données : chaîne |
| Nom | Description |
|---|---|
| Néant |
| Nom | Description |
|---|---|
| Spécifique à l’implémentation. Déterminé par l’implémentation 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 la réponse (JSON ou XML)
| Nom | Description |
|---|---|
| Néant |
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": {}
}