Skip to main content

Waarom webhooks gebruiken?

Met webhooks komen resultaten naar je toe in plaats van dat je er steeds opnieuw om vraagt. In plaats van een GET-endpoint te pollen totdat een zoekopdracht klaar is, stuurt Enrow elk resultaat naar je server op het moment dat het beschikbaar is — dat bespaart verzoeken, verlaagt de latentie en houdt je code eenvoudig. Stop met het verspillen van verzoeken — laat de resultaten naar je toe komen. Omdat elk Enrow-endpoint asynchroon is, zijn webhooks de aanbevolen manier om resultaten te ontvangen voor Email Finder, Email Verifier en Phone Finder. Webhooks omzeilen ook volledig de rate limits, omdat Enrow jou aanroept in plaats van andersom.

Hoe verloopt een webhook-flow?

Een webhook-flow zet één zoekverzoek om in een automatische levering. Je vertelt Enrow waar de resultaten naartoe moeten, en Enrow doet de rest:
  1. Je doet een POST met een zoekverzoek inclusief een webhook-URL in de settings
  2. Enrow geeft direct een zoek-ID terug
  3. Enrow verwerkt de zoekopdracht op de achtergrond
  4. Zodra deze voltooid is, doet Enrow een POST van de resultaten naar je webhook-URL

Hoe stel ik een webhook in?

Je kunt een webhook op twee manieren registreren, afhankelijk van of je deze voor één zoekopdracht of voor elke zoekopdracht wilt:
  1. Per verzoek: Voeg een webhook-URL toe aan het settings-object van een API-aanroep
  2. Globaal: Stel een standaard webhook in op de API-pagina van het dashboard. Enrow controleert de URL wanneer je hem opslaat: zie Hoe verifieer ik mijn webhook-endpoint?
Wanneer een verzoek een eigen webhook bevat, hangt het van het endpoint af wat er met de standaard-webhook gebeurt:
  • Email Finder: Enrow stuurt een melding naar beide URL’s (één keer als ze hetzelfde zijn)
  • Phone Finder en Email Verifier: de URL van het verzoek vervangt de standaard-URL
Je webhook-endpoint moet openbaar bereikbaar zijn en een 2xx-statuscode teruggeven. Gebruik HTTPS: gewone HTTP-URL’s worden geaccepteerd, maar zijn niet aan te raden. Enrow verstuurt elke melding één keer en probeert een mislukte levering niet opnieuw, dus je kunt altijd terugvallen op het bijbehorende GET-endpoint.

Hoe verifieer ik mijn webhook-endpoint?

Wanneer je een nieuwe standaard webhook-URL opslaat op de API-pagina, stuurt Enrow er eerst een eenmalig verificatieverzoek naartoe om te bevestigen dat jij het endpoint beheert. De URL wordt alleen opgeslagen als je endpoint daar correct op antwoordt. Enrow stuurt een POST-verzoek met deze JSON-body:
Je endpoint moet binnen 5 seconden antwoorden met een 2xx-statuscode en dezelfde challenge-waarde terugsturen, als ruwe response-body of als JSON:
Bijvoorbeeld met Node.js en Express:
Als de controle mislukt, toont de app waarom (geen antwoord binnen 5 seconden, een andere status dan 2xx, een challenge die niet overeenkomt, een onbereikbare URL, of een privé- of intern adres) en blijft je huidige webhook actief. Een webhook die je in de settings van een verzoek meegeeft, wordt niet op deze manier gecontroleerd.

Welke events activeren een webhook-aanroep?

Zes soorten events kunnen een webhook-aanroep activeren, één per endpoint en zoektype:

Hoe ziet een webhook-payload eruit?

De webhook-payload hangt af van het endpoint en of de zoekopdracht enkelvoudig of in bulk was. Enkelvoudige zoekopdrachten leveren het volledige resultaat direct, terwijl bulkzoekopdrachten een voltooiingsmelding leveren waarop je vervolgens een GET-verzoek doet.

Email Finder — Enkelvoudig

Bij enkelvoudige zoekopdrachten ontvang je het volledige resultaat direct in de webhook-melding. Hierdoor hoef je geen GET-verzoek meer te doen.

Zoeken op basis van een LinkedIn-profiel-URL

Bij een zoekopdracht die is gestart op basis van een LinkedIn-profiel-URL bevat result ook linkedin_status en linkedin_url (de URL die je hebt meegestuurd). info wordt alleen meegestuurd als er een e-mailadres is gevonden: een zoekopdracht die niets vindt, maakt nooit bekend wie de persoon is. credits.cost bevat de uiteindelijke kosten, net als credits_used in de GET-response, waar ook elke linkedin_status wordt uitgelegd.

