Chamar endpoints

Um objeto de chamada é criado para cada ligação feita ou recebida pela Contact Center AI Platform (CCAI Platform). Consulte o modelo a seguir para determinar quais campos podem conter PII.

[
 {
    "id": 0,
    "parent_id": 0,
    "lang": "en",
    "call_type": "Voice Inbound (App)",
    "status": "scheduled",
    "sub_status": "Scheduled: Disconnected by unknown",
    "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",
    "updated_at": "2018-06-07T19:49:52.896Z",
    "wait_duration": 0, //Deprecated, use queue_duration instead
    "queue_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",
    "finish_reason": "no_reason",
    "fail_details": "string",
    "fail_reason": "nothing",
    "adapter_fail_code": null,
    "adapter_fail_message": null,
    "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", //This may be considered PII
      "last_name": "string", //This may be considered PII
      "first_name": "string", //This may be considered PII
      "agent_number": "string",
      "avatar_url": "string"
    },
    "end_user": {
      "id": 0, //This may be considered PII
      "identifier": "string", //This may be considered PII
      "out_contact_id": "string" //This may be considered PII
    },
    "photos": [
      {
        "id": 0, //This may be considered PII
        "photo_type": "photo", //This may be considered PII
        "url": "string" //This may be considered PII
      }
    ],
    "videos": [
      {
        "id": 0, //This may be considered PII
        "url": "string" //This may be considered PII
      }
    ],
    "transfers": [
      {
        "id": 0,
        "status": "transferring",
        "fail_reason": "nothing",
        "created_at": "2018-06-07T19:49:52.896Z",
        "call_duration": 300,
        "wait_duration": 40,
        "assigned_at": "2018-06-07T19:50:32.896Z",
        "connected_at": "2018-06-07T19:50:35.896Z",
        "updated_at": "2018-06-07T19:55:35.896Z",
        "deflection": 0,
        "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", //This may be considered PII
          "last_name": "string", //This may be considered PII
          "first_name": "string", //This may be considered PII
          "agent_number": "string",
          "avatar_url": "string"
        },
        "to_agent": {
          "id": 0,
          "name": "string", //This may be considered PII
          "last_name": "string", //This may be considered PII
          "first_name": "string", //This may be considered PII
          "agent_number": "string",
          "avatar_url": "string"
        }
      }
    ],
    "handle_durations": [
        {
            "agent_id": 0,
            "acw_duration": 0,
            "call_duration" 0,
            "menu_path_id": 0,
            "wait_duration": 0,
            "lang": "en",
            "transfer": false,
            "started_at": "2019-07-17T07:27:14.000Z",
            "ended_at": "2019-07-17T07:27:20.000Z",
            "event": "call_finished"
        }
    ],
    "queue_durations": [
        {
            "agent_id": 0,
            "queue_duration" 0,
            "menu_path_id": 0,
            "lang": "en",
            "transfer": false,
            "started_at": "2019-07-17T07:27:14.000Z",
            "ended_at": "2019-07-17T07:27:20.000Z",
            "service_level_abandon_time_threshold": 10,
            "service_level_event": "not_in_sla",
            "service_level_target_percent": 90,
            "service_level_target_time": 60,
            "event": "answered"
        }
    ]
    "participants": [
      {
        "id": 0,
        "type": "end_user",
        "status": "waiting",
        "call_id": 0,
        "user_id": 0, //This may be considered PII
        "end_user_id": 0, //This may be considered PII
        "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",
        "adapter_fail_code": null,
        "adapter_fail_message": null
      },
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": null,
    "wait_time_sms": [],
    "in_call_sms": []
    ]
  }
]

O campo de status pode estar em um dos seguintes estados:

