Anrufendpunkte

Die Call API-Endpunkte ermöglichen den Zugriff auf die Call-Objekte. Für jeden Anruf, der an die Contact Center AI Platform (CCAI Platform) gerichtet ist oder von ihr ausgeht, wird ein Anrufobjekt erstellt.

Die API-Endpunkte für Anrufe sind:

Anrufobjekt

Hier ein Beispiel für das Anrufobjekt:

[
  {
    "id": 0,
    "parent_id": 0,
    "lang": "en",
    "call_type": "Voice Scheduled (API)",
    "status": "scheduled",
    "created_at": "2018-06-07T19:49:52.896Z",
    "queued_at": "2018-06-07T19:49:52.896Z",
    "assigned_at": "2018-06-07T19:49:52.896Z",
    "connected_at": "2018-06-07T19:49:52.896Z",
    "ends_at": "2018-06-07T19:49:52.896Z",
    "scheduled_at": "2018-06-07T19:49:52.896Z",
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": 0,
    "has_feedback": true,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": "string",
    "out_ticket_url": "string",
    "verified": true,
    "recording_url": "string",
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_details": "string",
    "fail_reason": "nothing",
    "support_number": "string",
    "selected_menu": {
      "id": 0,
      "name": "string",
      "parent_id": 0,
      "position": 0,
      "deleted": true,
      "hidden": "string",
      "menu_type": "ivr_menu",
      "output_msg": "string"
    },
    "menu_path": {
      "items_count": 0,
      "name": "string",
      "materialized_path": "string"
    },
    "agent_info": {
      "id": 0,
      "name": "string",
      "last_name": "string",
      "first_name": "string",
      "agent_number": "string",
      "avatar_url": "string"
    },
    "end_user": {
      "id": 0,
      "identifier": "string",
      "out_contact_id": "string"
    },
    "photos": [
      {
        "id": 0,
        "photo_type": "photo",
        "url": "string"
      }
    ],
    "videos": [
      {
        "id": 0,
        "url": "string"
      }
    ],
    "transfers": [
      {
        "id": 0,
        "status": "transferring",
        "fail_reason": "nothing",
        "created_at": "2018-06-07T19:49:52.896Z",
        "from_menu": {
          "items_count": 0,
          "name": "string",
          "materialized_path": "string"
        },
        "to_menu": {
          "items_count": 0,
          "name": "string",
          "materialized_path": "string"
        },
        "from_agent": {
          "id": 0,
          "name": "string",
          "last_name": "string",
          "first_name": "string",
          "agent_number": "string",
          "avatar_url": "string"
        },
        "to_agent": {
          "id": 0,
          "name": "string",
          "last_name": "string",
          "first_name": "string",
          "agent_number": "string",
          "avatar_url": "string"
        }
      }
    ],
    "participants": [
      {
        "id": 0,
        "type": "end_user",
        "status": "waiting",
        "call_id": 0,
        "user_id": 0,
        "end_user_id": 0,
        "call_duration": 0,
        "hold_duration": 0,
        "connected_at": "2018-06-07T19:49:52.896Z",
        "ended_at": "2018-06-07T19:49:52.896Z",
        "fail_reason": "nothing"
      }
    ]
  }
]

Definitionen der Anrufstatus

Das Statusfeld kann einen der folgenden Status haben:

Anrufstatus Beschreibung
Wird ausgewählt Status, der auftritt, wenn ein Endnutzer das Contact Center angerufen hat, aber noch die Menüoptionen durchläuft, bevor er in ein untergeordnetes Menü weitergeleitet wird.
In der Warteschlange Status, der auftritt, nachdem der Endnutzer einen Blattmenüknoten ausgewählt und eine Anrufanfrage initiiert hat, die an einen Kundenservicemitarbeiter übertragen oder per Multicast gesendet werden soll.
Zugewiesen Status, der auftritt, wenn ein Kundenservicemitarbeiter ausgewählt wird, um den Anruf des Endnutzers entgegenzunehmen. Das passiert, wenn ein Anruf von einem Kundenservicemitarbeiter angenommen wird.
Wird verbunden Status, der auftritt, nachdem ein Agent zugewiesen wurde und eine Verbindung zwischen dem Endnutzer und dem Agent hergestellt wird.
Verbunden Status, der auftritt, wenn für den Anruf eine Verbindung hergestellt wurde und sowohl der Kundenservicemitarbeiter als auch der Endnutzer in einem Anruf sind.
Fertig Zustand, der auftritt, wenn ein Anruf nach der Verbindung beendet wird.
Fehlgeschlagen Status, der auftritt, wenn ein Anruf beendet wird, bevor er erfolgreich verbunden wurde. Außerdem wird ein Grund für den Fehler angegeben.
Wechseln Status, der auftritt, wenn ein Anruf beim Verbindungsaufbau fehlschlägt und die CCAI-Plattform versucht, den Anruf mit einem anderen VoIP-Anbieter zu verbinden.
Wiederhergestellt Status, der auftritt, wenn ein fehlgeschlagener Anruf zurückgerufen wird. Dieser neue Anruf ist ein untergeordneter Anruf des ursprünglichen Anrufs. Wiederhergestellte Notizen, dass der Rückruf fehlerfrei abgeschlossen wurde.
Geplant Status, der auftritt, wenn ein Endnutzer einen zukünftigen Anruf über In-Web oder In-App geplant hat.
Nur Aktion Status, der auftritt, wenn ein Anruf, der vom eigenen Telefonieanbieter des Kunden bearbeitet wird, mit unserem iOS- oder Android-SDK verbunden ist.
Nur Aktion abgeschlossen Status, der auftritt, wenn ein Anruf, der vom eigenen Telefonieanbieter des Kunden bearbeitet wird, mit unserem iOS- oder Android-SDK verbunden und beendet wird
Abgelenkt Status, der basierend auf der Konfiguration für Warteschlangen mit Überkapazität oder Anrufe nach Feierabend auftritt. Zu den Umleitungsoptionen gehören unter anderem die Mailbox und die Planung eines Anrufs. Die Weiterleitung variiert je nach Kanal (In-App, IVR, In-Web).
Mailbox Status, der auftritt, wenn ein Endnutzer zu einer Mailboxoption weitergeleitet wird und eine Mailboxnachricht hinterlässt, die später angehört werden kann. Dieser Status wird angezeigt, wenn der Endnutzer eine Voicemail hinterlässt.
Sprachnachricht erhalten Status, der auftritt, nachdem ein Endnutzer eine Voicemail hinterlassen hat und ein Kundenservicemitarbeiter sie noch nicht angehört hat
Mailboxnachricht gelesen Status, der auftritt, wenn ein Kundenservicemitarbeiter die Voicemail zum Abhören geöffnet hat.

