Pegar todos os contatos

Olá pessoal!
Existe alguma maneira de resgatar todos os contatos de um bot via api? Hoje para fazer isso estou usando /contacts?$skip=0$take=99999999 e acredito não ser a melhor prática :sweat_smile:

Oi @Mateus_Henrique,

Na verdade para coletar todos os contatos via API eu recomendo tu usar a URI “/contacts” como o exemplo abaixo;

{
“id”: “someId123”,
“method”: “get”,
“uri”: “/contacts”
}

Assim ele já vai trazer todos os contatos da base de contatos do BOT que tenha o token de acesso que você passou.

Porém dependendo do tipo de pesquisa que você quer fazer, talvez valha a pena utilizar os filtros da URI para trazer somente os resultados que fazem sentido para você, tem essa documentação do Blip que me ajudou (https://docs.blip.ai/#get-contacts-with-paging)

Único ponto de atenção, server basicamente só para os campos que já existem no contato, campos customizados do extras não consegui fazer funcionar e via chamado no suporte também fui informado que não dava, uma pena.

Segue um exemplo de filtro por URI:

{
“id”: “otherId123”,
“method”: “get”,
“uri”: “/contacts?$skip=0&$take=20&$filter=(substringof(‘thiago.alberto’%2Cemail))”
}

Esse filtro vai trazer os 20 primeiros resultados que tiverem ‘thiago.alberto’ no e-mail.

Espero ter ajudado

Olá @Thiago_Alberto_da_Si
Eu testei isso de usar só /contacts mas só retornaram os primeiros 100 contatos… acho que a api está paginada

Oi @Mateus_Henrique

Eu fiz um teste aqui com somente só /contacts e voltou no total de 164605 contatos,
Porém só 833 linhas de JSON então acho que só trouxe os 100 primeiro contatos mesmo.

Você então consegue fazer em duas etapas para deixar modular.
Um primeira requisição somente no /contacts então você cria uma ação (script JS) que retira o campo total

function run(resultadoDoHTTPRequest) {
    var data = JSON.parse(resultadoDoHTTPRequest)
    return data.resource.total
}

Com o retorno dessa função salvo em uma variável, por exemplo chamada totalDeContatos, ai você faz a chamada usando /contacts?$skip=0$take="{{totalDeContatos}}"

Top!!
Isso resolve, valeu pela dica!

1 Curtida

Este tópico foi fechado automaticamente 7 dias depois da úlima resposta. Novas respostas não são mais permitidas.