CTI-API

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 7 Minuten Lesedauer
  • Die CTI- API stellt Endpunkte bereit, die CTI-Anbietern (Computer-Telefonie-Integration) die Interaktion mit dem Cloud-Callcenter-Framework ermöglichen.

    Mit dieser API können Integratoren:
    • Rufen Sie CTI-Vorgänge mithilfe von anwenderdefinierten Vorgangshandlern im Cloud Call Center-Framework auf.
    • Übergeben Sie Ereignisse von einem CCP-Anbieter an eine ServiceNow -Instanz.
    • Rendern Sie Transkripte und Aufzeichnungen für einen angegebenen Mitarbeiteranruf.

    Diese API wird im Namespace sn_cti_core ausgeführt. Bevor Sie auf diese API zugreifen können, müssen Sie die Anwendung Cloud Call Center Core (sn_cti_core) installieren. Informationen zu dieser Installation finden Sie unter Cloud-Callcenter-Anwendungen installieren.

    Weitere Informationen zum Cloud-Callcenter finden Sie unter Cloud-Callcenter.

    CTI_API – GET /sn_cti_core/cti_api/call_anasys/{interaction_sys_id}

    Rendert Transkripte und Aufzeichnungen für einen angegebenen Mitarbeiteranruf.

    Komponenten verwenden diesen Endpunkt in Mitarbeiter- und Manager-Arbeitsbereichen, um zugehörige Anruftranskripte und Aufzeichnungen von Service Desk-Mitarbeitern zu rendern. Um auf diesen Endpunkt zuzugreifen, müssen die im Aufruf übergebenen Anmeldeinformationen die Rolle workspace_user, interaction_agent oder admin aufweisen.

    Dieser Endpunkt verfügt über den entsprechenden Erweiterungspunkt „sn_cti_core.CTICallAnasysExtractor“, der für das Rendern der Anrufdaten verantwortlich ist. Das Basissystem stellt eine Implementierung für Amazon Connect bereit. Wenn Ihre Implementierung davon abweicht, sollten Sie diesen Erweiterungspunkt anpassen, bevor Sie diesen Endpunkt verwenden. Außerdem entsprechen die von diesem Endpunkt zurückgegebenen Antwortparameter der Implementierung dieses Erweiterungspunkts. Weitere Informationen zum Implementieren von Erweiterungspunkten finden Sie unter Erweiterungspunkte zum Erweitern der Anwendungsfunktionalität verwenden und Erweiterungspunkte in Cloud-Callcenter.

    URL-Format

    Standard-URL: /api/sn_cti_core/cti_api/call_anasys/{interaction_sys_id}

    Unterstützte Anforderungsparameter

    Tabelle : 1. Pfadparameter
    Name Beschreibung
    interaction_sys_id Sys_id des Mitarbeiteraufrufs, der im Transkript und in der Aufzeichnung gerendert werden soll. Befindet sich in der Interaktionstabelle [interaction].

    Datentyp: Zeichenfolge

    Tabelle : 2. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 3. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    Keine

    Kopfzeilen

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST API verwendet werden, finden Sie unter Unterstützte REST API-Header.

    Tabelle : 4. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützte Typen: application/json oder application/xml.

    Standard: application/json

    Tabelle : 5. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 6. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    Verschiedene Hängt von der Implementierung im Erweiterungspunkt sn_cti_core.CTICallAnasysExtractor ab.

    Parameter des Antworttexts (JSON oder XML)

    Name Beschreibung
    Hängt von der Implementierung im Erweiterungspunkt sn_cti_core.CTICallAnasysExtractor ab.

    cURL-Anforderung

    Im folgenden Beispiel wird das Rendern eines bestimmten Mitarbeiteranrufs angefordert.

    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'

    Gerenderte Anrufdaten basierend auf der im Erweiterungspunkt „sn_cti_core.CTICallAnasysExtractor“ angegebenen Verarbeitung.

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

    Ruft CTI-Vorgänge (Computer-Telefonie-Integration) mithilfe eines angegebenen Vorgangshandlers im Cloud-Callcenter-Framework auf.

    Bevor Sie diesen Endpunkt aufrufen, müssen Sie einen Anbieterkonfigurationsdatensatz und zugehörige Nachrichtenumwandler erstellen. Dies geschieht normalerweise, wenn das Cloud Call Center-Framework zum ersten Mal in Ihrer -Instanz implementiert wird. Weitere Informationen finden Sie unter Anbieterkonfiguration im Cloud-Callcenter.

    Ein Nachrichtenumwandler ist für die Analyse der im Anforderungstext dieses Endpunkts angegebenen Nutzlast und das Festlegen der Nutzlastdaten für ein zugeordnetes CTIOperationRequest- Objekt verantwortlich. Ein Vorgangs-Handler ist dann dafür verantwortlich, die Informationen aus dem CTIOperationRequest-Objekt abzurufen und die Daten zur Verarbeitung des angeforderten Vorgangs zu verwenden.

    Nachdem der Nachrichtenumwandler die Analyse der übergebenen Nutzlast abgeschlossen hat, instanziiert das Cloud-Callcenter-Framework den angegebenen Vorgangs-Handler. Der -Handler für die Ausführungsvorgänge verwendet die GET-Methoden der CTIOperationResponse- CTIOperationResponse: Bereichsbezogen, global API, um die Informationen abzurufen, die er vom zugehörigen CTIOperationRequest-Objekt zur Verarbeitung des angeforderten Vorgangs benötigt.

    Sie definieren den aufzurufenden Vorgangs-Handler und die zugehörigen Parameter im Anforderungstext dieses Endpunktaufrufs. Der angegebene Vorgangs-Handler muss in Ihrer Instanz in der Tabelle „Vorgangs-Handler“ [sn_cti_operation_handler] definiert sein. Weitere Informationen zum Erstellen von Vorgangshandlern finden Sie unter Kontakt-Flow für automatisierte Anruferinteraktion konfigurieren.

    Das ServiceNow Basissystem stellt Arbeitsvorgangs-Handler und Nachrichtenumwandler bereit, die die Verbindung mit Amazon Connect ermöglichen. Bei der Erstellung von Kontakt-Flows in Amazon Connect gibt es zwei Integrationspunkte zwischen Amazon-Services und einer ServiceNow -Instanz:
    • Amazon Web Services (AWS) Lambda Proxy (AWS Lambda-Funktion aufrufen)
    • AWS Lex-Bot (Kundeneingabe abrufen)
    Die für diese Integrationspunkte verfügbaren Vorgangshandler und Nachrichtenumwandler finden Sie in den Tabellen „Vorgangshandler“ [sn_cti_operation_handler] und „Anbieter-Nachrichtenumwandler“ [sn_cti_provider_msg_transformer].

    Darüber hinaus müssen die im Aufruf übergebenen Anmeldeinformationen über die Rolle sn_cti_core.service oder admin verfügen, um auf diesen Endpunkt zugreifen zu können.

    Weitere Informationen zum Cloud-Callcenter finden Sie unter Cloud-Callcenter.

    URL-Format

    Standard-URL: /api/sn_cti_core/cti_api/providers/{provider}/components/{component}/versions/{version}

    Unterstützte Anforderungsparameter

    Tabelle : 7. Pfadparameter
    Name Beschreibung
    Komponente Bezeichnung Ihrer Anbieterkomponente, z. B. sn_aws_connect_lambda_proxy_component oder sn_aws_connect_lex_intent_processor_component. Befindet sich im Feld Komponente der Tabelle „Anbieterkomponente“ [sn_cti_provider_component].

    Datentyp: Zeichenfolge

    Anbieter Sys_id des CTI-Provider-Datensatzes. Befindet sich in der Tabelle „Anbieterkomponente“ [sn_cti_provider_component].

    Datentyp: Zeichenfolge

    Version Version des angegebenen Anbieterdatensatzes. Befindet sich im Feld „Version“ der Tabelle „Anbieterkomponente“ [sn_cti_provider_component].

    Datentyp: Zeichenfolge

    Tabelle : 8. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 9. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    Hängt vom aufgerufenen Vorgangs-Handler und seiner spezifischen Implementierung ab.

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST API verwendet werden, finden Sie unter Unterstützte REST API-Header.

    Tabelle : 10. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützte Typen: application/json oder application/xml.

    Standard: application/json

    Tabelle : 11. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 12. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.
    Verschiedene Hängt vom aufgerufenen Vorgang und seiner spezifischen Implementierung ab.

    Parameter des Antworttexts (JSON oder XML)

    Name Beschreibung
    Hängt vom aufgerufenen Vorgang und seiner spezifischen Implementierung ab.

    cURL-Anforderung

    Im folgenden Beispiel wird der Vorgangs-Handler „interactionEvent“ über die Komponente sn_aws_connect_lambda_proxy_component aufgerufen.

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

    Beispielantwort auf den Aufruf des -Interaktions-Vorgangs-Handlers.

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

    Übergibt Ereignisse von einem CCP-Anbieter (Contact Control Panel) an eine ServiceNow -Instanz.

    Normalerweise rufen Sie diesen Endpunkt von Ihrer CCP-UI-Seite aus auf, um verschiedene Aufgaben (Ereignisse) auszuführen, z. B. das Ändern des Anwesenheitsstatus eines Service Desk-Mitarbeiters oder das Ändern des Status eines Datensatzes bei Abschluss eines Anrufs. Für den Zugriff auf diesen Endpunkt müssen die im Aufruf übergebenen Anmeldeinformationen die Rolle sn_openframe_user oder admin aufweisen.

    Dieser Endpunkt hat einen entsprechenden Erweiterungspunkt, sn_cti_core.SoftPhoneEventSink, der dafür verantwortlich ist, die Aktion zu bestimmen, die tatsächlich von diesem Endpunktaufruf für jedes Ereignis ausgeführt wird. Das Basissystem bietet eine Implementierung für Amazon Connect-Ereignisse. Wenn Ihre Implementierung davon abweicht, sollten Sie diesen Erweiterungspunkt anpassen, bevor Sie diesen Endpunkt verwenden. Der Anforderungstext und die Antwortformate dieses Endpunkts entsprechen der Implementierung dieses Erweiterungspunkts. Weitere Informationen zum Implementieren von Erweiterungspunkten finden Sie unter Erweiterungspunkte zum Erweitern der Anwendungsfunktionalität verwenden und Erweiterungspunkte in Cloud-Callcenter.

    URL-Format

    Standard-URL: /api/sn_cti_core/cti_api/softphone/sources/{source}/actor/{actor}/events/{event}

    Unterstützte Anforderungsparameter

    Tabelle : 13. Pfadparameter
    Name Beschreibung
    Akteur Emitter des Ereignisses, z. B. „agent“ oder „external_system“. Die konkreten Werte werden vom Implementierer bestimmt.

    Datentyp: Zeichenfolge

    event Name des Ereignisses im System des Lieferanten für Computer-Telefonie-Integration (Computer Teletelefony Integration, CTI), z. B. Verfügbar oder Offline. Die spezifischen Werte werden vom Implementierer bestimmt, müssen jedoch ein einzelnes Wort/eine einzelne Formulierung ohne Leerzeichen oder Sonderzeichen sein.

    Datentyp: Zeichenfolge

    Quellen Bezeichner der Softphone-UI-Seite des Lieferanten, z. B. „aws_ccp“.

    Datentyp: Zeichenfolge

    Tabelle : 14. Abfrageparameter
    Name Beschreibung
    Keine
    Tabelle : 15. Anforderungstextparameter (XML oder JSON)
    Name Beschreibung
    Implementierungsspezifisch. Wird durch die Implementierung des Erweiterungspunkts „sn_cti_core.SoftPhoneEventSink“ bestimmt.

    Header

    Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST API verwendet werden, finden Sie unter Unterstützte REST API-Header.

    Tabelle : 16. Anforderungskopfzeilen
    Kopfzeile Beschreibung
    Akzeptieren Datenformat des Antworttexts. Unterstützte Typen: application/json oder application/xml.

    Standard: application/json

    Tabelle : 17. Antwortkopfzeilen
    Kopfzeile Beschreibung
    Keine

    Statuscodes

    Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.

    Tabelle : 18. Statuscodes
    Statuscode Beschreibung
    200 Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet.

    Parameter des Antworttexts (JSON oder XML)

    Name Beschreibung
    Keine

    cURL-Anforderung

    Im folgenden Beispiel werden AgentStatusOne-Ereignisinformationen an die Instanz ServiceNow übergeben. Die Parameter des Anforderungstexts werden durch die Implementierung des Erweiterungspunkts sn_cti_core.SoftPhoneEventSink bestimmt.

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

    Es werden keine Antwortparameter zurückgegeben.

    {
      "result": {}
    }