Skip to main content

Hvorfor bruge webhooks?

Webhooks lader resultaterne komme til dig, i stedet for at du gentagne gange spørger efter dem. I stedet for at polle et GET-endpoint, indtil en søgning er færdig, sender Enrow hvert resultat til din server i det øjeblik, det er klar — hvilket sparer requests, reducerer latens og holder din kode enkel. Stop med at spilde requests — lad resultaterne komme til dig. Fordi hvert Enrow-endpoint er asynkront, er webhooks den anbefalede måde at modtage resultater på på tværs af Email Finder, Email Verifier og Phone Finder. Webhooks omgår også rate limits helt, eftersom Enrow ringer til dig i stedet for omvendt.

Hvordan fungerer et webhook-flow?

Et webhook-flow forvandler en enkelt søgeforespørgsel til en automatisk levering. Du fortæller Enrow, hvor resultaterne skal sendes hen, og Enrow klarer resten:
  1. Du sender en POST med en søgeforespørgsel med en webhook-URL i settings
  2. Enrow returnerer et søge-ID med det samme
  3. Enrow behandler søgningen i baggrunden
  4. Når den er færdig, sender Enrow resultaterne med POST til din webhook-URL

Hvordan opsætter jeg en webhook?

Du kan registrere en webhook på to måder, afhængigt af om du vil bruge den til én søgning eller hver søgning:
  1. Per request: Inkluder en webhook-URL i settings-objektet i ethvert API-kald
  2. Globalt: Angiv en standard-webhook på API-siden i dashboardet. Enrow kontrollerer URL’en, når du gemmer den: se Hvordan verificerer jeg mit webhook-endpoint?
Når en forespørgsel indeholder sin egen webhook, afhænger det af endpointet, hvad der sker med standard-webhooken:
  • Email Finder: Enrow underretter begge URL’er (én gang, hvis de er ens)
  • Phone Finder og Email Verifier: URL’en i forespørgslen erstatter standard-URL’en
Dit webhook-endpoint skal være offentligt tilgængeligt og returnere en 2xx-statuskode. Brug HTTPS: almindelige HTTP-URL’er accepteres, men anbefales ikke. Enrow sender hver notifikation én gang og prøver ikke en mislykket levering igen, så du kan altid falde tilbage på det tilsvarende GET-endpoint.

Hvordan verificerer jeg mit webhook-endpoint?

Når du gemmer en ny standard-webhook-URL på API-siden, sender Enrow først en enkelt verifikationsforespørgsel til den for at bekræfte, at du har kontrol over endpointet. URL’en gemmes kun, hvis dit endpoint besvarer den korrekt. Enrow sender en POST-forespørgsel med denne JSON-body:
Dit endpoint skal svare inden for 5 sekunder med en 2xx-statuskode og sende den samme challenge-værdi tilbage, enten som den rå svar-body eller som JSON:
For eksempel med Node.js og Express:
Hvis kontrollen mislykkes, viser appen hvorfor (intet svar inden for 5 sekunder, en anden status end 2xx, en challenge, der ikke matcher, en URL, der ikke kan nås, eller en privat eller intern adresse), og din nuværende webhook forbliver aktiv. En webhook, der sendes i settings i en forespørgsel, kontrolleres ikke på denne måde.

Hvilke events udløser et webhook-kald?

Seks typer events kan udløse et webhook-kald, én per endpoint og søgetype:

Hvordan ser en webhook-payload ud?

Webhook-payloaden afhænger af endpointet, og om søgningen var enkelt eller bulk. Enkelte søgninger leverer det fulde resultat direkte, mens bulk-søgninger leverer en færdigmeldings-notifikation, som du følger op på med en GET-forespørgsel.

Email Finder — Single

For enkelte søgninger modtager du det fulde resultat direkte i webhook-notifikationen. Dette fjerner behovet for at udføre en GET-forespørgsel.

Søgning ud fra en LinkedIn-profil-URL

Ved en søgning, der er startet ud fra en LinkedIn-profil-URL, indeholder result også linkedin_status og linkedin_url (den URL, du sendte). info er kun med, når der findes en e-mail: en søgning, der ikke finder noget, afslører aldrig, hvem personen er. credits.cost er den endelige omkostning ligesom credits_used i GET-svaret, som også forklarer hver linkedin_status.

