Ответы из LinkedIn в Zapier, Make или n8n через подписанные вебхуки
Команда NudgeLink · Опубликовано · Обновлено · 2 мин чтения
Коротко: откройте Настройки → Интеграции → Вебхуки, вставьте адрес «catch hook» из Zapier, Make или n8n, выберите события и нажмите «Отправить тестовое событие». После этого NudgeLink отправляет подписанное JSON-сообщение, когда приходит ответ, добавляется лид или заканчивается последовательность. Вебхуки только сообщают о событиях: они никогда ничего не отправляют лиду.
Какие события можно отправлять
| Событие | Когда |
|---|---|
reply.received | Лид отвечает в LinkedIn или по почте |
reply.positive | Ответ классифицирован как положительный (может прийти чуть позже reply.received) |
lead.added | Лид попадает в ваш аккаунт |
sequence.finished | Последовательность лида дошла до конца |
Типичные применения: положительный ответ как задача в CRM, сообщение в канал Slack, завершённая последовательность в таблице «для дальнейшего контакта».
Настройка за пять шагов
- В Zapier, Make или n8n создайте сценарий, который начинается с вебхука, и скопируйте его адрес. Он должен начинаться с
https. - В NudgeLink откройте Настройки → Интеграции → Вебхуки и вставьте адрес.
- Отметьте события и нажмите Добавить вебхук.
- Скопируйте секрет подписи. Он показывается один раз.
- Нажмите Отправить тестовое событие. Тест дойдёт до вашего инструмента в течение минуты.
Вебхуки входят в каждый платный тариф, до трёх на аккаунт. Отправляются только события, произошедшие после добавления вебхука.
Как проверить, что запрос от NudgeLink
В каждом запросе есть заголовок NudgeLink-Signature: t=<время unix>,v1=<hex>. Значение v1 — HMAC-SHA256 от "<t>.<сырое тело>" с вашим секретом. Сравнивайте за постоянное время и отклоняйте запросы, где t старше пяти минут.
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 в Zapier сам подписи не проверяет. Если это важно, поставьте перед ним небольшой шаг проверки (шаг Code или свой endpoint).
Что будет, если ваш инструмент недоступен
Отвечайте любым кодом 2xx в течение 10 секунд. Иначе запрос повторяется через 1 минуту, 5 минут, 30 минут, 2 часа и 12 часов, после чего мы прекращаем попытки. После 20 неудач подряд вебхук отключается, а в Настройках указана причина. После повтора один и тот же запрос может прийти дважды, поэтому все попытки для одного события имеют один и тот же id: сохраняйте обработанные идентификаторы.
Полное описание: Вебхуки в документации.