Skip to main content

¿Por qué usar webhooks?

Los webhooks permiten que los resultados lleguen a ti en lugar de tener que pedirlos una y otra vez. En vez de consultar un endpoint GET hasta que una búsqueda termine, Enrow envía cada resultado a tu servidor en el momento en que está listo, lo que ahorra solicitudes, reduce la latencia y mantiene tu código simple. Deja de desperdiciar solicitudes: que los resultados lleguen a ti. Como cada endpoint de Enrow es asíncrono, los webhooks son la forma recomendada de recibir resultados en Email Finder, Email Verifier y Phone Finder. Los webhooks también evitan por completo los límites de tasa, ya que es Enrow quien te llama y no al revés.

¿Cómo funciona un flujo de webhook?

Un flujo de webhook convierte una sola solicitud de búsqueda en una entrega automática. Le indicas a Enrow dónde enviar los resultados y Enrow hace el resto:
  1. Haces un POST con una solicitud de búsqueda que incluye una URL de webhook en los settings
  2. Enrow devuelve un ID de búsqueda de inmediato
  3. Enrow procesa la búsqueda en segundo plano
  4. Cuando termina, Enrow envía los resultados mediante POST a tu URL de webhook

¿Cómo configuro un webhook?

Puedes registrar un webhook de dos maneras, según si lo quieres para una búsqueda o para todas:
  1. Por solicitud: Incluye una URL de webhook en el objeto settings de cualquier llamada a la API
  2. Global: Configura un webhook predeterminado en la página de API del panel. Enrow comprueba la URL al guardarla: consulta ¿Cómo verifico mi endpoint de webhook?
Cuando una solicitud incluye su propio webhook, lo que ocurre con el predeterminado depende del endpoint:
  • Email Finder: Enrow notifica a ambas URLs (una sola vez si son la misma)
  • Phone Finder y Email Verifier: la URL por solicitud reemplaza a la predeterminada
Tu endpoint de webhook debe ser accesible públicamente y devolver un código de estado 2xx. Usa HTTPS: las URLs en HTTP simple se aceptan, pero no se recomiendan. Enrow envía cada notificación una sola vez y no reintenta una entrega fallida, pero siempre puedes recurrir al endpoint GET correspondiente.

¿Cómo verifico mi endpoint de webhook?

Cuando guardas una nueva URL de webhook predeterminada en la página de API, Enrow primero le envía una solicitud de verificación única para confirmar que controlas el endpoint. La URL solo se guarda si tu endpoint responde correctamente a esa solicitud. Enrow envía una solicitud POST con este cuerpo JSON:
Tu endpoint debe responder en menos de 5 segundos con un código de estado 2xx y devolver el mismo valor de challenge, ya sea como cuerpo de la respuesta en bruto o en JSON:
Por ejemplo, con Node.js y Express:
Si la comprobación falla, la aplicación muestra el motivo (sin respuesta en 5 segundos, un estado distinto de 2xx, un challenge que no coincide, una URL inaccesible o una dirección privada o interna) y tu webhook actual sigue activo. Un webhook pasado en los settings de una solicitud no se comprueba de esta manera.

¿Qué eventos activan una llamada de webhook?

Seis tipos de eventos pueden activar una llamada de webhook, uno por endpoint y tipo de búsqueda:

¿Qué aspecto tiene un payload de webhook?

El payload del webhook depende del endpoint y de si la búsqueda fue individual o masiva. Las búsquedas individuales entregan el resultado completo directamente, mientras que las búsquedas masivas entregan una notificación de finalización que debes complementar con una solicitud GET.

Email Finder — Individual

En las búsquedas individuales, recibes el resultado completo directamente en la notificación del webhook. Esto elimina la necesidad de realizar una solicitud GET.

Búsqueda a partir de una URL de perfil de LinkedIn

En una búsqueda lanzada a partir de una URL de perfil de LinkedIn, result incluye además linkedin_status y linkedin_url (la URL que enviaste). info solo se incluye si se encuentra un email: una búsqueda sin resultado nunca nombra a la persona. credits.cost es el costo final, como credits_used en la respuesta GET, que también explica cada linkedin_status.

Email Finder — Masivo

