Necessito vincular as mensagens de threads aos seus devidos tickets mas estou confuso como fazer isso, eu tentei usar o end point /tickets/ID_TICKET/messages mas ele não parece estar funcionando o skip, não consigo paginar.
Necessito vincular as mensagens de threads aos seus devidos tickets mas estou confuso como fazer isso, eu tentei usar o end point /tickets/ID_TICKET/messages mas ele não parece estar funcionando o skip, não consigo paginar.
Olá
Esse end point só pega o histórico de um ticket você esta juntando tickets de um mesmo contato ?
Poderia no enviar a request de como está fazendo isso ?
Necessito vincular as mensagens de threads aos seus devidos tickets mas estou confuso como fazer isso, eu tentei usar o end point /tickets/ID_TICKET/messages mas ele não parece estar funcionando o skip, não consigo paginar.
Olá
Esse end point só pega o histórico de um ticket você esta juntando tickets de um mesmo contato ?
Poderia no enviar a request de como está fazendo isso ?
Sim, são do mesmo contato, estou tentando pegar as mensagens no threads que estejam no intervalo de abertura e fechamento do ticket para aquele usuário para fazer o vínculo entre mensagens da thread e o ticket, porém o filtro de data não funciona, e como o endpoint da thread não tem skip se o ticket tiver mais de 100 mensagens acho que não conseguiria paginar
"/threads/<USER_IDENTITY>@wa.gw.msging.net?$take=100&filter=(lastmessagedate%20ge%20datetimeoffset'2024-09-11T00%3A11%3A53'%20and%20lastmessagedate%20le%20datetimeoffset'2024-09-12T18%3A11%3A56')"
@Roger Amaro a parâmetro skip realmente não funciona nesse endpoint.
Você pode paginar por Data ou/e ID de mensagem.
Ex
{
"id": "IDALEATORIO",
"method": "get",
"uri": "/threads/[email protected]?refreshExpiredMedia=false&$take=100"
}
1 - Percorra o retorno dessa requisição até a última mensagem, capture a data
"date": "2024-09-09T14:31:28.719Z",
2 - em seguida faça outra requisição passando a data na URI no parâmetro “storageDate”
{
"id": "IDALEATORIO",
"method": "get",
"uri": "/threads/[email protected]?refreshExpiredMedia=false&$take=100&storageDate=2024-09-09T14:31:28.719Z"
}
Faça esse looping de paginação até as threads finalizar
Também é possível usar essa mesma paginação com o parâmetro ‘messageId’ passando o id da mensagem no parametro
{
"id": "IDALEATORIO",
"method": "get",
"uri": "/threads/[email protected]?refreshExpiredMedia=false&$take=100&messageId=917e579e-9931-4079-8a8f-aa4f0db1be77"
}
Olhando sua necessidade, verifica esse endpoint abaixo, ele filtra apenas as mensagens trocadas dentro do ticket
{
"id": "{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "/tickets/{ticketId}/messages?attendanceTranscriptionOnly=true&getFromOwnerIfTunnel=true"
}
Olhando sua necessidade, verifica esse endpoint abaixo, ele filtra apenas as mensagens trocadas dentro do ticket
{
"id": "{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "/tickets/{ticketId}/messages?attendanceTranscriptionOnly=true&getFromOwnerIfTunnel=true"
}
pensei nesse endpoint, mas ela só retorna 100 e o a paginação não funciona, se o ticket tiver mais de 100 mensagens eu não consigo recuperar.
Olhando sua necessidade, verifica esse endpoint abaixo, ele filtra apenas as mensagens trocadas dentro do ticket
{
"id": "{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "/tickets/{ticketId}/messages?attendanceTranscriptionOnly=true&getFromOwnerIfTunnel=true"
}
pensei nesse endpoint, mas ela só retorna 100 e o a paginação não funciona, se o ticket tiver mais de 100 mensagens eu não consigo recuperar.
Acho que está se confundindo, essa chamada não tem na documentação, ela foi criado depois e o bacana é que pega todas as mensagens sem ficar limitado a 100, ou seja, sem precisar paginar. Fiz um teste passando de 100 mensagens e olha o retorno na API
Olhando sua necessidade, verifica esse endpoint abaixo, ele filtra apenas as mensagens trocadas dentro do ticket
{
"id": "{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "/tickets/{ticketId}/messages?attendanceTranscriptionOnly=true&getFromOwnerIfTunnel=true"
}
pensei nesse endpoint, mas ela só retorna 100 e o a paginação não funciona, se o ticket tiver mais de 100 mensagens eu não consigo recuperar.
Acho que está se confundindo, essa chamada não tem na documentação, ela foi criado depois e o bacana é que pega todas as mensagens sem ficar limitado a 100, ou seja, sem precisar paginar. Fiz um teste passando de 100 mensagens e olha o retorno na API
oque o attendanceTranscriptionOnly=true faz? não encontrei na documentação, tem casos que uso este parâmetro e não retorna nada, a para o mesmo ticket sem o parâmetro me retorna mensagens
attendanceTranscriptionOnly=true é um parâmetro que foi construído para resolver um problema que a API de tickets tem, resolve a paginação e mensagens que vinham a mais.
Comente
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.