Вебхуки, которые действительно доставляют
JSON-payload с проверяемой подписью, доставка через очередь, экспоненциальные повторы и журнал доставки для каждой формы. Сделано для разработчиков — без посредника Zapier, который ест ваши данные.
{
"event": "submission.created",
"delivery_id": "dlv_8aE2k",
"timestamp": 1730723400,
"form_id": "f_142",
"submission_id": "s_9k3X",
"fields": {
"name": "Sarah Chen",
"email": "[email protected]",
"budget": 25000
}
}
Что запускает вебхук
Настраиваете один раз для каждой формы. Мы доставляем при каждом релевантном событии.
Новый ответ
Срабатывает в момент отправки формы, со всем payload, полями и метаданными.
Успешный платёж
Когда платёж Stripe, привязанный к ответу, успешен, вебхук содержит статус, сумму и валюту.
Возврат к черновику
Когда респондент возвращается к сохранённому черновику (формы save-and-resume), можно получать уведомление для аналитики воронки.
Предсказуемый, версионированный, аккуратный JSON
Без сюрпризов. Один и тот же envelope в каждом событии. Типы полей сохраняются как есть.
{
"event": "submission.created",
"delivery_id": "dlv_8aE2kF1Ld9zQ",
"timestamp": 1730723400,
"form_id": "f_142",
"submission_id": "s_9k3XnPq72T",
"fields": {
"name": "Sarah Chen",
"email": "[email protected]",
"company": "Acme Corp",
"budget": 25000,
"message": "Looking for a form solution..."
},
"payment": {
"status": "succeeded",
"amount": 2500,
"currency": "usd"
},
"meta": {
"ip": "203.0.113.42",
"user_agent": "Mozilla/5.0...",
"locale": "en"
}
}
Подпись проверена, подделать нельзя
Каждый payload подписан HMAC-SHA256 от секрета вебхука вашей формы. Проверьте на своей стороне, прежде чем доверять данным.
Подпись HMAC-SHA256
Заголовок X-FormBuilder-Signature в каждом запросе. Считайте HMAC от сырого тела с вашим секретом и сравнивайте за константное время.
Секреты для каждой формы
У каждой формы свой секрет. Ротируйте в любой момент в настройках формы — старые payload остаются проверяемыми, пока вы не сгенерируете новый.
Только TLS
Принимаются только HTTPS-эндпоинты. Мы не отправляем на plaintext-URL, чтобы защитить данные при передаче.
Защита от replay
Каждый payload содержит timestamp и уникальный delivery ID. Отбрасывайте доставки старше 5 минут, чтобы предотвратить replay-атаки.
Проверка в 3 строках
Выберите свой стек. Шаблон один и тот же: HMAC от сырого тела с вашим секретом, сравнение с заголовком подписи.
const crypto = require('crypto'); function verify(rawBody, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(rawBody) .digest('hex'); return crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(signature) ); }
function verify($rawBody, $signature, $secret) { $expected = hash_hmac('sha256', $rawBody, $secret); return hash_equals($expected, $signature); }
import hmac, hashlib def verify(raw_body: bytes, signature: str, secret: str) -> bool: expected = hmac.new( secret.encode(), raw_body, hashlib.sha256 ).hexdigest() return hmac.compare_digest(expected, signature)
Сделано для реального мира
Сети падают, эндпоинты тротлят, деплои случаются. Вебхуки ставятся в очередь, повторяются и показывают статус доставки.
Доставка через очередь
Ответы сразу возвращаются респонденту. Доставка вебхука идёт фоном через очередь — не блокирует форму.
Экспоненциальный backoff
Неудачные доставки повторяются с экспоненциальным backoff. Не лупим ваш эндпоинт, когда ему и так плохо.
Несколько повторных попыток
Каждая доставка пробуется несколько раз в течение часов. Достаточно времени, чтобы оправиться от сбоя без потери данных.
Журнал доставки
Каждая попытка записана — запрос, код ответа, фрагмент тела, timestamp. Сбои можно посмотреть в настройках формы.
Ключи идемпотентности
Каждая доставка содержит уникальный ID. Используйте как ключ идемпотентности, чтобы безопасно дедуплицировать повторы.
Запись в аудите
Изменения URL, ротация секретов и включение/выключение записываются в журнал аудита рабочего пространства.
Что строят на вебхуках
Синхронизация с собственным CRM
Отправляйте лиды в свою CRM с тем маппингом полей, какой ждёт ваша система.
Уведомления Slack / Discord
Помимо нативной интеграции со Slack, стройте свои потоки уведомлений с богатыми payload.
Бэкенд-обработка
Запускайте фоновые задачи, отправляйте транзакционные письма, валидируйте данные, синхронизируйте с хранилищем.
Альтернатива Zapier / Make
Не платите за middleware. Один вебхук может разойтись на любое количество внутренних сервисов.
Настройка за 4 шага
Настройте один раз — доставляйте всегда.
Откройте настройки формы
В панели откройте форму и перейдите в Интеграции → Вебхуки.
Добавьте URL эндпоинта
Вставьте HTTPS-URL, который будет принимать ответы. Перед сохранением мы проверяем, что эндпоинт отвечает.
Скопируйте секрет подписи
Каждой форме выдаётся уникальный секрет. Сохраните его на сервере и используйте для проверки входящих payload.
Отправьте тест
Отправьте тестовый ответ и проверьте журнал доставки. Убедитесь, что ваш эндпоинт вернул 2xx и проверка подписи прошла.
Частые вопросы
Связанные интеграции
Slack
Готовая доставка в Slack — без работы с подписью.
Подробнее →Notion
Отправляйте в базу Notion без единой строки кода.
Подробнее →Платежи Stripe
Payload вебхуков включают статус платежа, когда платежи привязаны.
Подробнее →Все интеграции
Посмотрите Stripe, Notion, Slack, Airtable, Google Forms и другие — увидите, как всё связано.
Все интеграции →