Odpowiedzi z LinkedIna do Zapiera, Make lub n8n przez podpisane webhooki
Zespół NudgeLink · Opublikowano · Ostatnia aktualizacja · 2 min czytania
Krótka odpowiedź: wejdź w Ustawienia → Integracje → Webhooki, wklej adres „catch hook” z Zapiera, Make lub n8n, wybierz zdarzenia i kliknij „Wyślij zdarzenie testowe”. Od tej chwili NudgeLink wysyła podpisaną wiadomość JSON, gdy przyjdzie odpowiedź, dodany zostanie lead albo skończy się sekwencja. Webhooki tylko raportują: nigdy nie wysyłają niczego do leada.
Jakie zdarzenia można wysyłać
| Zdarzenie | Kiedy |
|---|---|
reply.received | Lead odpowiada na LinkedInie lub e-mailem |
reply.positive | Odpowiedź została sklasyfikowana jako pozytywna (może dojść chwilę po reply.received) |
lead.added | Lead trafia na Twoje konto |
sequence.finished | Sekwencja leada dobiegła końca |
Typowe zastosowania: pozytywna odpowiedź jako zadanie w CRM, wpis na kanale Slacka, zakończona sekwencja w arkuszu „do podtrzymania kontaktu”.
Konfiguracja w pięciu krokach
- W Zapierze, Make lub n8n utwórz scenariusz zaczynający się od webhooka i skopiuj jego adres. Musi zaczynać się od
https. - W NudgeLink otwórz Ustawienia → Integracje → Webhooki i wklej adres.
- Zaznacz zdarzenia i wybierz Dodaj webhook.
- Skopiuj sekret podpisu. Pokazujemy go tylko raz.
- Kliknij Wyślij zdarzenie testowe. Test dotrze do Twojego narzędzia w ciągu minuty.
Webhooki są w każdym płatnym planie, do trzech na konto. Wysyłamy tylko zdarzenia, które nastąpiły po dodaniu webhooka.
Jak sprawdzić, że żądanie pochodzi z NudgeLink
Każde żądanie ma nagłówek NudgeLink-Signature: t=<czas unix>,v1=<hex>. Wartość v1 to HMAC-SHA256 z "<t>.<surowa treść>" i Twojego sekretu. Porównuj w stałym czasie i odrzucaj żądania, w których t jest starsze niż pięć minut.
import hashlib, hmac, time
def verify(secret, raw_body, header):
parts = dict(p.split("=", 1) for p in header.split(","))
if abs(time.time() - int(parts["t"])) > 300:
return False
expected = hmac.new(secret.encode(), parts["t"].encode() + b"." + raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, parts["v1"])
Catch hook w Zapierze sam nie sprawdza podpisów. Jeśli to ważne, dodaj przed nim mały krok weryfikujący (krok Code lub własny endpoint).
Co, gdy Twoje narzędzie nie działa
Odpowiedz dowolnym kodem 2xx w ciągu 10 sekund. Inna odpowiedź oznacza ponowienie po 1 minucie, 5 minutach, 30 minutach, 2 godzinach i 12 godzinach, a potem rezygnację. Po 20 porażkach z rzędu webhook się wyłącza, a Ustawienia podają powód. Po ponowieniu to samo żądanie może przyjść dwa razy, dlatego każda próba dla jednego zdarzenia ma to samo id: zapisuj obsłużone identyfikatory.
Pełny opis: Webhooki w dokumentacji.