Status da chamada Descrição
Selecionando Estado que ocorre quando um usuário final ligou para a central de atendimento, mas ainda está navegando pelas opções do menu antes de solicitar uma ligação de um nó folha.
Na fila Estado que ocorre depois que o usuário final seleciona um nó de menu folha e inicia uma solicitação de chamada para ser transmitida ou multicast para um agente.
Atribuído Estado que ocorre quando um agente é selecionado para receber a ligação do usuário final. Isso acontece quando um atendente atende uma ligação.
Conectando Estado que ocorre depois que um agente é atribuído e está aguardando o estabelecimento de uma conexão entre o usuário final e o agente.
Conectado Estado que ocorre quando a chamada estabeleceu uma conexão e o agente e o usuário final estão em uma ligação.
Concluído Estado que ocorre quando uma conversa entre um agente e um usuário final termina uma chamada sem erros.
Falha Estado que ocorre quando uma chamada é encerrada devido a um erro. Quando esse status é renderizado, um motivo de falha também é fornecido para mais contexto.
Alternando Estado que ocorre quando uma chamada falha ao tentar se conectar e a plataforma CCAI tenta conectar a chamada com um provedor de VoIP diferente.
Recuperado Estado que ocorre quando uma chamada com falha é retornada. Essa nova chamada é filha da original. Recuperou observações de que o retorno de chamada foi concluído sem erros.
Programado Estado que ocorre quando um usuário final escolhe receber uma ligação no futuro como parte de uma opção de desvio ou seleciona receber uma ligação no futuro usando o In-Web ou no app.
Apenas ação Estado que ocorre quando uma chamada processada pelo provedor de telefonia do cliente é conectada ao nosso SDK do iOS ou SDK do Android.
Ação concluída Estado que ocorre quando uma chamada processada pelo provedor de telefonia do cliente é conectada ao nosso SDK do Android para iOS ou Android e termina.
Desviada Estado que ocorre com base na configuração de filas de excesso de capacidade ou chamadas fora do horário comercial. As opções de rejeição incluem correio de voz, agendar ligação e outras. A redução varia de acordo com o canal (no app, URA, na Web).
Correio de voz Estado que ocorre quando um usuário final é redirecionado para uma opção de correio de voz e escolhe deixar uma mensagem para ouvir depois. Esse estado está presente quando o usuário final está saindo da caixa de correio de voz.
Correio de voz recebido Estado que ocorre depois que um usuário final deixa um correio de voz e um agente não ouve a mensagem.
Correio de voz lido Estado que ocorre quando um agente abre o correio de voz para ouvir.

O campo "call_type" só pode ter um dos seguintes valores:

Tipo de chamada Descrição
Entrada de texto por voz (IVR) Chamada PSTN recebida do telefone de um usuário final.
Entrada de voz (app) Ligação recebida feita em um app iOS ou app Android que usa nosso SDK para dispositivos móveis.
Retornar ligação (Web) Solicitação de chamada recebida feita no nosso SDK da Web
Agendado por voz (app) Chamada feita de um agente para um usuário final que foi pré-agendada usando o recurso de agendamento do SDK para dispositivos móveis.
Voice Scheduled (Web) Chamada feita de um agente para um usuário final que foi pré-agendada usando o recurso de agendamento do SDK da Web
Voice Outbound Chamada feita por um agente para um usuário final discada usando o teclado de discagem ou outro método para ligar para uma linha telefônica externa.

O campo service_level_event pode ter apenas um dos seguintes valores:

Evento de nível de serviço Descrição
in_sla A chamada foi atendida dentro do SLA
not_in_sla A chamada não foi atendida dentro do SLA definido
excluído A chamada não foi incluída no cálculo do SLA (por exemplo, se ela foi abandonada).

Os campos adapter_fail_code e adapter_fail_message só podem ter um dos seguintes valores se não forem nulos:

Código de falha do adaptador Mensagem de falha do adaptador
10001 Esta chamada encontrou um erro inesperado.
11001 Esta chamada expirou enquanto aguardava na fila.
20001 A chamada foi cancelada pelo cliente.
20002 A chamada foi rejeitada pelo cliente.
20003 Essa chamada foi abandonada pelo cliente.
20004 A chamada foi abandonada pelo cliente durante a seleção do menu.
21001 Não foi possível conectar a chamada porque a linha do cliente está ocupada.
21002 O número de telefone discado é inválido.
21003 O cliente não atendeu a esta chamada.
22001 Não foi possível enviar a notificação push para iniciar a chamada.
30001 Esta chamada foi cancelada.
30002 Essa chamada expirada não foi atendida.
31001 Não foi possível detectar o microfone. Confira as configurações do dispositivo e tente de novo.
31002 Não foi possível acessar o microfone. Confira as permissões do dispositivo e tente de novo.
32001 O número de saída selecionado é inválido.
32002 Não é possível conectar a chamada ao número de telefone discado.
41001 Ocorreu um erro inesperado na conexão da chamada.
42001 Ocorreu um erro inesperado na conexão da chamada.
43001 Esta chamada encontrou um erro inesperado.
44001 Esta chamada encontrou um erro inesperado.
44002 A chamada foi encerrada porque a conexão expirou.
44003 Esta chamada encontrou um erro inesperado.
90001 Esta chamada foi encerrada porque nenhum áudio foi detectado.
90002 Não foi possível iniciar o dispositivo de áudio. Confira as permissões do dispositivo de áudio e tente de novo.

Chamadas

