Skip to main content

Po co używać webhooków?

Webhooki sprawiają, że wyniki trafiają do Ciebie, zamiast tego, żebyś wielokrotnie o nie pytał. Zamiast odpytywać endpoint GET aż do zakończenia wyszukiwania, Enrow wysyła każdy wynik na Twój serwer w momencie, gdy jest gotowy — oszczędzając żądania, zmniejszając opóźnienia i utrzymując prostotę kodu. Przestań marnować żądania — pozwól, aby wyniki same do Ciebie trafiały. Ponieważ każdy endpoint Enrow jest asynchroniczny, webhooki są zalecanym sposobem otrzymywania wyników w Email Finder, Email Verifier oraz Phone Finder. Webhooki całkowicie omijają również limity szybkości, ponieważ to Enrow wywołuje Ciebie, a nie odwrotnie.

Jak przebiega proces webhooka?

Proces webhooka zamienia pojedyncze żądanie wyszukiwania w automatyczne dostarczenie. Mówisz Enrow, dokąd wysłać wyniki, a Enrow robi resztę:
  1. Wysyłasz POST z żądaniem wyszukiwania z adresem URL webhook w settings
  2. Enrow natychmiast zwraca ID wyszukiwania
  3. Enrow przetwarza wyszukiwanie w tle
  4. Po zakończeniu Enrow wysyła POST z wynikami na Twój adres URL webhooka

Jak skonfigurować webhooka?

Webhooka możesz zarejestrować na dwa sposoby, w zależności od tego, czy chcesz go dla jednego wyszukiwania, czy dla każdego:
  1. Dla pojedynczego żądania: Dołącz adres URL webhook w obiekcie settings dowolnego wywołania API
  2. Globalnie: Ustaw domyślny webhook na stronie API w panelu. Enrow sprawdza adres URL podczas jego zapisywania: zobacz Jak zweryfikować swój endpoint webhooka?
Gdy żądanie zawiera własny parametr webhook, od endpointu zależy, co dzieje się z webhookiem domyślnym:
  • Email Finder: Enrow powiadamia oba adresy URL (raz, jeśli są takie same)
  • Phone Finder i Email Verifier: adres URL podany w żądaniu zastępuje adres domyślny
Twój endpoint webhooka musi być publicznie osiągalny i zwracać kod statusu 2xx. Używaj HTTPS: zwykłe adresy URL HTTP są akceptowane, ale niezalecane. Enrow wysyła każde powiadomienie jeden raz i nie ponawia nieudanego dostarczenia, więc jako rozwiązanie awaryjne zawsze możesz użyć odpowiedniego endpointu GET.

Jak zweryfikować swój endpoint webhooka?

Gdy zapisujesz nowy domyślny adres URL webhooka na stronie API, Enrow najpierw wysyła na niego jednorazowe żądanie weryfikacyjne, aby potwierdzić, że kontrolujesz ten endpoint. Adres URL zostaje zapisany tylko wtedy, gdy Twój endpoint poprawnie na nie odpowie. Enrow wysyła żądanie POST z następującą treścią JSON:
Twój endpoint musi odpowiedzieć w ciągu 5 sekund kodem statusu 2xx i odesłać tę samą wartość challenge, jako surową treść odpowiedzi albo w formacie JSON:
Na przykład w Node.js z Express:
Jeśli weryfikacja się nie powiedzie, aplikacja pokaże przyczynę (brak odpowiedzi w ciągu 5 sekund, status inny niż 2xx, niezgodna wartość challenge, nieosiągalny adres URL albo adres prywatny lub wewnętrzny), a Twój obecny webhook pozostanie aktywny. Parametr webhook przekazany w settings żądania nie jest sprawdzany w ten sposób.

Które zdarzenia wyzwalają wywołanie webhooka?

Sześć typów zdarzeń może wyzwolić wywołanie webhooka, po jednym na każdy endpoint i typ wyszukiwania:

Jak wygląda ładunek webhooka?

Ładunek webhooka zależy od endpointu oraz od tego, czy wyszukiwanie było pojedyncze, czy masowe. Pojedyncze wyszukiwania dostarczają pełny wynik bezpośrednio, natomiast masowe wyszukiwania dostarczają powiadomienie o zakończeniu, po którym wykonujesz żądanie GET.

Email Finder — pojedynczy

W przypadku pojedynczych wyszukiwań otrzymujesz pełny wynik bezpośrednio w powiadomieniu webhook. Eliminuje to potrzebę wykonywania żądania GET.

Wyszukiwanie na podstawie adresu URL profilu LinkedIn

W przypadku wyszukiwania uruchomionego na podstawie adresu URL profilu LinkedIn pole result zawiera także linkedin_status i linkedin_url (wysłany przez Ciebie adres URL). Pole info jest dołączane tylko wtedy, gdy zostanie znaleziony adres e-mail: wyszukiwanie, które niczego nie znajdzie, nigdy nie ujawnia, kim jest dana osoba. credits.cost to koszt końcowy, tak jak credits_used w odpowiedzi GET, gdzie wyjaśniono również każdy linkedin_status.

