Anrufendpunkte

Die API-Endpunkte für Anrufe bieten Zugriff auf die Anrufobjekte. Für jeden Anruf, der an die Contact Center AI Platform (CCAI Platform) oder von ihr ausgeht, wird ein Anrufobjekt erstellt.

Im Folgenden sind die API-Endpunkte für Anrufe aufgeführt:

Anrufobjekt

Hier ein Beispiel für das Aufrufobjekt:

[
  {
    "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 des 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 durch die Menüoptionen navigiert, bevor er in ein Blattmenü gelangt.
In der Warteschlange Status, der auftritt, nachdem der Endnutzer einen Blattmenüknoten ausgewählt und eine Anrufanfrage initiiert hat, die an einen Agenten weitergeleitet oder per Multicast gesendet werden soll.
Zugewiesen Status, der auftritt, wenn ein Agent für den Empfang des Endnutzeranrufs ausgewählt wird. Dies geschieht, wenn ein Anruf von einem Kundenservicemitarbeiter angenommen wird.
Wird verbunden Status, der auftritt, nachdem ein Kundenservicemitarbeiter zugewiesen wurde und eine Verbindung zwischen dem Endnutzer und dem Kundenservicemitarbeiter hergestellt wird.
Verbunden Status, der auftritt, wenn der Anruf eine Verbindung hergestellt hat und der Agent und der Endnutzer beide in einem Anruf sind.
Fertig Status, der auftritt, wenn ein Anruf nach dem Verbinden beendet wird.
Fehlgeschlagen Status, der auftritt, wenn ein Anruf beendet wird, bevor er erfolgreich verbunden wurde. Außerdem wird ein Grund für das Fehlschlagen angegeben.
Wechseln Status, der auftritt, wenn ein Anruf beim Verbindungsaufbau fehlschlägt und die CCAI Platform versucht, den Anruf mit einem anderen VOIP-Anbieter zu verbinden.
Wiederhergestellt Status, der auftritt, wenn ein fehlgeschlagener Aufruf zurückgerufen wird. Dieser neue Aufruf ist ein untergeordneter Aufruf des ursprünglichen Aufrufs. Wiederhergestellte Notizen, die der Rückruf ohne Fehler abgeschlossen hat.
Geplant Status, der auftritt, wenn ein Endnutzer einen zukünftigen Anruf über das Web oder die App geplant hat.
Nur Aktion Status, der auftritt, wenn ein Anruf, der vom Telefonieanbieter unseres Kunden verarbeitet wird, mit unserem iOS- oder Android-SDK verbunden wird.
Nur Aktion abgeschlossen Status, der auftritt, wenn ein Anruf, der vom Telefonieanbieter unseres Kunden verarbeitet 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 außerhalb der Geschäftszeiten auftritt. Zu den Optionen für die Weiterleitung gehören unter anderem die Mailbox und die Planung eines Anrufs. Die Ablenkung variiert je nach Kanal (In-App, IVR, In-Web).
Mailbox Zustand, der auftritt, wenn ein Endnutzer zu einer Mailboxoption weitergeleitet wird und sich dafür entscheidet, eine Mailboxnachricht zu hinterlassen, die später abgehört werden kann. Dieser Status wird angezeigt, wenn der Endnutzer die Mailbox verlässt.
Sprachnachricht erhalten Status, der auftritt, nachdem ein Endnutzer eine Mailboxnachricht hinterlassen hat und ein Agent die Mailboxnachricht nicht abgehört hat
Mailboxnachrichten abrufen Status, der auftritt, wenn ein Kundenservicemitarbeiter die Mailboxnachricht zum Abhören geöffnet hat.

Definitionen von Aufruftypen

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

Dies sind die häufigsten API-Antworten:

Antwortcode Bedeutung
201 Die API-Anfrage war erfolgreich und erstellt einen Anruf.
202 Die API-Anfrage war erfolgreich, aber im Widget ist ein manueller Eingriff erforderlich, um die Aktion abzuschließen
400 Ungültiger Anruftyp – „call_type“ muss unterstützt werden
400 Der Agent ist nicht verfügbar, um diesen Anruf anzunehmen
400 Fehlender Parameter – prüfen Sie, ob die erforderlichen Parameter hinzugefügt wurden
404 Ressource nicht gefunden – bitte prüfen Sie Ihre Subdomain

Ausgehender Anruf – end_user_number

Parameter Erforderlich Datentyp Definition
call_tye TRUE String Rufen Sie „tye“ auf, um die Datei zu erstellen. „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 und wählt den Endnutzer, der mit dem Ticket verknüpft ist.
end_user_number FALSE String Telefonnummer des Endnutzers, der den Anruf tätigt. „ticket_id“ hat eine höhere Priorität als „end_user_number“.
outbound_number FALSE String Eine korrekt formatierte Nummer für ausgehende Anrufe, die unter „Einstellungen“ > „Telefonnummern“ > „Telefonnummernverwaltung“ verwaltet wird. Wenn das Feld leer ist, wird die Standardnummer für ausgehende Anrufe verwendet
lang FALSE String Im Anruf gesprochene Sprache Verwendet ISO 639-1-Codes. (Standardwert: „en“)

Endpunkt:

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

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Statuscode: 400

Ausgehenden Anruf mit der Nummer des Endnutzers erstellen

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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: Ausgehenden Anruf mit end_user_number erstellen
{
    "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 ein ausgehender Anruf mit einer bestimmten Ticket-ID erstellt.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "ticket_id": "71450",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
Antwort: 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 dargestellt, bei dem die Ticket-ID oder die Endnutzernummer erforderlich ist, aber nicht angegeben wurde.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Response: Error : ticket_id or end_user_number required

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

Statuscode: 400

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

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Antwort: Fehler : Keine gültige E-Mail-Adresse des Kundenservicemitarbeiters

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

Statuscode: 400

Fehler : E‑Mail-Adresse des KI-Agenten erforderlich

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 KI-Agent hat keinen Zugriff, um Anrufe zu tätigen

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Statuscode: 400

Fehler : end_user_number ist nicht wohlgeformt

In diesem Beispiel wird ein Fehlerszenario gezeigt, bei dem die angegebene Endnutzernummer nicht richtig formatiert ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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, bei dem der angegebene Kontakt nicht vorhanden ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 : Nummer für ausgehende Anrufe muss ausgewählt werden

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 ein Fehlerszenario gezeigt, bei dem der angegebene Aufruftyp ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 über mehrere ausgehende Nummern aufrufen

In diesem Szenario werden im Anrufadapter mehrere ausgehende Nummern angezeigt.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Akzeptiert : Der Kundenservicemitarbeiter muss einen ausgehenden Anruf mit der Ticket-ID tätigen.

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 und wählt den Endnutzer, der mit dem Ticket verknüpft ist.
end_user_number FALSE String Telefonnummer des Endnutzers, der den Anruf tätigt. „ticket_id“ hat eine höhere Priorität als „end_user_number“.
outbound_number FALSE String Eine korrekt formatierte Nummer für ausgehende Anrufe, die unter „Einstellungen“ > „Telefonnummern“ > „Telefonnummernverwaltung“ verwaltet wird. Wenn das Feld leer ist, wird die Standardnummer für ausgehende Anrufe verwendet
lang FALSE String Im Anruf gesprochene Sprache Verwendet ISO 639-1-Codes. (Standardwert: „en“)

Endpunkt:

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

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 Ticket-ID oder die Endnutzernummer, die für das Fehlerszenario erforderlich sind.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Response: Error : ticket_id or end_user_number required

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

Statuscode: 400

Fehler : E‑Mail-Adresse des KI-Agenten erforderlich

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 Nummer des Endnutzers erstellen

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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: Ausgehenden Anruf mit end_user_number erstellen
{
    "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, bei dem der angegebene Aufruftyp ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 über mehrere ausgehende Nummern aufrufen

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Statuscode: 202

Akzeptiert : Der Kundenservicemitarbeiter muss einen ausgehenden Anruf mit der Ticket-ID tätigen.

In diesem Beispiel wird gezeigt, wie Sie einen ausgehenden Anruf mit einer Ticket-ID tätigen und der Agent 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 diesem Beispiel wird ein Fehlerfall gezeigt, bei dem eine Anfrage zur Erstellung eines Anrufs gesendet wird, der Agent jedoch nicht berechtigt ist, ausgehende Anrufe zu tätigen. ##### Anfrage ***Header:***
Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Statuscode: 400

Ausgehenden Anruf mit 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

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "ticket_id": "71450",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
Antwort: 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 : Nummer für ausgehende Anrufe muss ausgewählt werden

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Statuscode: 400

Fehler : Die Nummer des Endnutzers ist nicht korrekt formatiert

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 E‑Mail-Adresse des Agenten

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Statuscode: 400

Fehler : Kontakt nicht gefunden

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 Aufruf 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. (Standardwert: „en“)
ticket_id FALSE String CRM-Ticket-ID. Die mit dem Ticket verknüpfte Telefonnummer des Endnutzers wird gewählt. 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 standardmäßige globale Telefonnummer für ausgehende Anrufe wird verwendet, wenn die Eingabe nicht übergeben wird oder ungültig ist. Ausgehende Nummern werden unter „Einstellungen“ > „Warteschlange“ > „BEARBEITEN / ANSEHEN“ > „Warteschlange auswählen“ > „Ausgehende Telefonnummern“ verwaltet.
recording_permission FALSE String Der Wert wird nur ausgewertet, wenn die Funktion „Anrufaufzeichnungsoptionen“ auf „Nutzer um Erlaubnis zur Aufzeichnung bitten“ festgelegt ist. Konfigurierbar unter „Einstellungen“ > „Warteschlange“ > „BEARBEITEN / ANSEHEN“ > Warteschlange auswählen > „Optionen für die 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“ lautet, 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

Body:

{
    "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 Nummer des Endnutzers ist nicht korrekt formatiert

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 ein Fehlerszenario gezeigt, bei dem ein Anruf an eine Menü-ID weitergeleitet wird, das Menü sich jedoch im Status „Manuelle Weiterleitung“ befindet und daher keine eingehenden Anrufe empfangen kann.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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“, Anrufe können nicht angenommen werden.
{
    "message": "Menu is in 'manual redirection' state, can't accept calls"
}

Statuscode: 400

Fehler : Ungültiger Anruftyp

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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, bei dem ein eingehender Anruf erstellt wird, die angegebene Menü-ID jedoch ungültig ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 : Nur IVR- und mobile Menü-IDs sind zulässig

In diesem Beispiel wird ein Fehlerszenario gezeigt, bei 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

Body:

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

Statuscode: 400

Eingehenden Anruf mit der Nummer des Endnutzers 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

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+82-10-6861-2345",
    "recording_permission": "recording_permission_granted"
}
Antwort: Eingehenden Anruf mit end_user_number erstellen
{
    "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ü befindet sich im Status „Außerhalb der Geschäftszeiten“. Eingehende Anrufe können nicht angenommen werden.

In diesem Beispiel wird der Fehler gezeigt, wenn die angegebene Menü-ID den Status „Außerhalb der Öffnungszeiten“ hat.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 gezeigt, wenn die angegebene Sprache nicht verfügbar ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 gezeigt.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 demonstriert, wenn die angegebene Sprache nicht gefunden wird.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 wurde nicht gefunden

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 wurde nicht gefunden
{
    "message": "menu_id 9999 is not found"
}

Statuscode: 400

Fehler : menu_id ist nicht richtig formatiert

In diesem Beispiel wird der Fehler gezeigt, der auftritt, wenn die angegebene Speisekarten-ID nicht korrekt ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 richtig formatiert
{
    "message": "menu_id is not well formed"
}

Statuscode: 400

Fehler : Endnutzernummer ist erforderlich

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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“ (verworfen), um einen geplanten Anruf zu erstellen.
menu_id TRUE Ganzzahl Die ID des Menüs, dem der Aufruf 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, ist die „menu_id“ optional.
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. (Standardwert: „en“)
ticket_id FALSE String CRM-Ticket-ID. Die mit dem Ticket verknüpfte Telefonnummer des Endnutzers wird gewählt. Wenn sowohl eine „ticket_id“ als auch eine „end_user_number“ übergeben werden, hat die „ticket_id“ Vorrang.
scheduled_at TRUE String Geplante Zeit 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 „Anrufaufzeichnungsoptionen“ auf „Nutzer um Erlaubnis zur Aufzeichnung bitten“ festgelegt ist. Konfigurierbar unter „Einstellungen“ > „Warteschlange“ > „BEARBEITEN / ANSEHEN“ > Warteschlange auswählen > „Optionen für die 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“ lautet, 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

Body:

{
    "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 richtig formatiert

In diesem Beispiel wird der Fehler aufgrund einer falsch formatierten end_user_namber veranschaulicht.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 gezeigt, wenn die angegebene Menü-ID auf die Menüweiterleitung festgelegt ist und keine Anrufe annehmen kann.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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“, Anrufe können nicht angenommen werden.
{
    "message": "Menu is in 'manual redirection' state, can't accept calls"
}

Statuscode: 400

Fehler : Ungültiger Anruftyp

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 werden die Anfrage und die Antwort gezeigt, wenn eine Menü-ID nicht angegeben ist, aber erforderlich ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 : Nur IDs für mobile und Webmenüs sind zulässig

In diesem Beispiel wird eine Anfrage gezeigt, 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

Body:

{
    "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 : Nur Menü-IDs für Mobilgeräte und das Web sind 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 Aufruf mit einer bestimmten Menü-ID erstellen.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 Aufruf mit einer bestimmten Aufruf-ID erstellen.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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ü befindet sich im Status „Außerhalb der Geschäftszeiten“. Eingehende Anrufe können nicht angenommen werden.

In diesem Beispiel wird das Fehlerszenario gezeigt, bei dem ein geplanter Anruf erstellt wird, die angegebene Speisekarte jedoch außerhalb der Öffnungszeiten liegt und daher keine eingehenden Anrufe empfangen kann.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

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

Body:

{
    "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, bei 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

Body:

{
    "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 ein Fehlerszenario gezeigt, bei 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

Body:

{
    "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 : Die Menü-ID ist nicht richtig formatiert.

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

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 richtig formatiert
{
    "message": "menu_id is not well formed"
}

Statuscode: 400

Fehler : Endnutzernummer ist erforderlich

In diesem Beispiel wird das Fehlerszenario gezeigt, bei dem ein geplanter Anruf erstellt, aber die Nummer des Endnutzers nicht angegeben wurde.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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, bei dem ein geplanter Aufruf erstellt wird, der Wert für „scheduled_at“ jedoch fehlt, aber erforderlich ist.

Anfrage

Überschriften:

Schlüssel Wert Beschreibung
Content-Type application/json

Body:

{
    "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 eine Beispielanfrage und ‑antwort für den Endpunkt.

Erfolgreich

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

Status code 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 einer Sitzung an virtuelle Agenten übergeben

Wenn Sie die Apps API verwenden möchten, um Datenparameter während einer Anrufsitzung an virtuelle Agenten zu übergeben, lesen Sie den Hilfeartikel Datenparameter während einer Sitzung an virtuelle Agenten übergeben.