Naar hoofdinhoud gaan

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: Configureer een standaard webhook via de integratiepagina op het dashboard
{
  "fullname": "Dwight Schrute",
  "company_domain": "dundermifflin.com",
  "settings": {
    "webhook": "https://your-app.com/webhooks/enrow"
  }
}
Je webhook-URL moet een geldig HTTPS-endpoint zijn dat een 200-statuscode teruggeeft.

Welke events activeren een webhook-aanroep?

Zes soorten events kunnen een webhook-aanroep activeren, één per endpoint en zoektype:
EventBeschrijving
single_search_finishedEen enkelvoudige e-mailzoekopdracht is voltooid
bulk_search_finishedEen bulk-e-mailzoekopdracht is voltooid
verification_finishedEen enkelvoudige e-mailverificatie is voltooid
bulk_verification_finishedEen bulk-e-mailverificatie is voltooid
single_phone_search_finishedEen enkelvoudige telefoonzoekopdracht is voltooid
bulk_phone_search_finishedEen bulk-telefoonzoekopdracht is voltooid

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.
{
  "event": "single_search_finished",
  "id": "910f3e13-b2bf-442d-ab0b-4cf44dfrij84fjrt",
  "credits": {
    "cost": 1
  },
  "result": {
    "email": "dwight.schrute@dundermifflin.com",
    "qualification": "valid",
    "custom": "your_custom_data",
    "info": {
      "company_domain": "dundermifflin.com",
      "fullname": "Dwight Schrute",
      "firstname": "Dwight",
      "lastname": "Schrute"
    }
  }
}

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.
{
  "event": "bulk_search_finished",
  "id": "910f3e13-b2bf-442d-ab0b-4cf44dfrij84fjrt",
  "credits": {
    "cost": 2284
  }
}

Email Verifier — Enkelvoudig

Het volledige resultaat wordt direct meegestuurd — geen GET-verzoek nodig.
{
  "event": "verification_finished",
  "id": "910f3e13-b2bf-442d-ab0b-4cf44dfrij84fjrt",
  "email": "pam.beesly@dundermifflin.com",
  "qualification": "valid",
  "custom": "your_custom_data"
}

Email Verifier — Bulk

Dit is alleen een melding. Roep GET /email/verify/bulk aan met de id om de resultaten op te halen.
{
  "event": "bulk_verification_finished",
  "id": "910f3e13-b2bf-442d-ab0b-4cf44dfrij84fjrt",
  "credits": {
    "cost": 386.25
  }
}

Phone Finder — Enkelvoudig

Het volledige resultaat wordt direct meegestuurd — geen GET-verzoek nodig.
{
  "event": "single_phone_search_finished",
  "id": "910f3e13-b2bf-442d-ab0b-4cf44dfrij84fjrt",
  "credits": {
    "cost": 50
  },
  "result": {
    "number": "+15705551234",
    "params": {
      "linkedin_url": "https://www.linkedin.com/in/michael-scott"
    },
    "qualification": "found"
  }
}

Phone Finder — Bulk

Dit is alleen een melding. Roep GET /phone/bulk aan met de id om de resultaten op te halen.
{
  "event": "bulk_phone_search_finished",
  "id": "910f3e13-b2bf-442d-ab0b-4cf44dfrij84fjrt"
}

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.
TypeEnkelvoudige zoekopdrachtenBulkzoekopdrachten
PayloadVolledig resultaat inbegrepenAlleen melding (ID + credits)
GET nodig?NeeJa — gebruik het GET-endpoint met de id
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, accepteert alleen 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 altijd HTTPS-endpoints. HTTP-webhooks worden geweigerd.
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:
{
  "fullname": "Dwight Schrute",
  "company_domain": "dundermifflin.com",
  "custom": { "crm_id": "lead_001" }
}
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.
WebhooksPolling (GET)
LatentieRealtimeAfhankelijk van poll-interval
API-aanroepen0 (Enrow roept jou aan)Meerdere aanroepen per zoekopdracht
Impact op rate limitGeenVerbruikt quotum
ComplexiteitVereist het instellen van een endpointEenvoudiger te implementeren
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. De creditkosten worden gerapporteerd in het credits.cost-veld van de payload. Zie Credits & facturatie voor de kosten per endpoint.
Je webhook-URL moet een geldig HTTPS-endpoint zijn dat een 200-statuscode teruggeeft. Als je server onbereikbaar is of met een andere status reageert, wordt de levering als mislukt beschouwd. Als terugvaloptie kun je 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 niet-HTTPS-URL, een endpoint dat geen 200 teruggeeft, of een server die een time-out geeft. Controleer of je endpoint openbaar bereikbaar is via HTTPS. 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.