Por que usar webhooks?
Os webhooks fazem com que os resultados cheguem até você, em vez de você ter que pedi-los repetidamente. Em vez de consultar um endpoint GET até que uma busca termine, a Enrow envia cada resultado para o seu servidor no momento em que ele está pronto — economizando requisições, reduzindo a latência e mantendo seu código simples. Pare de desperdiçar requisições — deixe os resultados chegarem até você. Como todos os endpoints da Enrow são assíncronos, os webhooks são a forma recomendada de receber resultados em Email Finder, Email Verifier e Phone Finder. Os webhooks também ignoram completamente os limites de taxa, já que é a Enrow quem chama você, e não o contrário.Como funciona um fluxo de webhook?
Um fluxo de webhook transforma uma única requisição de busca em uma entrega automática. Você diz à Enrow para onde enviar os resultados, e a Enrow faz o resto:- Você faz um POST de uma requisição de busca com uma URL de
webhooknassettings - A Enrow retorna um ID de busca imediatamente
- A Enrow processa a busca em segundo plano
- Quando concluída, a Enrow faz um POST dos resultados para a sua URL de webhook
Como configuro um webhook?
Você pode registrar um webhook de duas maneiras, dependendo se deseja usá-lo para uma busca ou para todas as buscas:- Por requisição: Inclua uma URL de
webhookno objetosettingsde qualquer chamada de API - Global: Defina um webhook padrão na página API do painel. A Enrow verifica a URL quando você a salva: consulte Como verifico meu endpoint de webhook?
webhook, o que acontece com o webhook padrão depende do endpoint:
- Email Finder: a Enrow notifica as duas URLs (uma única vez se forem iguais)
- Phone Finder e Email Verifier: a URL por requisição substitui a URL padrão
Como verifico meu endpoint de webhook?
Quando você salva uma nova URL de webhook padrão na página API, a Enrow envia antes uma única requisição de verificação a essa URL para confirmar que você controla o endpoint. A URL só é salva se o seu endpoint responder corretamente a essa requisição. A Enrow envia uma requisiçãoPOST com este corpo JSON:
2xx e devolver o mesmo valor de challenge, seja como corpo bruto da resposta, seja em JSON:
2xx, um challenge que não corresponde, uma URL inacessível ou um endereço privado ou interno) e o seu webhook atual continua ativo. Um webhook passado nas settings de uma requisição não é verificado dessa forma.
Quais eventos disparam uma chamada de webhook?
Seis tipos de eventos podem disparar uma chamada de webhook, um por endpoint e tipo de busca:Como é o payload de um webhook?
O payload do webhook depende do endpoint e de a busca ser individual ou em massa. Buscas individuais entregam o resultado completo diretamente, enquanto buscas em massa entregam uma notificação de conclusão que você complementa com uma requisição GET.Email Finder — Individual
Para buscas individuais, você recebe o resultado completo diretamente na notificação do webhook. Isso elimina a necessidade de fazer uma requisição GET.Busca a partir da URL de um perfil do LinkedIn
Em uma busca iniciada a partir da URL de um perfil do LinkedIn,result também traz linkedin_status e linkedin_url (a URL que você enviou). info só é incluído quando um email é encontrado: uma busca que não encontra nada nunca revela quem é a pessoa. credits.cost é o custo final, como credits_used na resposta do GET, que também explica cada linkedin_status.
Email Finder — Em massa
Para buscas em massa, você recebe uma notificação de que o lote foi concluído. Em seguida, chame o endpoint GET /email/find/bulk com oid para recuperar os resultados.
Email Verifier — Individual
O resultado completo é incluído diretamente — não é necessária uma requisição GET.Email Verifier — Em massa
Esta é apenas uma notificação. Chame GET /email/verify/bulk com oid para recuperar os resultados.
Phone Finder — Individual
O resultado completo é incluído diretamente — não é necessária uma requisição GET.Phone Finder — Em massa
Esta é apenas uma notificação. Chame GET /phone/bulk com oid para recuperar os resultados.
Qual a diferença entre webhooks individuais e em massa?
Os webhooks de busca individual contêm o resultado completo, então nenhuma chamada extra é necessária. Os webhooks de busca em massa apenas sinalizam que o lote foi concluído — em seguida, você busca os resultados com o endpoint GET correspondente.Para buscas individuais, o webhook contém tudo o que você precisa. Para buscas em massa, o webhook informa que o lote foi concluído — então você busca os resultados.
Quais são as boas práticas para endpoints de webhook?
Um endpoint de webhook confiável responde rapidamente, usa HTTPS e tolera duplicatas ocasionais. Siga estas práticas para manter as entregas confiáveis:Retorne 200 rapidamente
Retorne 200 rapidamente
Processe os payloads de webhook de forma assíncrona. Retorne um
200 imediatamente e, em seguida, trate os dados em uma tarefa em segundo plano.Use HTTPS
Use HTTPS
Use um endpoint HTTPS para que os resultados trafeguem criptografados. URLs HTTP simples são aceitas, mas não recomendadas.
Trate duplicatas
Trate duplicatas
Em casos raros, os webhooks podem ser entregues mais de uma vez. Use o campo
id para fazer a deduplicação.Use campos personalizados
Use campos personalizados
Passe dados em O campo
custom nas suas requisições para identificar a qual registro pertence o resultado de um webhook:custom é retornado inalterado no payload do webhook.Devo usar webhooks ou polling?
Use webhooks em produção e polling apenas para prototipagem rápida ou depuração. Os webhooks entregam resultados em tempo real sem consumir sua cota de requisições, enquanto o polling faz chamadas GET repetidas que contam para os seus limites de taxa.Recomendamos webhooks para uso em produção. Use polling apenas para prototipagem rápida ou depuração.
FAQ
Os webhooks custam créditos extras?
Os webhooks custam créditos extras?
Não. Os webhooks não consomem créditos adicionais: você paga apenas pela busca em si. Os payloads do Email Finder e do Email Verifier informam o custo em créditos no campo
credits.cost. É o custo final, já com os reembolsos: 0 para uma busca individual sem resultado (0.25 para uma busca de email a partir da URL de um perfil do LinkedIn ou para uma conta com taxa de sucesso anormalmente baixa) e, para uma busca em massa, as linhas encontradas mais as falhas cobradas. Os payloads do Phone Finder não incluem o custo. Consulte Créditos e cobrança para ver os custos por endpoint.O que acontece se meu endpoint não retornar um 200?
O que acontece se meu endpoint não retornar um 200?
A Enrow envia cada notificação uma única vez. Se o seu servidor estiver inacessível ou responder com um status diferente de
2xx, a entrega falha e não é repetida. Você sempre pode recuperar os resultados consultando o endpoint GET correspondente com o id da busca.Como faço para associar um webhook à requisição original?
Como faço para associar um webhook à requisição original?
Use o
id da resposta da busca ou passe um objeto custom na sua requisição — ele é retornado inalterado no payload do webhook, para que você possa mapear os resultados de volta aos seus próprios registros, como o ID de um lead no CRM.Por que não recebi um webhook?
Por que não recebi um webhook?
As causas mais comuns são um endpoint que não retorna
2xx, um servidor que atinge o tempo limite ou uma URL que não está acessível publicamente. As entregas que falham não são repetidas: recupere o resultado com o endpoint GET correspondente e o id da busca. Para uma solução de problemas mais ampla, consulte Tratamento de erros e Códigos de status.Próximos passos
Encontrar um e-mail
Passe uma URL de webhook nas settings para receber o resultado automaticamente.
Obter resultados em massa
Busque os resultados do lote após o disparo de um webhook bulk_search_finished.
Autenticação
Como passar sua chave de API no cabeçalho x-api-key.
Limites de taxa
Veja por que os webhooks evitam a cota de requisições que o polling consome.