Definitionen von Anruftypen

Das Feld call_type kann nur einen der folgenden Werte haben:

Anruftyp Beschreibung
Voice Outbound (API) Anruf über die Outbound Call API.
Voice Inbound (API) Anruf über die Incoming Call API.
Voice Scheduled (API) Anruf über die Scheduled Call API.

Häufige API-Antwortcodes

Die häufigsten API-Antworten sind:

Antwortcode Bedeutung
201 Die API-Anfrage war erfolgreich und es wird ein Anruf gestartet.
202 Die API-Anfrage war erfolgreich, aber für die Ausführung der Aktion ist ein manueller Eingriff im Widget erforderlich.
400 Ungültiger Anruftyp – prüfen Sie, ob „call_type“ unterstützt wird.
400 Der Kundenservicemitarbeiter ist nicht verfügbar, um diesen Anruf entgegenzunehmen
400 Fehlender Parameter – prüfen Sie, ob die erforderlichen Parameter hinzugefügt wurden.
404 Ressource nicht gefunden – Bitte überprüfen Sie Ihre Subdomain

Ausgehender Anruf – end_user_number

Parameter Erforderlich Datentyp Definition
call_tye TRUE String Zu erstellender Anruftyp. „Voice Outbound (API)“ und „OutboundCall“ (eingestellt) sind vorerst verfügbar.
agent_email TRUE String E-Mail-Adresse des Kundenservicemitarbeiters, der dem ausgehenden Anruf zugewiesen wird.
ticket_id FALSE String CRM-Ticket-ID. Es wird der Endnutzer angerufen, der mit dem Ticket verknüpft ist.
end_user_number FALSE String Telefonnummer des Endnutzers, von der aus angerufen wird. „ticket_id“ hat eine höhere Priorität als „end_user_number“.
outbound_number FALSE String Eine wohlgeformte Absendernummer, die unter „Einstellungen“ > „Telefonnummern“ > „Telefonnummernverwaltung“ verwaltet wird. Wenn leer, wird die Standardnummer für ausgehende Anrufe verwendet.
lang FALSE String Im Anruf gesprochene Sprache. Verwendet ISO 639-1-Codes. (Standard: „en“)

Endpunkt:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/calls

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "outbound_number": "+1 760-867-5309",
    "end_user_number": "123123",
    "lang": "en"
}

Beispielanfrage und -antworten

In den folgenden Abschnitten finden Sie Beispielanfragen an den Endpunkt.

Fehler : Der Kundenservicemitarbeiter ist nicht verfügbar, um diesen Anruf entgegenzunehmen.

In diesem Beispiel wird das Fehlerszenario veranschaulicht, wenn der Kundenservicemitarbeiter nicht verfügbar ist, um den Anruf entgegenzunehmen.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
Antwort: Fehler : Der Kundenservicemitarbeiter ist für diesen Anruf nicht verfügbar.
{
    "message": "Agent is not available to take this call"
}

Statuscode:400

Ausgehenden Anruf mit der Endnutzernummer erstellen

In diesem Beispiel wird gezeigt, wie Sie einen ausgehenden Anruf für eine bestimmte Endnutzernummer starten.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 859-657-9625",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
Antwort: Erstelle einen ausgehenden Anruf mit end_user_number.
{
    "id": 397,
    "lang": "en",
    "call_type": "Voice Outbound (API)",
    "status": "assigned",
    "created_at": "2019-06-07T01:27:30.406Z",
    "queued_at": null,
    "assigned_at": "2019-06-07T01:27:30.441Z",
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": null,
        "name": "Admin UJET",
        "last_name": "UJET",
        "first_name": "Admin",
        "avatar_url": "https://somedomain.com/avatar.jpg"
    },
    "end_user": null,
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 610,
            "type": "agent",
            "status": "waiting",
            "call_id": 397,
            "user_id": 1,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 611,
            "type": "end_user",
            "status": "waiting",
            "call_id": 397,
            "user_id": null,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