Email Finder — Bulk

Bij bulkzoekopdrachten ontvang je een melding dat de batch is voltooid. Roep vervolgens het endpoint GET /email/find/bulk aan met de id om de resultaten op te halen.

Email Verifier — Enkelvoudig

Het volledige resultaat wordt direct meegestuurd — geen GET-verzoek nodig.

Email Verifier — Bulk

Dit is alleen een melding. Roep GET /email/verify/bulk aan met de id om de resultaten op te halen.

Phone Finder — Enkelvoudig

Het volledige resultaat wordt direct meegestuurd — geen GET-verzoek nodig.

Phone Finder — Bulk

Dit is alleen een melding. Roep GET /phone/bulk aan met de id om de resultaten op te halen.

Wat is het verschil tussen enkelvoudige en bulk-webhooks?

Webhooks voor enkelvoudige zoekopdrachten bevatten het volledige resultaat, dus er is geen extra aanroep nodig. Webhooks voor bulkzoekopdrachten geven alleen aan dat de batch klaar is — vervolgens haal je de resultaten op met het bijbehorende GET-endpoint.
Bij enkelvoudige zoekopdrachten bevat de webhook alles wat je nodig hebt. Bij bulkzoekopdrachten geeft de webhook aan dat de batch klaar is — vervolgens haal je de resultaten op.

Wat zijn de best practices voor webhook-endpoints?

Een betrouwbaar webhook-endpoint reageert snel, gebruikt HTTPS en tolereert af en toe een duplicaat. Volg deze praktijken om leveringen betrouwbaar te houden:
Verwerk webhook-payloads asynchroon. Geef direct een 200 terug en verwerk de data daarna in een achtergrondtaak.
Gebruik een HTTPS-endpoint, zodat resultaten versleuteld worden verstuurd. Gewone HTTP-URL’s worden geaccepteerd, maar zijn niet aan te raden.
In zeldzame gevallen kan een webhook meer dan één keer worden geleverd. Gebruik het id-veld om te dedupliceren.
Geef custom-data mee in je verzoeken om te bepalen bij welk record een webhook-resultaat hoort:
Het custom-veld wordt ongewijzigd teruggegeven in de webhook-payload.

Moet ik webhooks of polling gebruiken?

Gebruik webhooks voor productie en polling alleen voor snel prototypen of debuggen. Webhooks leveren resultaten in realtime zonder je verzoekquotum te verbruiken, terwijl polling herhaalde GET-aanroepen doet die meetellen voor je rate limits.
We raden webhooks aan voor productiegebruik. Gebruik polling alleen voor snel prototypen of debuggen.

FAQ

Nee. Webhooks verbruiken geen extra credits: je betaalt alleen voor de zoekopdracht zelf. Payloads van de Email Finder en de Email Verifier vermelden de creditkosten in het credits.cost-veld. Het zijn de uiteindelijke kosten na terugbetalingen: 0 voor een enkele zoekopdracht zonder resultaat (0.25 voor een e-mailzoekopdracht op basis van een LinkedIn-profiel-URL of voor een account met een abnormaal laag succespercentage) en voor een bulkzoekopdracht de gevonden rijen plus de in rekening gebrachte mislukkingen. Payloads van de Phone Finder bevatten de kosten niet. Zie Credits & facturatie voor de kosten per endpoint.
Enrow verstuurt elke melding één keer. Als je server onbereikbaar is of met een andere status dan 2xx reageert, mislukt de levering en wordt die niet opnieuw geprobeerd. Je kunt de resultaten altijd ophalen door het relevante GET-endpoint te pollen met de zoek-id.
Gebruik de id uit de zoekrespons, of geef een custom-object mee in je verzoek — dit wordt ongewijzigd teruggegeven in de webhook-payload, zodat je resultaten kunt terugkoppelen aan je eigen records, zoals een CRM-lead-ID.
De meest voorkomende oorzaken zijn een endpoint dat geen 2xx teruggeeft, een server die een time-out geeft, of een URL die niet openbaar bereikbaar is. Mislukte leveringen worden niet opnieuw geprobeerd: haal het resultaat op met het bijbehorende GET-endpoint en de zoek-id. Voor uitgebreidere probleemoplossing, zie Foutafhandeling en Statuscodes.

Volgende stappen

Een e-mail vinden

Geef een webhook-URL mee in settings om het resultaat automatisch geleverd te krijgen.

Bulkresultaten ophalen

Haal batchresultaten op nadat een bulk_search_finished-webhook is afgevuurd.

Authenticatie

Hoe je je API-sleutel meegeeft in de x-api-key-header.

Rate limits

Lees waarom webhooks het verzoekquotum vermijden dat polling verbruikt.