Parâmetro Obrigatório Tipo de dados Definição
connected_at[from] FALSO Horário em UTC cria um limite inferior do campo "Conectado em". Todos os registros retornados serão anteriores ao valor inserido.
connected_at[to] FALSO Horário em UTC cria um limite superior do campo "connected_at". Todos os registros retornados serão anteriores ao valor inserido.
updated_at[from] FALSO Horário em UTC cria um limite inferior do campo "updated at". Todos os registros retornados serão posteriores ao valor inserido.
updated_at[to] FALSO Horário em UTC cria um limite superior do campo "connected_at". Todos os registros retornados serão anteriores ao valor inserido.
queued_at[from] FALSO Horário em UTC cria um limite inferior do campo "queued at". Todos os registros retornados serão posteriores ao valor inserido.
queued_at[to] FALSO Horário em UTC cria um limite superior do campo "queued at". Todos os registros retornados serão anteriores ao valor inserido.
rating[from] FALSO Número de 1 a 5 ou nulo cria um limite inferior do campo de classificação. Todos os registros retornados serão posteriores ao valor inserido.
rating[to] FALSO Número de 1 a 5 ou nulo cria um limite superior do campo de classificação. Todos os registros retornados serão anteriores ao valor inserido.
call_duration[from] FALSO Número cria um limite inferior do campo de duração da chamada. Todos os registros retornados serão posteriores ao valor inserido.
call_duration[to] FALSO Número cria um limite superior para o campo de duração da chamada. Todos os registros retornados serão anteriores ao valor inserido.
hold_duration[from] FALSO Número cria um limite inferior do campo de duração da retenção. Todos os registros retornados serão posteriores ao valor inserido.
hold_duration[to] FALSO Número cria um limite superior para o campo de duração da retenção. Todos os registros retornados serão anteriores ao valor inserido.
id[] FALSO Array[String] Matriz de strings. ID dos registros a serem pesquisados e retornados.
agent_id[] FALSO Array[String] Filtra a resposta por ID do agente
end_user_id[] FALSO Array[String] Filtra a resposta com base no ID do usuário final.
call_status[] FALSO Array[String] Retorna registros de um determinado estado no ciclo de vida da chamada. Os valores possíveis são: scheduled, queued, assigned, connecting, switching, connected, finished, failed, recovered, deflected, selecting, action_only, action_only_finished, voicemail, voicemail_received, voicemail_read
call_fail_reason[] FALSO Array[String] Retorna registros que falharam de alguma forma. Os valores possíveis são: nothing, unknown, expired, eu_canceled, eu_rejected, eu_abandoned, eu_in_menu_abandoned, eu_busy, eu_wrong_number, eu_no_answer, eu_noti_failed, ag_canceled, ag_ignored, ag_mic_no_device, ag_mic_denied, voip_twilio_error, voip_tokbox_error, voip_invalid_token, voip_conn_general, voip_conn_timeout, voip_conn_signal
verified[] FALSO Booleano Retorna registros que foram verificados (True) ou não (False)
call_type[] FALSO Array[String] Retorna registros de um determinado tipo de chamada. Os valores possíveis são: IncomingCallApp, ScheduledCallApp, OutboundCall, AgentScheduledCall, IvrCall, IncomingCallWeb, ScheduledCallWeb, ActionOnlyCall
support_number[] FALSO Array[String] Filtre pelo número de telefone usado pelo usuário final para entrar em contato (somente para chamadas de URA)

Endpoint

Method: GET
Type: 
URL: https://{{subdomain}}.{{domain}}/manager/api/v1/calls

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Mais exemplos de solicitações/respostas:

Exemplo de solicitação: chamadas

Corpo: nenhum

Exemplo de resposta: Chamadas