Statuscode:201

Ausgehenden Anruf mit Ticket-ID erstellen

In diesem Beispiel wird gezeigt, wie ein ausgehender Anruf mit einer bestimmten Ticket-ID erstellt wird.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "ticket_id": "71450",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
Antwort: Einen ausgehenden Anruf mit ticket_id erstellen
{
    "id": 398,
    "lang": "en",
    "call_type": "Voice Outbound (API)",
    "status": "assigned",
    "created_at": "2019-06-07T01:28:47.955Z",
    "queued_at": null,
    "assigned_at": "2019-06-07T01:28:47.971Z",
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": "71450",
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": null,
        "name": "Admin UJET",
        "last_name": "UJET",
        "first_name": "Admin",
        "avatar_url": "https://somedomain.com/avatar.png"
    },
    "end_user": {
        "id": 67,
        "identifier": null,
        "out_contact_id": "381630957514"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 612,
            "type": "agent",
            "status": "waiting",
            "call_id": 398,
            "user_id": 1,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 613,
            "type": "end_user",
            "status": "waiting",
            "call_id": 398,
            "user_id": null,
            "end_user_id": 67,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

Statuscode:201

Fehler : Ticket-ID oder Endnutzernummer erforderlich

In diesem Beispiel wird der Fehlerfall veranschaulicht, in dem die Ticket-ID oder die Endnutzernummer erforderlich, aber nicht angegeben ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

Antwort: Fehler : ticket_id oder end_user_number erforderlich

{
    "message": "ticket_id or end_user_number required"
}

Statuscode:400

Fehler : Keine gültige Agenten-E-Mail-Adresse

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn die angegebene E-Mail-Adresse für einen Kundenservicemitarbeiter ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

Antwort: Fehler : Keine gültige Agenten-E‑Mail-Adresse

{
    "message": "Not a valid agent email"
}

Statuscode:400

Fehler : E-Mail-Adresse des Kundenservicemitarbeiters erforderlich

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn für den Kundenservicemitarbeiter keine E-Mail-Adresse angegeben wird.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

Antwort: Fehler : E-Mail-Adresse des Kundenservicemitarbeiters erforderlich

{
    "message": "Agent email required"
}

Statuscode:400

Fehler : Der Kundenservicemitarbeiter hat keinen Zugriff auf Anrufe

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn der angegebene Agent keine ausgehenden Anrufe tätigen darf.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
Antwort: Fehler : Der Agent hat keinen Zugriff auf Anrufe.
{
    "message": "Agent does not have access to make calls"
}

Statuscode:400

Fehler : end_user_number ist nicht wohlgeformt

In diesem Beispiel wird das Fehlerszenario veranschaulicht, in dem die angegebene Endnutzernummer nicht richtig formatiert ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "end_user_number": "123123",
    "lang": "en"
}
Antwort: Fehler : end_user_number ist nicht wohlgeformt
{
    "message": "end_user_number is not well-formed"
}

Statuscode:400

Fehler : Kontakt nicht gefunden

In diesem Beispiel wird das Fehlerszenario veranschaulicht, in dem der angegebene Kontakt nicht vorhanden ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "ticket_id": 1,
    "lang": "en"
}
Antwort: Fehler : Kontakt nicht gefunden
{
    "message": "Contact not found"
}

Statuscode:400

Akzeptiert : Eine Nummer für ausgehende Anrufe muss ausgewählt werden

In diesem Beispiel wird der ausgehende Anruf angenommen, aber der Kundenservicemitarbeiter muss die zu verwendende ausgehende Nummer auswählen, bevor der Anruf getätigt wird.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "outbound_number": "+1 760-867-5309",
    "end_user_number": "123123",
    "lang": "en"
}
Antwort
{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

Statuscode:200

Fehler : Ungültiger Anruftyp

In diesem Beispiel wird das Fehlerszenario veranschaulicht, in dem der angegebene Anruftyp ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "end_user_number": "123123",
    "lang": "en"
}
Antwort: Fehler : Ungültiger Anruftyp
{
    "message": "Invalid call type"
}

Statuscode:400

Anrufadapter mit mehreren ausgehenden Nummern auffordern

In diesem Szenario werden dem Anrufadapter mehrere ausgehende Nummern angezeigt.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "outbound_number": "+1 760-867-5309",
    "end_user_number": "123123",
    "lang": "en"
}
Antwort
{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 859-657-9625",
    "lang": "en"
}

Statuscode:200

Angenommen : Der Kundenservicemitarbeiter muss einen ausgehenden Anruf mit der Ticket-ID starten.

In diesem Beispiel wird eine Anfrage veranschaulicht, bei der der Agent basierend auf der angegebenen Ticket-ID einen ausgehenden Anruf tätigen muss.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

Statuscode:202

Ausgehender Anruf – ticket_id

