API do Movidesk - Telefonia - Com controle da fila
16 min
Criado por Heloisa Kopsch Hendges em 13/05/2018 17:18
Atualizado por Vinicius Modesto em 27/11/2025 17:14
Importante: Nossas API's possuem um limite de 10 requisições por minuto para garantir um comportamento saudável no seu uso. Caso você tenha um cenário específico que precise aumentar o uso, entre em contato com o nosso time de atendimento para análise de viabilidade. Saiba mais sobre horários e limites das API's
https://api.movidesk.com/public/v1

Telefonia - Com controle da fila

          Ao decorrer desta documentação, estão descritos os procedimentos para utilização da API que integra centrais telefônicas com o Movidesk. Caso as APIs descritas nesta documentação sejam utilizadas, o Movidesk controlará a fila da sua central telefônica. É importante que antes de utilizar a API, leia-se a documentação do módulo de telefonia (que você encontrará clicando aqui). Para toda chamada recebida, deverá haver uma chamada API identificando um dos seguintes status: "Chamada finalizada", "Chamada perdida" ou "Chamada cancelada". Caso isso não se cumpra, os registros na base de dados referentes às chamadas telefônicas ficarão incompletos.

 

Layout 

Chamada recebida

  URL:    /asterisk_receivedCall
  Métodos: POST

 

PropriedadeTipoTamanhoObrigatórioDescrição
tokenGuid ✓ Chave API do Movidesk.
queueIdint          10✓ ID da fila, deve ser o mesmo informado no cadastro de grupo de telefonia no Movidesk.
clientNumberstring 128✓ Número do telefone que está efetuando a chamada.
idstring 256✓ Identificador único da chamada efetuada. Obs.: Somente será possível relacionar um id único de chamada para um ticket. De tal forma que, não será possível associar um id repetido para um ticket.
callDatedatetime UTC ✓Data do recebimento da chamada.  A data informada deve estar no formato yyyy-MM-ddThh:mm e em UTC*. 

 

Chamada transferida

  URL:    /asterisk_transferedCall
  Métodos: POST

 

PropriedadeTipoTamanhoObrigatórioDescrição
tokenGuid ✓ Chave API do Movidesk.
idstring  256✓ Identificador único da chamada efetuada. Deve ser o mesmo que foi informado no método de chamada recebida. Obs.: Somente será possível relacionar um id único de chamada para um ticket. De tal forma que, não será possível associar um id repetido para um ticket.
branchLinestring 128✓ Ramal do agente para qual a chamada será transferida. Deve ser o mesmo que o método de chamada recebida retornou.
transferDatedatetime UTC ✓Data da transferência da chamada.  A data informada deve estar no formato yyyy-MM-ddThh:mm e em UTC*. 

  

Chamada finalizada

  URL:    /asterisk_completedCall
  Métodos: POST

 

PropriedadeTipoTamanhoObrigatórioDescrição
tokenGuid ✓ Chave API do Movidesk.
idstring  256✓ Identificador único da chamada efetuada. Deve ser o mesmo que foi informado no método de chamada recebida. Obs.: Somente será possível relacionar um id único de chamada para um ticket. De tal forma que, não será possível associar um id repetido para um ticket.
linkstring max Link com a gravação da chamada. O mesmo sera incluído na descrição da ação do ticket respectivo a ligação.
completedDatedatetime UTC ✓Data de finalização da chamada.  A data informada deve estar no formato yyyy-MM-ddThh:mm e em UTC*. 

  

Chamada perdida

  URL:    /asterisk_lostCall
  Métodos: POST

 

PropriedadeTipoTamanhoObrigatórioDescrição
tokenGuid ✓ Chave API do Movidesk.
idstring  256✓ Identificador único da chamada efetuada. Deve ser o mesmo que foi informado no método de chamada recebida. Obs.: Somente será possível relacionar um id único de chamada para um ticket. De tal forma que, não será possível associar um id repetido para um ticket.
linkstring max Link com a gravação do recado deixado pelo cliente. O mesmo sera incluído na descrição da ação do ticket respectivo a ligação.
completedDatedatetime UTC ✓Data de finalização da chamada.  A data informada deve estar no formato yyyy-MM-ddThh:mm e em UTC*. 

    

Chamada cancelada/abandonada

  URL:    /asterisk_canceledCall
  Métodos: POST

 

PropriedadeTipoTamanhoObrigatórioDescrição
tokenGuid ✓ Chave API do Movidesk.
idstring  256✓ Identificador único da chamada efetuada. Deve ser o mesmo que foi informado no método de chamada recebida. Obs.: Somente será possível relacionar um id único de chamada para um ticket. De tal forma que, não será possível associar um id repetido para um ticket.
canceledDatedatetime UTC ✓Data de cancelamento/abandono da chamada.  A data informada deve estar no formato yyyy-MM-ddThh:mm e em UTC*. 

 