[
  {
    "id": 1,
    "lang": "en",
    "call_type": "Voice Inbound (App)",
    "status": "finished",
    "created_at": "2016-02-19T18:53:56.000Z",
    "queued_at": "2016-02-19T18:53:57.000Z",
    "assigned_at": "2016-02-19T18:53:58.000Z",
    "connected_at": "2016-02-19T18:54:18.000Z",
    "ends_at": "2016-02-19T18:54:39.000Z",
    "updated_at": "2016-02-19T18:54:39.000Z",
    "scheduled_at": null,
    "queue_duration": 22,
    "wait_duration": 22,
    "call_duration": 21,
    "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,
    "recordings": [
        {
            "id": 7,
            "call_id": 1,
            "conference_sid": "CF50ec183fafcff801226b6fc332EC02ba7c4",
            "duration": 20,
            "recording_type": "default",
            "redaction_times": [
                {
                    "start": "2016-02-19T18:54:23.000Z",
                    "end": "2016-02-19T18:54:25.000Z",
                    "duration": 2.000,
                    "start_agent_id": 2,
                    "end_agent_id": 2
                }
            ],
            "started_at": "2016-02-19T18:54:18.000Z"
        }
    ],
    "support_number": "+12128675309",
    "selected_menu": {
      "id": 11,
      "name": "Carpentry",
      "parent_id": 1,
      "position": 1,
      "deleted": false,
      "hidden": false,
      "menu_type": "ivr_menu",
      "output_msg": "Thanks for calling Death Star Carpentry"
    },
    "menu_path": {
      "items_count": 1,
      "name": "Carpentry",
      "materialized_path": "Death Star/Carpentry"
    },
    "queue_priority_level": 0,
    "end_user": {
      "id": 3,
      "identifier": "Death Star Carpentry Union",
      "out_contact_id": "363876643527"
    },
    "photos": [{
      "id": 0,
      "photo_type": "photo",
      "url": "www.photolocation.co/photo/123456868686"
    }],
    "videos": [{
      "id": 0,
      "url": "www.videolocation.co/video/123456868686"
    }],
    "transfers": [{
      "id": 11,
      "status": "transferring",
      "fail_reason": "nothing",
      "created_at": "2016-02-19T18:58:18.000Z",
      "from_menu": {
        "items_count": 2,
        "name": "Cabinetry",
        "materialized_path": "Death Star/Cabinetry"
      },
      "to_menu": {
        "items_count": 2,
        "name": "Carpentry",
        "materialized_path": "Death Star/Carpentry"
      },
      "from_agent": {
        "id": 2,
        "name": "San Holo",
        "last_name": "San",
        "first_name": "Holo",
        "agent_number": "6",
        "avatar_url": "www.avatarurl.co/avatar/1234543"
      },
      "to_agent": {
        "id": 0,
        "name": "Farrison Hord",
        "last_name": "Farrison",
        "first_name": "Hord",
        "agent_number": "12",
        "avatar_url": "www.avatarurl.co/avatar/1234545"
      }
    }],
    "participants": [
      {
        "id": 5,
        "type": "end_user",
        "status": "finished",
        "call_id": 3,
        "user_id": null,
        "end_user_id": 3,
        "call_duration": 21,
        "hold_duration": null,
        "connected_at": "2016-02-19T18:54:18.000Z",
        "ended_at": "2016-02-19T18:54:39.000Z",
        "fail_reason": "nothing"
      },
      {
        "id": 3,
        "type": "agent",
        "status": "finished",
        "call_id": 3,
        "user_id": 5,
        "end_user_id": null,
        "call_duration": 21,
        "hold_duration": null,
        "connected_at": "2016-02-19T18:54:18.000Z",
        "ended_at": "2016-02-19T18:54:39.000Z",
        "fail_reason": "nothing"
      },
      {
        "id": 6,
        "type": "agent",
        "status": "finished",
        "call_id": 3,
        "user_id": 12,
        "end_user_id": null,
        "call_duration": 21,
        "hold_duration": null,
        "connected_at": "2016-02-19T18:54:18.000Z",
        "ended_at": "2016-02-19T18:54:39.000Z",
        "fail_reason": "nothing"
      }
    ],
    "offer_type": "cascade",
    "offer_events": [
      {
        "casting_time": "2018-11-12T15:52:38.000Z",
        "group": "Group 1"
      }
    ],
    "answer_type": "manual",
    "outbound_number": null,
    "dispositions": [
        {
            "user_id": 3,
            "participant_id": 225,
            "code": "Product question"
        },
        {
            "user_id": 3,
            "transfer_id": 1,
            "participant_id": 226,
            "code": "Requires follow up"
        }
    ],
    "consumer_handle_durations": [
      {
        "id": 100,
        "call_duration": 314,
        "hold_duration": 3,
        "started_at":  "2016-02-19T18:50:08.000Z",
        "ended_at": "2016-02-19T18:55:22.000Z"
      }
    ],
    "consumer_in_menu_durations": [
      {
        "id": 100,
        "event": "finished",
        "duration": 238,
        "menu_path_id": 11,
        "menu_path": "Deathstar/Shipping",
        "lang": "en",
        "started_at":  "2016-02-19T18:50:08.000Z",
        "ended_at": "2016-02-19T18:54:06.000Z"
      }
    ],
    "consumer_event_durations": [
      {
        "id": 10,
        "type": "payment",
        "event": "finished",
        "duration": 20,
        "menu_path_id": 11,
        "menu_path": "Deathstar/Shipping",
        "lang": "en",
        "started_at": "2016-02-19T18:54:38.000Z",
        "ended_at": "2016-02-19T18:54:58.000Z"
      },
      {
        "id": 11,
        "type": "csat",
        "event": "abandoned",
        "duration": 4,
        "menu_path_id": 11,
        "menu_path": "Deathstar/Shipping",
        "lang": "en",
        "started_at": "2016-02-19T18:54:39.000Z",
        "ended_at": "2016-02-19T18:54:43.000Z"
      }
    ],
    "handle_durations": [
      {
        "id": 10001,
        "agent_id": 5,
        "acw_duration": 0,
        "bcw_duration": 0,
        "call_duration": 21,
        "assigned_connection_duration": 10,
        "hold_duration": 3,
        "menu_path_id": 11,
        "menu_path": "Deathstar/Shipping",
        "lang": "en",
        "barged": 0,
        "transfer": 0,
        "transfer_id": null,
        "transfer_cold": 0,
        "started_at": "2016-02-19T18:54:18.000Z",
        "ended_at": "2016-02-19T18:54:39.000Z",
        "scheduled_at": null
      },
      {
        "id": 10002,
        "agent_id": 5,
        "acw_duration": 25,
        "bcw_duration": 0,
        "call_duration": 0,
        "assigned_connection_duration": 0,
        "hold_duration": 0,
        "menu_path_id": 11,
        "menu_path": "Deathstar/Shipping",
        "lang": "en",
        "barged": 0,
        "transfer": 0,
        "transfer_id": null,
        "transfer_cold": 0,
        "started_at": "2016-02-19T18:54:39.000Z",
        "ended_at": "2016-02-19T18:55:04.000Z",
        "scheduled_at": null
      },
      {
        "id": 10003,
        "agent_id": 12,
        "acw_duration": 1,
        "bcw_duration": 0,
        "call_duration": 21,
        "assigned_connection_duration": 5,
        "hold_duration": 0,
        "menu_path_id": 4,
        "menu_path": "Deathstar/Returns",
        "lang": "en",
        "barged": 0,
        "transfer": 1,
        "transfer_id": 11,
        "transfer_cold": 0,
        "started_at": "2016-02-19T18:54:18.000Z",
        "ended_at": "2016-02-19T18:54:39.000Z",
        "scheduled_at": null
      }
    ],
    "queue_durations": [
      {
        "id": 20011,
        "agent_id": 5,
        "queue_duration": 12,
        "menu_path_id": 11,
        "menu_path": "Deathstar/Shipping",
        "lang": "en",
        "transfer": 0,
        "transfer_id": null,
        "transfer_cold": 0,
        "started_at": "2016-02-19T18:54:06.000Z",
        "ended_at": "2016-02-19T18:54:18.000Z",
        "service_level_abandon_time_threshold": 10,
        "service_level_event": "in_sla",
        "service_level_target_percent": 90,
        "service_level_target_time": 60
      },
      {
        "id": 20012,
        "agent_id": 12,
        "queue_duration": 10,
        "menu_path_id": 21,
        "menu_path": "Deathstar/Returns",
        "lang": "en",
        "transfer": 1,
        "transfer_id": 11,
        "transfer_cold": 0,
        "started_at": "2016-02-19T18:54:08.000Z",
        "ended_at": "2016-02-19T18:54:18.000Z",
        "service_level_abandon_time_threshold": 10,
        "service_level_event": "not_in_sla",
        "service_level_target_percent": 90,
        "service_level_target_time": 60
      }
    ],
    "virtual_agent": {
      "id": 10,
      "name": "D2-R2"
    },
    "virtual_agent_deflected_escalations": [
      {
        "id": 1,
        "deflection": "after_hours",
        "escalation_id": 1,
        "escalation_reason": "by_end_user_message",
        "escalated_at": "2016-02-19T18:54:06.000Z",
        "menu_path_id": 11,
        "menu_path": "Deathstar/Shipping",
        "lang": "en",
        "virtual_agent": {
          "id": 10,
          "name": "D2-R2"
        }
      }
    ],
    "virtual_agent_handle_durations": [
      {
        "id": 1,
        "virtual_agent": {
          "id": 10,
          "name": "D2-R2"
        },
        "call_duration": 11,
        "escalation_reason": "by_end_user_message",
        "sentiment": 85,
        "response_count": 11,
        "fallback_response_count": 1,
        "initiated_by": "end_user",
        "menu_path_id": 11,
        "menu_path": "Deathstar/Shipping",
        "lang": "en",
        "transfer": false,
        "transfer_id": null,
        "started_at": "2016-02-19T18:52:36.000Z",
        "ended_at": "2016-02-19T18:54:06.000Z"
      }
    ]
  }
]

Código de status:200