Parameter Erforderlich Datentyp Definition
call_type TRUE String Zu erstellender Anruftyp. „Voice Outbound (API)“ und „OutboundCall“ (eingestellt) sind vorerst verfügbar.
agent_email TRUE String E-Mail-Adresse des Kundenservicemitarbeiters, der dem ausgehenden Anruf zugewiesen wird.
ticket_id FALSE String CRM-Ticket-ID. Es wird der Endnutzer angerufen, der mit dem Ticket verknüpft ist.
end_user_number FALSE String Telefonnummer des Endnutzers, von der aus angerufen wird. „ticket_id“ hat eine höhere Priorität als „end_user_number“.
outbound_number FALSE String Eine wohlgeformte Absendernummer, die unter „Einstellungen“ > „Telefonnummern“ > „Telefonnummernverwaltung“ verwaltet wird. Wenn leer, wird die Standardnummer für ausgehende Anrufe verwendet.
lang FALSE String Im Anruf gesprochene Sprache. Verwendet ISO 639-1-Codes. (Standard: „en“)

Endpunkt:

Method: POST
Type: RAW
URL: https://{subdomain}.{domain}​/apps/api/v1/calls

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-867-5309",
    "ticket_id": "123123",
    "lang": "en"
}

Beispielanfrage und -antworten

In den folgenden Abschnitten finden Sie Beispielanfragen an den Endpunkt.

Fehler : Ticket-ID oder Endnutzernummer erforderlich

In diesem Beispiel fehlen die Fehlerursachen für die Ticket-ID oder die Endnutzernummer, die aber erforderlich sind.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

Antwort: Fehler : ticket_id oder end_user_number erforderlich

{
    "message": "ticket_id or end_user_number required"
}

Statuscode:400

Fehler : E-Mail-Adresse des Kundenservicemitarbeiters erforderlich

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem die E-Mail-Adresse des Kundenservicemitarbeiters nicht angegeben wird, aber erforderlich ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
Antwort: Fehler : E-Mail-Adresse des Kundenservicemitarbeiters erforderlich
{
    "message": "Agent email required"
}

Statuscode:400

Ausgehenden Anruf mit der Endnutzernummer erstellen

In diesem Beispiel wird gezeigt, wie Sie einen ausgehenden Anruf erstellen, indem Sie die Endnutzernummer angeben.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 859-657-9625",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
Antwort: Erstelle einen ausgehenden Anruf mit end_user_number.
{
    "id": 397,
    "lang": "en",
    "call_type": "Voice Outbound (API)",
    "status": "assigned",
    "created_at": "2019-06-07T01:27:30.406Z",
    "queued_at": null,
    "assigned_at": "2019-06-07T01:27:30.441Z",
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reaso": "not_voicemail",
    "deflection": "n_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": null,
        "name": "Admin UJET",
        "last_name": "UJET",
        "first_name": "Admin",
        "avatar_url": "https://somedomain.com/default-profile.png"
    },
    "end_user": null,
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 610,
            "type": "agent",
            "status": "waiting",
            "call_id": 397,
            "user_id": 1,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 611,
            "type": "end_user",
            "status": "waiting",
            "call_id": 397,
            "user_id": null,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

Statuscode:201

Fehler : Ungültiger Anruftyp

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem der angegebene Anruftyp ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "ScheduledCall",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "end_user_number": "123123",
    "lang": "en"
}
Antwort: Fehler : Ungültiger Anruftyp
{
    "message": "Invalid call type"
}

Statuscode:400

Anrufadapter mit mehreren ausgehenden Nummern auffordern

In diesem Beispiel wird gezeigt, wie Sie den Anrufadapter mit mehreren ausgehenden Telefonnummern auffordern.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 859-657-9625",
    "lang": "en"
}

Statuscode:202

Angenommen : Der Kundenservicemitarbeiter muss einen ausgehenden Anruf mit der Ticket-ID starten.

In diesem Beispiel wird gezeigt, wie ein ausgehender Anruf mit einer Ticket-ID gestartet wird und der Kundenservicemitarbeiter die Anfrage annimmt.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json
***Body:*** ```json { "call_type": "Voice Outbound (API)", "agent_email": "allen@somedomain.com", "end_user_number": "+1 205-123-4567", "lang": "en" } ``` ***Status Code:*** 202 #### Error : Agent does not have access to make calls In this example we show the failure scenario where a call creation request is submitted but the agent does not have access to be able to make outbound calls. ##### Anfrage ***Header:***
Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
Antwort: Fehler : Der Agent hat keinen Zugriff auf Anrufe.
{
    "message": "Agent does not have access to make calls"
}

Statuscode:400

Einen ausgehenden Anruf mit der Ticket-ID erstellen.