En las búsquedas masivas, recibes una notificación de que el lote ha finalizado. Luego llama al endpoint GET /email/find/bulk con el id para recuperar los resultados.

Email Verifier — Individual

El resultado completo se incluye directamente: no se necesita ninguna solicitud GET.

Email Verifier — Masivo

Esto es solo una notificación. Llama a GET /email/verify/bulk con el id para recuperar los resultados.

Phone Finder — Individual

El resultado completo se incluye directamente: no se necesita ninguna solicitud GET.

Phone Finder — Masivo

Esto es solo una notificación. Llama a GET /phone/bulk con el id para recuperar los resultados.

¿En qué se diferencian los webhooks individuales y masivos?

Los webhooks de búsqueda individual contienen el resultado completo, por lo que no se necesita ninguna llamada adicional. Los webhooks de búsqueda masiva solo indican que el lote ha terminado: luego recuperas los resultados con el endpoint GET correspondiente.
En las búsquedas individuales, el webhook contiene todo lo que necesitas. En las búsquedas masivas, el webhook te indica que el lote ha terminado y luego recuperas los resultados.

¿Cuáles son las mejores prácticas para los endpoints de webhook?

Un endpoint de webhook fiable responde rápido, usa HTTPS y tolera algún duplicado ocasional. Sigue estas prácticas para que las entregas sean confiables:
Procesa los payloads de los webhooks de forma asíncrona. Devuelve un 200 de inmediato y luego maneja los datos en una tarea en segundo plano.
Usa un endpoint HTTPS para que los resultados viajen cifrados. Las URLs en HTTP simple se aceptan, pero no se recomiendan.
En casos poco frecuentes, los webhooks pueden entregarse más de una vez. Usa el campo id para eliminar duplicados.
Pasa datos en custom en tus solicitudes para identificar a qué registro pertenece el resultado de un webhook:
El campo custom se devuelve tal cual en el payload del webhook.

¿Debo usar webhooks o polling?

Usa webhooks en producción y polling solo para prototipado rápido o depuración. Los webhooks entregan resultados en tiempo real sin consumir tu cuota de solicitudes, mientras que el polling realiza llamadas GET repetidas que cuentan para tus límites de tasa.
Recomendamos los webhooks para uso en producción. Usa polling solo para prototipado rápido o depuración.

FAQ

No. Los webhooks no consumen créditos adicionales: solo pagas por la búsqueda en sí. En los payloads de Email Finder y Email Verifier, el costo en créditos se informa en el campo credits.cost. Es el costo final, una vez aplicados los reembolsos: 0 para una búsqueda individual sin resultado (0.25 para una búsqueda de email a partir de una URL de perfil de LinkedIn o para una cuenta con una tasa de éxito anormalmente baja) y, para una búsqueda masiva, las filas encontradas más los fallos cobrados. Los payloads de Phone Finder no incluyen el costo. Consulta Créditos y facturación para ver los costos por endpoint.
Enrow envía cada notificación una sola vez. Si tu servidor es inaccesible o responde con un estado distinto de 2xx, la entrega falla y no se reintenta. Siempre puedes recuperar los resultados consultando el endpoint GET correspondiente con el id de la búsqueda.
Usa el id de la respuesta de búsqueda, o pasa un objeto custom en tu solicitud: se devuelve tal cual en el payload del webhook para que puedas mapear los resultados con tus propios registros, como el ID de un lead de tu CRM.
Las causas más comunes son un endpoint que no devuelve 2xx, un servidor que agota el tiempo de espera o una URL que no es accesible públicamente. Las entregas fallidas no se reintentan: recupera el resultado con el endpoint GET correspondiente y el id de la búsqueda. Para una resolución de problemas más amplia, consulta Manejo de errores y Códigos de estado.

Próximos pasos

Buscar un email

Pasa una URL de webhook en settings para recibir el resultado de forma automática.

Obtener resultados masivos

Recupera los resultados del lote después de que se dispare un webhook bulk_search_finished.

Autenticación

Cómo pasar tu clave de API en la cabecera x-api-key.

Límites de tasa

Descubre por qué los webhooks evitan la cuota de solicitudes que consume el polling.