Skip to main content

Pourquoi utiliser les webhooks ?

Les webhooks font venir les résultats à vous au lieu de vous obliger à les demander sans cesse. Plutôt que d’interroger en boucle un endpoint GET jusqu’à la fin d’une recherche, Enrow envoie chaque résultat à votre serveur dès qu’il est prêt, ce qui économise des requêtes, réduit la latence et garde votre code simple. Arrêtez de gaspiller des requêtes : laissez les résultats venir à vous. Comme chaque endpoint Enrow est asynchrone, les webhooks sont le moyen recommandé pour recevoir les résultats sur Email Finder, Email Verifier et Phone Finder. Les webhooks contournent également entièrement les limites de débit, puisque c’est Enrow qui vous appelle et non l’inverse.

Comment fonctionne un flux de webhook ?

Un flux de webhook transforme une simple requête de recherche en une livraison automatique. Vous indiquez à Enrow où envoyer les résultats, et Enrow se charge du reste :
  1. Vous envoyez en POST une requête de recherche avec une URL webhook dans les settings
  2. Enrow renvoie immédiatement un ID de recherche
  3. Enrow traite la recherche en arrière-plan
  4. Une fois terminée, Enrow envoie en POST les résultats vers l’URL de votre webhook

Comment configurer un webhook ?

Vous pouvez enregistrer un webhook de deux manières, selon que vous le souhaitez pour une seule recherche ou pour toutes les recherches :
  1. Par requête : incluez une URL webhook dans l’objet settings de n’importe quel appel d’API
  2. Globale : définissez un webhook par défaut sur la page API du tableau de bord. Enrow vérifie l’URL au moment où vous l’enregistrez : consultez Comment vérifier mon endpoint de webhook ?
Lorsqu’une requête inclut son propre webhook, ce qu’il advient du webhook par défaut dépend de l’endpoint :
  • Email Finder : Enrow notifie les deux URL (une seule fois si elles sont identiques)
  • Phone Finder et Email Verifier : l’URL de la requête remplace celle par défaut
Votre endpoint de webhook doit être accessible publiquement et renvoyer un code de statut 2xx. Utilisez HTTPS : les URL en HTTP simple sont acceptées, mais déconseillées. Enrow envoie chaque notification une seule fois et ne relance pas une livraison échouée : vous pouvez toujours vous rabattre sur l’endpoint GET correspondant.

Comment vérifier mon endpoint de webhook ?

Lorsque vous enregistrez une nouvelle URL de webhook par défaut sur la page API, Enrow lui envoie d’abord une requête de vérification ponctuelle pour confirmer que vous contrôlez l’endpoint. L’URL n’est enregistrée que si votre endpoint y répond correctement. Enrow envoie une requête POST avec ce corps JSON :
Votre endpoint doit répondre dans les 5 secondes avec un code de statut 2xx et renvoyer la même valeur challenge, soit telle quelle dans le corps de la réponse, soit en JSON :
Par exemple, avec Node.js et Express :
Si la vérification échoue, l’application en indique la raison (pas de réponse dans les 5 secondes, un statut autre que 2xx, un challenge qui ne correspond pas, une URL injoignable, ou une adresse privée ou interne) et votre webhook actuel reste actif. Un webhook transmis dans les settings d’une requête n’est pas vérifié de cette façon.

Quels événements déclenchent un appel de webhook ?

Six types d’événements peuvent déclencher un appel de webhook, un par endpoint et par type de recherche :

À quoi ressemble une charge utile de webhook ?

La charge utile du webhook dépend de l’endpoint et du caractère unique ou en masse de la recherche. Les recherches uniques livrent directement le résultat complet, tandis que les recherches en masse livrent une notification d’achèvement que vous complétez par une requête GET.

Email Finder — Unique

Pour les recherches uniques, vous recevez le résultat complet directement dans la notification du webhook. Cela évite d’avoir à effectuer une requête GET.

Recherche par URL de profil LinkedIn

Pour une recherche lancée à partir d’une URL de profil LinkedIn, result contient aussi linkedin_status et linkedin_url (l’URL que vous avez envoyée). info n’est inclus que si un e-mail est trouvé : une recherche qui ne trouve rien ne nomme jamais la personne. credits.cost est le coût final, comme credits_used dans la réponse GET, qui explique aussi chaque linkedin_status.

Email Finder — En masse