In diesem Beispiel wird das Szenario zum Erstellen eines ausgehenden Anrufs mit einer Ticket-ID gezeigt.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "ticket_id": "71450",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
Antwort: Einen ausgehenden Anruf mit ticket_id erstellen
{
    "id": 398,
    "lang": "en",
    "call_type": "Voice Outbound (API)",
    "status": "assigned",
    "created_at": "2019-06-07T01:28:47.955Z",
    "queued_at": null,
    "assigned_at": "2019-06-07T01:28:47.971Z",
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": "71450",
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": null,
        "name": "Admin UJET",
        "last_name": "UJET",
        "first_name": "Admin",
        "avatar_url": "https://somedomain.com/default-profile.png"
    },
    "end_user": {
        "id": 67,
        "identifier": null,
        "out_contact_id": "381630957514"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 612,
            "type": "agent",
            "status": "waiting",
            "call_id": 398,
            "user_id": 1,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 613,
            "type": "end_user",
            "status": "waiting",
            "call_id": 398,
            "user_id": null,
            "end_user_id": 67,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

Statuscode:201

Akzeptiert : Eine Nummer für ausgehende Anrufe muss ausgewählt werden

In diesem Beispiel wird ein Szenario dargestellt, in dem eine Anfrage für einen ausgehenden Anruf erstellt wird, bei der eine ausgehende Nummer ausgewählt werden muss, und die dann akzeptiert wird.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

Statuscode:202

Fehler : Der Kundenservicemitarbeiter ist nicht verfügbar, um diesen Anruf entgegenzunehmen.

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein Anruf erstellt wird, der Kundenservicemitarbeiter aber nicht verfügbar ist, um den Anruf anzunehmen.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
Antwort: Fehler : Der Kundenservicemitarbeiter ist für diesen Anruf nicht verfügbar.
{
    "message": "Agent is not available to take this call"
}

Statuscode:400

Fehler : Die Endnutzernummer ist nicht wohlgeformt

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem die angegebene Telefonnummer des Endnutzers falsch formatiert ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "end_user_number": "123123",
    "lang": "en"
}
Antwort: Fehler : end_user_number ist nicht wohlgeformt
{
    "message": "end_user_number is not well-formed"
}

Statuscode:400

Fehler : Keine gültige Agenten-E-Mail-Adresse

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem die angegebene E-Mail-Adresse des Kundenservicemitarbeiters ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
Antwort: Fehler : Keine gültige Agenten-E‑Mail-Adresse
{
    "message": "Not a valid agent email"
}

Statuscode:400

Fehler : Kontakt nicht gefunden

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem der angegebene Kontakt nicht gefunden werden konnte.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "ticket_id": 1,
    "lang": "en"
}
Antwort: Fehler : Kontakt nicht gefunden
{
    "message": "Contact not found"
}

Statuscode:400

Eingehender Anruf

Parameter Erforderlich Datentyp Definition
call_type TRUE String Zu erstellender Anruftyp. Verwenden Sie „Voice Inbound (API)“ oder „IncomingCall“ (eingestellt), um einen eingehenden Anruf zu erstellen.
menu_id TRUE Ganzzahl Die ID des Menüs, dem der Anruf zugeordnet werden soll. Es werden nur IVR- und Webmenü-IDs akzeptiert.
end_user_number TRUE String Die Telefonnummer des Endnutzers, die gewählt wird. Wenn sowohl eine ticket_id als auch eine end_user_number übergeben werden, hat die ticket_id Vorrang.
lang FALSE String Im Anruf gesprochene Sprache. Verwendet ISO 639-1-Codes. (Standard: „en“)
ticket_id FALSE String CRM-Ticket-ID. Die mit dem Ticket verknüpfte Telefonnummer des Endnutzers wird angerufen. Wenn sowohl eine ticket_id als auch eine end_user_number übergeben werden, hat die ticket_id Vorrang.
outbound_number FALSE String Die Telefonnummer für ausgehende Anrufe, die für den Anruf verwendet werden soll. Die globale Standard-Telefonnummer für ausgehende Anrufe wird verwendet, wenn keine oder ungültige Eingaben übergeben werden. Ausgehende Nummern werden unter „Einstellungen“ > „Warteschleife“ > „BEARBEITEN / ANSEHEN“ > „Warteschleife auswählen“ > „Ausgehende Telefonnummern“ verwaltet.
recording_permission FALSE String Der Wert wird nur ausgewertet, wenn die Funktion „Optionen für Anrufaufzeichnung“ auf „Nutzer um Erlaubnis zum Aufzeichnen bitten“ festgelegt ist. Konfigurierbar unter „Einstellungen“ > „Warteschlange“ > „BEARBEITEN“ / „ANSEHEN“ > „Warteschlange auswählen“ > „Optionen für Anrufaufzeichnung“. Wenn der Wert entweder „recording_permission_not_asked“ (Standard) oder „recording_permission_denied“ ist, wird der Anruf nicht aufgezeichnet. Wenn der Wert „recording_permission_granted“ ist, wird der Anruf aufgezeichnet.

Endpunkt:

Method: POST
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/calls

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "ticket_id": "76517",
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}

Beispielanfrage und -antworten

In den folgenden Abschnitten finden Sie Beispielanfragen an den Endpunkt.

Fehler : Die Endnutzernummer ist nicht wohlgeformt

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein eingehender Anruf erstellt wird, die angegebene Endnutzernummer jedoch falsch formatiert ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 999-657-12",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : end_user_number ist nicht wohlgeformt
{
    "message": "end_user_number is not well formed"
}

Statuscode:400