Email Finder — masowy

W przypadku masowych wyszukiwań otrzymujesz powiadomienie o zakończeniu partii. Następnie wywołaj endpoint GET /email/find/bulk z id, aby pobrać wyniki.

Email Verifier — pojedynczy

Pełny wynik jest dołączony bezpośrednio — żądanie GET nie jest potrzebne.

Email Verifier — masowy

To wyłącznie powiadomienie. Wywołaj GET /email/verify/bulk z id, aby pobrać wyniki.

Phone Finder — pojedynczy

Pełny wynik jest dołączony bezpośrednio — żądanie GET nie jest potrzebne.

Phone Finder — masowy

To wyłącznie powiadomienie. Wywołaj GET /phone/bulk z id, aby pobrać wyniki.

Czym różnią się webhooki pojedyncze i masowe?

Webhooki pojedynczych wyszukiwań zawierają kompletny wynik, więc nie jest potrzebne dodatkowe wywołanie. Webhooki masowych wyszukiwań jedynie sygnalizują, że partia jest gotowa — następnie pobierasz wyniki za pomocą odpowiadającego endpointu GET.
W przypadku pojedynczych wyszukiwań webhook zawiera wszystko, czego potrzebujesz. W przypadku masowych wyszukiwań webhook informuje, że partia jest gotowa — wtedy pobierasz wyniki.

Jakie są najlepsze praktyki dla endpointów webhooków?

Niezawodny endpoint webhooka odpowiada szybko, używa HTTPS i toleruje sporadyczne duplikaty. Stosuj te praktyki, aby dostarczanie było niezawodne:
Przetwarzaj ładunki webhooków asynchronicznie. Zwróć 200 natychmiast, a następnie obsłuż dane w zadaniu działającym w tle.
Używaj endpointu HTTPS, aby wyniki były przesyłane w formie zaszyfrowanej. Zwykłe adresy URL HTTP są akceptowane, ale niezalecane.
W rzadkich przypadkach webhooki mogą zostać dostarczone więcej niż raz. Użyj pola id, aby usuwać duplikaty.
Przekazuj dane custom w swoich żądaniach, aby zidentyfikować, do którego rekordu należy wynik webhooka:
Pole custom jest zwracane w ładunku webhooka bez zmian.

Czy używać webhooków, czy odpytywania?

Używaj webhooków w produkcji, a odpytywania tylko do szybkiego prototypowania lub debugowania. Webhooki dostarczają wyniki w czasie rzeczywistym, nie zużywając Twojego limitu żądań, natomiast odpytywanie wykonuje powtarzające się wywołania GET, które wliczają się do Twoich limitów szybkości.
Zalecamy webhooki do użytku produkcyjnego. Odpytywania używaj tylko do szybkiego prototypowania lub debugowania.

FAQ

Nie. Webhooki nie zużywają dodatkowych kredytów: płacisz tylko za samo wyszukiwanie. Ładunki Email Finder i Email Verifier podają koszt w kredytach w polu credits.cost. To koszt końcowy po zwrotach: 0 dla pojedynczego wyszukiwania bez wyniku (0.25 dla wyszukiwania adresu e-mail na podstawie adresu URL profilu LinkedIn lub dla konta z nienormalnie niskim wskaźnikiem skuteczności), a dla wyszukiwania zbiorczego znalezione wiersze plus obciążone niepowodzenia. Ładunki Phone Finder nie zawierają kosztu. Zobacz Kredyty i rozliczenia, aby poznać koszty dla poszczególnych endpointów.
Enrow wysyła każde powiadomienie jeden raz. Jeśli Twój serwer jest nieosiągalny lub odpowiada statusem innym niż 2xx, dostarczenie kończy się niepowodzeniem i nie jest ponawiane. Zawsze możesz pobrać wyniki, odpytując odpowiedni endpoint GET z id wyszukiwania.
Użyj id z odpowiedzi wyszukiwania albo przekaż obiekt custom w swoim żądaniu — jest on zwracany w ładunku webhooka bez zmian, dzięki czemu możesz przyporządkować wyniki do własnych rekordów, takich jak ID leada w CRM.
Najczęstsze przyczyny to endpoint, który nie zwraca 2xx, serwer, który przekracza limit czasu, lub adres URL, który nie jest publicznie osiągalny. Nieudane dostarczenia nie są ponawiane: pobierz wynik za pomocą odpowiedniego endpointu GET i id wyszukiwania. Aby uzyskać szersze wskazówki dotyczące rozwiązywania problemów, zobacz Obsługa błędów oraz Kody statusu.

Następne kroki

Znajdź adres e-mail

Przekaż adres URL webhooka w settings, aby wynik został dostarczony automatycznie.

Pobierz wyniki masowe

Pobierz wyniki partii po wyzwoleniu webhooka bulk_search_finished.

Uwierzytelnianie

Jak przekazać swój klucz API w nagłówku x-api-key.

Limity szybkości

Zobacz, dlaczego webhooki unikają limitu żądań zużywanego przez odpytywanie.