Pour les recherches en masse, vous recevez une notification indiquant que le lot est terminé. Appelez ensuite l’endpoint GET /email/find/bulk avec l’id pour récupérer les résultats.

Email Verifier — Unique

Le résultat complet est inclus directement, aucune requête GET n’est nécessaire.

Email Verifier — En masse

Il s’agit uniquement d’une notification. Appelez GET /email/verify/bulk avec l’id pour récupérer les résultats.

Phone Finder — Unique

Le résultat complet est inclus directement, aucune requête GET n’est nécessaire.

Phone Finder — En masse

Il s’agit uniquement d’une notification. Appelez GET /phone/bulk avec l’id pour récupérer les résultats.

Quelle différence entre les webhooks uniques et en masse ?

Les webhooks de recherche unique contiennent le résultat complet, aucun appel supplémentaire n’est donc nécessaire. Les webhooks de recherche en masse signalent uniquement que le lot est terminé : vous récupérez ensuite les résultats avec l’endpoint GET correspondant.
Pour les recherches uniques, le webhook contient tout ce dont vous avez besoin. Pour les recherches en masse, le webhook vous indique que le lot est terminé, puis vous récupérez les résultats.

Quelles sont les bonnes pratiques pour les endpoints de webhook ?

Un endpoint de webhook fiable répond rapidement, utilise HTTPS et tolère les doublons occasionnels. Suivez ces pratiques pour garder des livraisons fiables :
Traitez les charges utiles des webhooks de manière asynchrone. Renvoyez immédiatement un 200, puis traitez les données dans une tâche en arrière-plan.
Utilisez un endpoint HTTPS pour que les résultats circulent chiffrés. Les URL en HTTP simple sont acceptées, mais déconseillées.
Dans de rares cas, les webhooks peuvent être livrés plus d’une fois. Utilisez le champ id pour dédupliquer.
Transmettez des données custom dans vos requêtes pour identifier l’enregistrement auquel correspond un résultat de webhook :
Le champ custom est renvoyé tel quel dans la charge utile du webhook.

Faut-il utiliser les webhooks ou le polling ?

Utilisez les webhooks en production et le polling uniquement pour du prototypage rapide ou du débogage. Les webhooks livrent les résultats en temps réel sans consommer votre quota de requêtes, tandis que le polling effectue des appels GET répétés qui sont décomptés de vos limites de débit.
Nous recommandons les webhooks pour une utilisation en production. N’utilisez le polling que pour le prototypage rapide ou le débogage.

FAQ

Non. Les webhooks ne consomment pas de crédits supplémentaires : vous ne payez que pour la recherche elle-même. Les charges utiles Email Finder et Email Verifier indiquent le coût en crédits dans le champ credits.cost. C’est le coût final, remboursements faits : 0 pour une recherche unitaire qui n’a rien trouvé (0.25 pour une recherche d’email à partir d’une URL de profil LinkedIn ou pour un compte au taux de succès anormalement bas) et, pour une recherche groupée, les lignes trouvées plus les échecs débités. Les charges utiles Phone Finder n’incluent pas le coût. Consultez Crédits et facturation pour connaître les coûts par endpoint.
Enrow envoie chaque notification une seule fois. Si votre serveur est injoignable ou répond avec un statut autre que 2xx, la livraison échoue et n’est pas relancée. Vous pouvez toujours récupérer les résultats en interrogeant l’endpoint GET concerné avec l’id de la recherche.
Utilisez l’id de la réponse de recherche, ou transmettez un objet custom dans votre requête : il est renvoyé tel quel dans la charge utile du webhook, ce qui vous permet de relier les résultats à vos propres enregistrements, comme un identifiant de lead CRM.
Les causes les plus fréquentes sont un endpoint qui ne renvoie pas 2xx, un serveur qui expire, ou une URL qui n’est pas accessible publiquement. Les livraisons échouées ne sont pas relancées : récupérez le résultat avec l’endpoint GET correspondant et l’id de la recherche. Pour un dépannage plus approfondi, consultez Gestion des erreurs et Codes de statut.

Étapes suivantes

Trouver un e-mail

Transmettez une URL de webhook dans les settings pour recevoir le résultat automatiquement.

Récupérer des résultats en masse

Récupérez les résultats du lot après le déclenchement d’un webhook bulk_search_finished.

Authentification

Comment transmettre votre clé API dans l’en-tête x-api-key.

Limites de débit

Découvrez pourquoi les webhooks évitent le quota de requêtes que le polling consomme.