Fehler : Das Menü befindet sich im Status „Manuelle Weiterleitung“ und kann keine Anrufe annehmen.

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein Anruf an eine Menü-ID weitergeleitet wird, das Menü sich jedoch im manuellen Weiterleitungsstatus befindet und daher keine eingehenden Anrufe empfangen kann.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Das Menü befindet sich im Status „Manuelle Weiterleitung“ und kann keine Anrufe annehmen.
{
    "message": "Menu is in 'manual redirection' state, can't accept calls"
}

Statuscode:400

Fehler : Ungültiger Anruftyp

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein eingehender Anruf erstellt wird, der angegebene Anruftyp jedoch ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "InvalidCallType",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Ungültiger Anruftyp
{
    "message": "Invalid call type"
}

Statuscode:400

Fehler : Menü-ID ist erforderlich

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein eingehender Anruf erstellt wird, die angegebene Menü-ID jedoch ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : menu_id ist erforderlich
{
    "message": "menu_id is required"
}

Statuscode:400

Fehler : Es sind nur IVR- und Mobilmenü-IDs zulässig

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein eingehender Anruf erstellt wird, die angegebene Menü-ID jedoch keine IVR- oder mobile Menü-ID ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 50,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Es sind nur IVR- und Mobilmenü-IDs zulässig
{
    "message": "Only IVR and mobile menu IDs are permitted"
}

Statuscode:400

Eingehenden Anruf mit der Endnutzernummer erstellen

