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