Atualizar link da gravação da chamada

  URL:    /setMadeCallLink
  Métodos: POST

 

PropriedadeTipoTamanhoObrigatórioDescrição
tokenGuid ✓ Chave API do Movidesk.
idstring  256✓ Identificador único da chamada efetuada. Deve ser o mesmo que foi informado no método de chamada recebida. Obs.: Somente será possível relacionar um id único de chamada para um ticket. De tal forma que, não será possível associar um id repetido para um ticket.
Linkstring256  Link com a gravação da chamada. O mesmo será incluído na descrição da ação do ticket respectivo à ligação.

   *UTC: O Tempo Universal Coordenado (do inglês Universal Time Coordinated) é o fuso horário de referência a partir do qual se calculam todas as outras zonas horárias do mundo. Ex: Se o seu fuso horário for o de Brasília (UTC-03:00) e o horário atual for 15h30, o horário UTC será 18h30.

 

Trabalhando com os dados

Para ter acesso aos dados é necessário que previamente seja gerada uma chave para a API

Para gerar uma chave para a API (token), acesse ao Movidesk, vá em Configurações / Conta / Parâmetros e na guia ambiente clique no botão "Gerar nova chave" caso ainda não tenha uma criada.
Você poderá repetir essa operação sempre que quiser gerar uma nova chave de acesso, mas lembre-se que ao gerar uma nova chave, todos os programas que utilizarem a chave antiga irão parar de funcionar.

Fluxos que devem ser seguidos 

Cenário feliz 

 

Central recebe chamada telefônica ->  Central realiza chamada API para o método asterisk_receivedCall -> Movidesk retorna o ramal do agente que está disponível para atender a ligação -> Central transfere a ligação para o ramal e realiza chamada API para o método asterisk_transferedCall -> Movidesk abre automaticamente tela para controle da chamada telefônica para o agente para qual a chamada foi transferida -> Central identifica que a chamada foi finalizada e realizada chamada API para o método asterisk_completedCall -> Movidesk fecha automaticamente tela que estava aberta para o agente e realiza os trâmites necessários no ticket gerado/associado à ligação.

 

 Chamada recebida

POST: https://api.movidesk.com/public/v1/asterisk_receivedCall?
token=155cac97-f203-4bb8-86e1-aa4cb8781f3e&queueId=1&clientNumber=4733990777&id=3&callDate=2018-5-1T17:00:00

          Retorno: Status 200 com o ramal do agente disponível para atender a ligação ou código identificando porque a ligação não poderá ser transferida. Neste momento a chamada aparecerá no Movidesk na fila de chamadas aguardando atendimento. Sugerimos que, quando o código retornado for 3 ou 4, a central permaneça chamando o método asterisk_receivedCall até que seja retornado o ramal de algum agente. É necessário que ao receber o retorno com o ramal, seja validado pela central se aquele ramal realmente está disponível, pois pode ser que o próprio agente tenha originado uma ligação e o Movidesk não terá controle sobre isso. Se a central considerar que o ramal não está disponível, deve ser realizada outra chamada para o asterisk_receivedCall, que sempre retorna ramais diferentes seguindo a ordem estabelecida dentro do Movidesk. Se a central considerar a chamada como perdida, deve ser chamado o método asterisk_lostCall.

         Identificação dos códigos:

         0 = É feriado;

         1 = Fora do horário de atendimento;

         2 = Nenhum agente do grupo está online no Movidesk;

         3 = Nenhum agente do grupo está online na telefonia;

         4 = Todos os agentes do grupo estao em ligacao.

 

Chamada transferida

POST: https://api.movidesk.com/public/v1/asterisk_transferedCall?
token=155cac97-f203-4bb8-86e1-aa4cb8781f3e&id=3&branchLine=5252&transferDate=2018-5-1T17:02:00

          Retorno: Status 200. Nesse momento a chamada aparecerá no Movidesk na fila de chamadas em andamento e a tela para controle de chamada aparecerá automaticamente para o agente com o ramal informado (no exemplo, 5252).

 

Chamada finalizada

POST: https://api.movidesk.com/public/v1/asterisk_completedCall?
token=155cac97-f203-4bb8-86e1-aa4cb8781f3e&id=3&link=https://www.linkdagravacaodachamada.com.br&completedDate=2018-5-1T17:20:00

          Retorno: Status 200. Nesse momento a chamada sairá das filas do Movidesk e a tela para controle de chamada será fechada automaticamente. Será adicionada a ação com a gravação da chamada no ticket referente a ligação.

 