Email Finder — Bulk

For bulk-søgninger modtager du en notifikation om, at batchen er færdig. Kald derefter endpointet GET /email/find/bulk med id for at hente resultaterne.

Email Verifier — Single

Det fulde resultat er inkluderet direkte — ingen GET-forespørgsel nødvendig.

Email Verifier — Bulk

Dette er kun en notifikation. Kald GET /email/verify/bulk med id for at hente resultaterne.

Phone Finder — Single

Det fulde resultat er inkluderet direkte — ingen GET-forespørgsel nødvendig.

Phone Finder — Bulk

Dette er kun en notifikation. Kald GET /phone/bulk med id for at hente resultaterne.

Hvordan adskiller enkelte og bulk-webhooks sig?

Webhooks for enkelte søgninger indeholder det komplette resultat, så der er ikke behov for ekstra kald. Webhooks for bulk-søgninger signalerer kun, at batchen er færdig — derefter henter du resultaterne med det tilsvarende GET-endpoint.
For enkelte søgninger indeholder webhooken alt, hvad du har brug for. For bulk-søgninger fortæller webhooken dig, at batchen er færdig — derefter henter du resultaterne.

Hvad er best practices for webhook-endpoints?

Et pålideligt webhook-endpoint svarer hurtigt, bruger HTTPS og tolererer en lejlighedsvis dublet. Følg disse praksisser for at holde leveringer pålidelige:
Behandl webhook-payloads asynkront. Returnér en 200 med det samme, og håndtér derefter dataene i et baggrundsjob.
Brug et HTTPS-endpoint, så resultaterne sendes krypteret. Almindelige HTTP-URL’er accepteres, men anbefales ikke.
I sjældne tilfælde kan webhooks blive leveret mere end én gang. Brug id-feltet til at deduplikere.
Send custom-data med i dine requests for at identificere, hvilken record et webhook-resultat hører til:
custom-feltet returneres uændret i webhook-payloaden.

Skal jeg bruge webhooks eller polling?

Brug webhooks til produktion og polling kun til hurtig prototyping eller fejlfinding. Webhooks leverer resultater i realtid uden at forbruge din request-kvote, mens polling foretager gentagne GET-kald, der tæller mod dine rate limits.
Vi anbefaler webhooks til produktionsbrug. Brug kun polling til hurtig prototyping eller fejlfinding.

FAQ

Nej. Webhooks forbruger ikke yderligere credits: du betaler kun for selve søgningen. Payloads fra Email Finder og Email Verifier rapporterer credit-omkostningen i credits.cost-feltet. Det er den endelige omkostning efter refusioner: 0 for en enkeltsøgning uden resultat (0.25 for en e-mailsøgning ud fra en LinkedIn-profil-URL eller for en konto med en unormalt lav succesrate) og for en bulksøgning de fundne rækker plus de opkrævede fejl. Payloads fra Phone Finder indeholder ikke omkostningen. Se Credits og fakturering for omkostninger per endpoint.
Enrow sender hver notifikation én gang. Hvis din server ikke kan nås eller svarer med en anden status end 2xx, mislykkes leveringen og forsøges ikke igen. Du kan altid hente resultaterne ved at polle det relevante GET-endpoint med søgningens id.
Brug id fra søgesvaret, eller send et custom-objekt med i din request — det returneres uændret i webhook-payloaden, så du kan mappe resultater tilbage til dine egne records, såsom et CRM-lead-ID.
De mest almindelige årsager er et endpoint, der ikke returnerer 2xx, en server, der timer ud, eller en URL, der ikke er offentligt tilgængelig. Mislykkede leveringer forsøges ikke igen: hent resultatet med det tilsvarende GET-endpoint og søgningens id. For bredere fejlfinding, se Fejlhåndtering og Statuskoder.

Næste skridt

Find en e-mail

Send en webhook-URL med i settings for at få resultatet leveret automatisk.

Hent bulk-resultater

Hent batch-resultater, efter at en bulk_search_finished-webhook er udløst.

Autentificering

Sådan sender du din API-nøgle i x-api-key-headeren.

Rate limits

Se hvorfor webhooks undgår den request-kvote, som polling forbruger.