In diesem Beispiel wird gezeigt, wie Sie einen eingehenden Anruf mit einer bestimmten Endnutzernummer erstellen.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+82-10-6861-2345",
    "recording_permission": "recording_permission_granted"
}
Antwort: Erstelle einen eingehenden Anruf mit end_user_number.
{
    "id": 515,
    "lang": "en",
    "call_type": "Voice Inbound (API)",
    "status": "queued",
    "created_at": "2019-09-10T00:19:14.000Z",
    "queued_at": "2019-09-10T00:19:14.421Z",
    "assigned_at": null,
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": {
        "id": 9,
        "name": "Lock Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You selected Lock Star.",
        "hidden": false
    },
    "menu_path": {
        "items_count": 1,
        "name": "Lock Star",
        "materialized_path": "9"
    },
    "agent_info": null,
    "end_user": {
        "id": 75,
        "identifier": null,
        "out_contact_id": "389391400633"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 820,
            "type": "end_user",
            "status": "waiting",
            "call_id": 515,
            "user_id": null,
            "end_user_id": 75,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": "cascade",
    "offer_events": [
        {
            "casting_time": "2019-09-10T00:19:14.000Z",
            "group": "Group 1"
        }
    ],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

Statuscode:201

Fehler : Das Menü ist im Status „Außerhalb der Geschäftszeiten“ und kann keine eingehenden Anrufe annehmen.

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn die angegebene Menü-ID außerhalb der Geschäftszeiten liegt.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Das Menü befindet sich im Status „Außerhalb der Geschäftszeiten“ und kann keine eingehenden Anrufe annehmen.
{
    "message": "Menu is in 'after hours' state, can't accept incoming calls"
}

Statuscode:400

Fehler : Sprache ist nicht verfügbar

In diesem Beispiel wird die Fehleranfrage veranschaulicht, wenn die angegebene Sprache nicht verfügbar ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "fr",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Sprache ist nicht verfügbar
{
    "message": "Language 'fr' is not available"
}

Statuscode:400

Eingehenden Anruf mit Ticket-ID erstellen

In diesem Beispiel wird die Anfrage zum Erstellen eines eingehenden Anrufs mit einer zugehörigen Ticket-ID veranschaulicht.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "ticket_id": "76517",
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Eingehenden Anruf mit ticket_id erstellen
{
    "id": 519,
    "lang": "en",
    "call_type": "Voice Inbound (API)",
    "status": "queued",
    "created_at": "2019-09-10T05:12:26.000Z",
    "queued_at": "2019-09-10T05:12:26.295Z",
    "assigned_at": null,
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": "76517",
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": {
        "id": 9,
        "name": "Lock Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You selected Lock Star.",
        "hidden": false
    },
    "menu_path": {
        "items_count": 1,
        "name": "Lock Star",
        "materialized_path": "9"
    },
    "agent_info": null,
    "end_user": {
        "id": 75,
        "identifier": null,
        "out_contact_id": "389391400633"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 826,
            "type": "end_user",
            "status": "waiting",
            "call_id": 519,
            "user_id": null,
            "end_user_id": 75,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": "cascade",
    "offer_events": [
        {
            "casting_time": "2019-09-10T05:12:26.000Z",
            "group": "Group 1"
        }
    ],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

Statuscode:201

Fehler : Sprache nicht gefunden

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn die angegebene Sprache nicht gefunden wird.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "xy",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Sprache nicht gefunden
{
    "message": "Language 'xy' is not found"
}

Statuscode:400

Fehler : menu_id nicht gefunden

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn die angegebene Menü-ID nicht gefunden wird.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9999,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : menu_id nicht gefunden
{
    "message": "menu_id 9999 is not found"
}

Statuscode:400

Fehler : menu_id ist nicht wohlgeformt

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn die angegebene Menü-ID nicht korrekt ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": "menu_999",
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : menu_id ist nicht wohlgeformt
{
    "message": "menu_id is not well formed"
}

Statuscode:400

Fehler : Endnutzernummer ist erforderlich

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein eingehender Anruf erstellt wird, die Telefonnummer des Endnutzers jedoch nicht angegeben wurde.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : end_user_number ist erforderlich
{
    "message": "end_user_number is required"
}

Statuscode:400

Geplanter Anruf

Parameter Erforderlich Datentyp Definition
call_type TRUE String Zu erstellender Anruftyp. Verwenden Sie „Voice Scheduled (API)“ oder „ScheduledCall“ (eingestellt), um einen geplanten Anruf zu erstellen.
menu_id TRUE Ganzzahl Die ID des Menüs, dem der Anruf zugeordnet werden soll. Es werden nur Menü-IDs für Mobilgeräte und das Web akzeptiert.
call_id FALSE Ganzzahl Anruf-ID des vorherigen Anrufs, der als übergeordneter Anruf des neu erstellten geplanten Anrufs verknüpft wird. Wenn die Anruf-ID verwendet wird, kann die „menu_id“ optional sein.
end_user_number TRUE String Die Telefonnummer des Endnutzers, die gewählt wird. Wenn sowohl eine ticket_id als auch eine end_user_number übergeben werden, hat die ticket_id Vorrang.
lang FALSE String Im Anruf gesprochene Sprache. Verwendet ISO 639-1-Codes. (Standard: „en“)
ticket_id FALSE String CRM-Ticket-ID. Die mit dem Ticket verknüpfte Telefonnummer des Endnutzers wird angerufen. Wenn sowohl eine ticket_id als auch eine end_user_number übergeben werden, hat die ticket_id Vorrang.
scheduled_at TRUE String Geplante Uhrzeit des Anrufs. Verwendet das ISO 8601-Format für eine gültige zukünftige Zeit.
recording_permission FALSE String Der Wert wird nur ausgewertet, wenn die Funktion „Optionen für Anrufaufzeichnung“ auf „Nutzer um Erlaubnis zum Aufzeichnen bitten“ festgelegt ist. Konfigurierbar unter „Einstellungen“ > „Warteschlange“ > „BEARBEITEN“ / „ANSEHEN“ > „Warteschlange auswählen“ > „Optionen für Anrufaufzeichnung“. Wenn der Wert entweder „recording_permission_not_asked“ (Standard) oder „recording_permission_denied“ ist, wird der Anruf nicht aufgezeichnet. Wenn der Wert „recording_permission_granted“ ist, wird der Anruf aufgezeichnet.

Endpunkt:

Method: POST
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/calls

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "ticket_id": "76517",
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}

Beispielanfrage und -antworten

In den folgenden Abschnitten finden Sie Beispielanfragen an den Endpunkt.

Fehler : end_user_number ist nicht wohlgeformt

In diesem Beispiel wird der Fehler aufgrund der nicht korrekt formatierten end_user_number veranschaulicht.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 999-657-12",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : end_user_number ist nicht wohlgeformt
{
    "message": "end_user_number is not well formed"
}

Statuscode:400

Fehler : Das Menü befindet sich im Status „Manuelle Weiterleitung“ und kann keine Anrufe annehmen.

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn die angegebene Menü-ID auf die Menüumleitung festgelegt ist und keine Anrufe entgegennehmen kann.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Das Menü befindet sich im Status „Manuelle Weiterleitung“ und kann keine Anrufe annehmen.
{
    "message": "Menu is in 'manual redirection' state, can't accept calls"
}

Statuscode:400

Fehler : Ungültiger Anruftyp

In diesem Beispiel wird der Fehler veranschaulicht, der auftritt, wenn eine Anfrage gestellt wird und der Aufruftyp ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "InvalidCallType",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Ungültiger Anruftyp
{
    "message": "Invalid call type"
}

Statuscode:400

Fehler : menu_id ist erforderlich

In diesem Beispiel wird die Anfrage und Antwort veranschaulicht, wenn eine Menü-ID nicht angegeben, aber erforderlich ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : menu_id ist erforderlich
{
    "message": "menu_id is required"
}

Statuscode:400

Fehler : Es sind nur Menü-IDs für Mobilgeräte und das Web zulässig

In diesem Beispiel wird eine Anfrage veranschaulicht, die fehlschlägt, wenn eine Menü-ID angegeben wird, die keine Web- oder mobile Menü-ID ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 50,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Es sind nur Menü-IDs für Mobilgeräte und das Web zulässig
{
    "message": "Only mobile and web menu IDs are permitted"
}

Statuscode:400

Geplanten Anruf mit Menü-ID erstellen

In diesem Beispiel wird gezeigt, wie Sie einen geplanten Anruf mit einer bestimmten Menü-ID erstellen.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+82-10-6861-2345",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Geplanten Anruf mit Menü-ID erstellen
{
    "id": 515,
    "lang": "en",
    "call_type": "Voice Inbound (API)",
    "status": "queued",
    "created_at": "2019-09-10T00:19:14.000Z",
    "queued_at": null,
    "assigned_at": null,
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": {
        "id": 9,
        "name": "Lock Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You selected Lock Star.",
        "hidden": false
    },
    "menu_path": {
        "items_count": 1,
        "name": "Lock Star",
        "materialized_path": "9"
    },
    "agent_info": null,
    "end_user": {
        "id": 75,
        "identifier": null,
        "out_contact_id": "389391400633"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 820,
            "type": "end_user",
            "status": "waiting",
            "call_id": 515,
            "user_id": null,
            "end_user_id": 75,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": "cascade",
    "offer_events": [
        {
            "casting_time": "2019-09-10T00:19:14.000Z",
            "group": "Group 1"
        }
    ],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

Statuscode:201

Geplanten Anruf mit Anruf-ID erstellen

In diesem Beispiel wird gezeigt, wie Sie einen geplanten Anruf mit einer bestimmten Anruf-ID erstellen.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "call_id": 514,
    "end_user_number": "+82-10-6861-2345",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Geplanten Anruf mit Anruf-ID erstellen
{
    "id": 515,
    "lang": "en",
    "call_type": "Voice Inbound (API)",
    "status": "queued",
    "created_at": "2019-09-10T00:19:14.000Z",
    "queued_at": null,
    "assigned_at": null,
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": {
        "id": 9,
        "name": "Lock Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You selected Lock Star.",
        "hidden": false
    },
    "menu_path": {
        "items_count": 1,
        "name": "Lock Star",
        "materialized_path": "9"
    },
    "agent_info": null,
    "end_user": {
        "id": 75,
        "identifier": null,
        "out_contact_id": "389391400633"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 820,
            "type": "end_user",
            "status": "waiting",
            "call_id": 515,
            "user_id": null,
            "end_user_id": 75,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": "cascade",
    "offer_events": [
        {
            "casting_time": "2019-09-10T00:19:14.000Z",
            "group": "Group 1"
        }
    ],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

Statuscode:201

Fehler : Das Menü ist im Status „Außerhalb der Geschäftszeiten“ und kann keine eingehenden Anrufe annehmen.

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein geplanter Anruf erstellt wird, das angegebene Menü jedoch außerhalb der Geschäftszeiten liegt und daher keine eingehenden Anrufe entgegennehmen kann.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Das Menü befindet sich im Status „Außerhalb der Geschäftszeiten“ und kann keine eingehenden Anrufe annehmen.
{
    "message": "Menu is in 'after hours' state, can't accept incoming calls"
}

Statuscode:400

Fehler : Sprache ist nicht verfügbar

In diesem Beispiel wird der Fehler gezeigt, der auftritt, wenn die angegebene Sprache ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "fr",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Sprache ist nicht verfügbar
{
    "message": "Language 'fr' is not available"
}

Statuscode:400

Fehler : Sprache nicht gefunden

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein geplanter Anruf erstellt wird, die Sprache jedoch ungültig oder nicht verfügbar ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "xy",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Sprache nicht gefunden
{
    "message": "Language 'xy' is not found"
}

Statuscode:400

Fehler : Menü-ID nicht gefunden

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein geplanter Anruf erstellt wird, die angegebene Menü-ID jedoch ungültig ist und nicht gefunden wird.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9999,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : Menü-ID nicht gefunden
{
    "message": "menu_id 9999 is not found"
}

Statuscode:400

Fehler : Menü-ID ist nicht wohlgeformt

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein geplanter Anruf erstellt wird, die angegebene Menü-ID jedoch falsch formatiert ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": "menu_999",
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : menu_id ist nicht wohlgeformt
{
    "message": "menu_id is not well formed"
}

Statuscode:400

Fehler : Endnutzernummer ist erforderlich

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein geplanter Anruf erstellt wird, aber die Endnutzernummer nicht angegeben wurde.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler : end_user_number ist erforderlich
{
    "message": "end_user_number is required"
}

Statuscode:400

Fehler: „scheduled_at“ ist erforderlich

In diesem Beispiel wird das Fehlerszenario gezeigt, in dem ein geplanter Anruf erstellt wird, der Wert „scheduled_at“ jedoch fehlt, obwohl er erforderlich ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Text:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
Antwort: Fehler: „scheduled_at“ ist erforderlich
{
    "message": "scheduled_at is required"
}

Statuscode:400

Reservierte Datenattribute während eines Anrufs abrufen

Endpunkt

Method: GET
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/calls/:id/customer_flag

Beispielanfrage und -antworten

Dieser Abschnitt enthält ein Beispiel für eine Anfrage und eine Antwort für den Endpunkt.

Erfolg

Dieses Beispiel zeigt einen erfolgreichen Aufruf.

Anfrage

URL-Variablen

Schlüssel Wert Beschreibung
id integer (Erforderlich)
Antwort
{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customer": "boolean"
}

Statuscode 0

Reservierte Datenattribute während eines Anrufs aktualisieren

Endpunkt

Method: PATCH
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/calls/:id/customer_flag

URL-Variablen

Schlüssel Wert Beschreibung
id integer (Erforderlich)

Body

{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customers": "boolean"
}

Datenparameter während der Sitzung an virtuelle Kundenservicemitarbeiter übergeben

Informationen zur Verwendung der Apps API zum Übergeben von Datenparametern an virtuelle Kundenservicemitarbeiter während einer Anrufsitzung finden Sie unter Datenparameter während der Sitzung an virtuelle Kundenservicemitarbeiter übergeben.