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:
Reservierte Datenattribute während eines Aufrufs aktualisieren
Datenparameter während der Sitzung an virtuelle Kundenservicemitarbeiter übergeben
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 |
| 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.