Cenários alternativos 

  1. Central recebe chamada telefônica -> Central realiza chamada API para o método asterisk_receivedCall -> Movidesk retorna o código 0 ou 1 ou 2 -> Central considera como chamada perdida, solicita ao cliente que deixe um recado e realiza chamada API para o método asterisk_lostCall -> Movidesk gera ticket automaticamente com origem de chamada perdida e gera ação no ticket com descrição da chamada e link para ouvir a gravação do recado deixado pelo cliente.
  2. Central recebe chamada telefônica -> Central realiza chamada API para o método asterisk_receivedCall -> Movidesk retorna o código 3 ou 4 -> Central considera que todos os agentes estão ocupados, mas continua realizando requisições para asterisk_receivedCall até que o Movidesk retorne o ramal do agente que está disponível para atender a ligação  -> Central transfere a ligação para o ramal e realiza chamada API para o método asterisk_transferedCall -> Movidesk abre automaticamente tela para controle da chamada telefônica para o agente para qual a chamada foi transferida -> Central identifica que a chamada foi finalizada e realizada chamada API para o método asterisk_completedCall -> Movidesk fecha automaticamente tela que estava aberta para o agente e realiza os trâmites necessários no ticket gerado/associado à ligação.
  3. Central recebe chamada telefônica -> Central realiza chamada API para o método asterisk_receivedCall -> Movidesk retorna o código 3 ou 4 -> Central considera que todos os agentes estão ocupados, mas continua realizando requisições para asterisk_receivedCall até que o cliente canse de esperar e abandone a ligação -> Central considera como chamada cancelada/abandonada e realiza chamada API para o método asterisk_canceledCall -> Movidesk gera ticket automaticamente com origem de chamada cancelada e gera ação no ticket com descrição da chamada.
  4. Central recebe chamada telefônica -> Central realiza chamada API para o método asterisk_receivedCall -> Movidesk retorna o ramal do agente que está disponível para atender a ligação -> Central verifica que aquele ramal não está disponível (por exemplo: o próprio agente originou uma chamada, ou o agente recebeu uma chamada interna, ou o agente está com o telefone fora do gancho) -> Central realiza novamente chamada API para o método asterisk_receivedCall até que receba um ramal válido (cenário feliz ou cenário alternativo 2) ou que considere a chamada como perdida (cenário alternativo 1) ou cancelada (cenário alternativo 3). 

 

Chamada perdida

POST: https://api.movidesk.com/public/v1/asterisk_lostCall?
token=155cac97-f203-4bb8-86e1-aa4cb8781f3e&id=3&link=https://www.linkdagravacaodarecado.com.br&completedDate=2018-5-1T17:20:00

          Retorno: Status 200. Esse método deve ser chamado quando o método asterisk_receivedCall retornar os códigos 0, 1 e 2 ou após várias tentativas e o método asterisk_receivedCall continuar retornando os códigos 3 e 4. Nesse caso será gerado automaticamente um ticket com origem chamada perdida e com uma ação contendo as respectivas informações.

 

Chamada cancelada/abandonada

POST: https://api.movidesk.com/public/v1/asterisk_canceledCall?
token=155cac97-f203-4bb8-86e1-aa4cb8781f3e&id=3&canceledDate=2018-5-1T17:20:00

          Retorno: Status 200. Esse método deve ser chamado após o método asterisk_receivedCall e antes do método asterisk_transferedCall, ou seja, quando o cliente cancelar/abandonar a chamada antes de ela ser de fato transferida para o agente. Nesse caso será gerado automaticamente um ticket com origem chamada cancelada e com uma ação contendo as respectivas informações. 


Exemplo de código fonte na linguagem C# da chamada da API 

Método POST

try
{ 

   var response = await SendAsync("https://api.movidesk.com/public/v1/asterisk_receivedCall?
                                   token=SEUTOKEN&queueId=1&clientNumber=4733990777&id=3&callDate=2018-5-1T17:00:00",
                                   NULL, "POST", "application/json");
 
}
catch (WebException ex)
{
 var response = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
}

public static async Task<string> SendAsync(string uri, string content, string method, string contentType)
{
 var req = WebRequest.Create(uri);
 req.ContentType = contentType;
 req.Method = method;

 using (var stream = await req.GetRequestStreamAsync())
 using (var streamWriter = new StreamWriter(stream))
 {
    await streamWriter.WriteAsync(content);
 }

 var httpResponse = (HttpWebResponse)await req.GetResponseAsync();
 using (var stream = httpResponse.GetResponseStream())
 {
   if (stream == null)
   return null;

   using (var streamReader = new StreamReader(stream))
   { 
     return await streamReader.ReadToEndAsync();
   }
 }
}

          Os retornos são detalhados na variável response e devem ser tratados seguindo essa documentação.