Перейти к содержимому

Интеграции и вебхуки

При отправке формы forms.projme может доставить ответ на ваш endpoint через вебхук.

Создайте вебхук в настройках формы (Настройки → Вебхуки): укажите название, URL, HTTP-метод (GET/POST/PUT/PATCH/DELETE/HEAD), события-триггеры и необязательные заголовки. Мастер создания также позволяет задать шаблон payload’а и email для уведомлений об успехе/провале доставки.

В интерфейсе доступны события form_submitted (отправка формы), form_viewed (просмотр) и form_started (начало заполнения). В настоящее время доставки инициируются при событии form_submitted — это основное событие, покрывающее сценарии «передать ответ во внешнюю систему».

Доставка form_submitted — это JSON-запрос вида:

{
"event": "form_submitted",
"formId": "…",
"submissionId": "…",
"ipAddress": "…",
"formData": { "field_id": "value" },
"formatted": { "field_label": "value" }
}

formData — исходные значения полей; formatted — человекочитаемое представление (подписи вопросов вместо id).

Чтобы ваш endpoint знал, что запрос подлинный, используйте один из способов ниже. Управление secret’ом и токеном появится в интерфейсе вебхуков; если способ нужен вам сейчас (HMAC уже поддерживается платформой), напишите нам — настроим.

Для вебхука задан secret. Каждая доставка включает заголовок:

X-Webhook-Signature: HMAC-SHA256(тело-запроса, secret) (hex)

Проверяйте на своей стороне: пересчитайте HMAC-SHA256(raw_body, secret) и сравните с заголовком.

К каждой доставке можно добавить произвольные заголовки — например, статический токен вида X-Form-Token: <значение>, который проверяет ваш endpoint. Токены отправляются только так, как настроен URL вебхука; для безопасности используйте https://.

Если вставить URL вебхука Slack или Discord, payload автоматически форматируется под этот сервис (embed/attachments).

Доставки повторяются до 3 попыток с экспоненциальной задержкой. Каждая попытка логируется (статус, ответ, ошибка) — историю можно посмотреть в настройках вебхука; дополнительно настраиваются email-уведомления об успехе/провале. Неудавшуюся доставку можно повторить вручную.

  • Кастомный заголовок-токен: узел Webhook в n8n с Authentication = Header Auth, заголовок (например X-Form-Token) = ваше значение, передаваемое в кастомных заголовках вебхука.
  • HMAC: узел Webhook с Authentication = None и проверка X-Webhook-Signature в Code-узле (пересчёт HMAC по сырому телу).