Що потрібно
- n8n Cloud: платні тарифи від 20 € на місяць при оплаті за рік, є пробний період. За словами n8n, дані Cloud зберігаються у Франкфурті.
- Власний сервер: Community Edition безкоштовна. Formgong шле запити лише на HTTPS, порт 443 і публічний домен. Адресу
http://localhost:5678чи IP з локальної мережі він не прийме. Поставте n8n за reverse proxy із TLS-сертифікатом і вкажіть цю публічну адресу в зміннійWEBHOOK_URL. - Formgong: на Free один вебхук на форму, на Pro і Business — п'ять. Заміна тестової адреси на робочу займає той самий слот.
Інтерфейс n8n англійською, тож назви полів нижче англійські.
Покроково
- Створіть workflow і додайте тригер Webhook.
- HTTP Method — POST. Path зробіть зрозумілим, наприклад
formgong-contact. - Authentication лишіть None: Formgong не передає Basic, заголовки чи JWT. Замість цього перевіряйте підпис (нижче). IP allowlist теж не підійде: Formgong шле запити з мережі Cloudflare, а не з фіксованих адрес.
- Respond — Immediately. Formgong чекає відповіді лише 10 секунд.
- Скопіюйте Test URL. У Formgong відкрийте Налаштування форми → Вебхук, вставте адресу і натисніть «Додати вебхук».
- У n8n натисніть Listen for test event і надішліть справжню заявку з сайту.
- Додайте наступні вузли і зіставте поля. Коли все працює, видаліть тестову адресу у Formgong і додайте Production URL.
- Опублікуйте workflow. Робочі запуски видно у вкладці Executions, а не на полотні.
Що видає Webhook node
Вузол повертає headers, params, query і body. JSON від Formgong лежить у body.
{
"event": "submission.created",
"form": {
"id": "6f1c2a9e-4b7d-4e0a-9c3f-2d8b5e7a1f40",
"name": "Контакти"
},
"submission": {
"id": "b3e04c51-8a2f-4d6e-9f17-0c5a3b8d2e96",
"created_at": "2026-10-03T09:15:00.000Z",
"page_url": "https://example.com/contact",
"fields": {
"name": "Олена Коваль",
"email": "olena@example.com",
"phone": "+380501234567",
"message": "Порахуйте, будь ласка, 20 одиниць",
"utm_source": "google"
},
"is_spam": false
}
}Імена заголовків приходять малими літерами: $json.headers["x-signature"] і $json.headers["x-formgong-event"].
Зіставлення полів
| Що потрібно | Вираз n8n |
|---|---|
| Будь-яке поле форми | {{ $json.body.submission.fields.email }} |
| Назва форми | {{ $json.body.form.name }} |
| Адреса сторінки | {{ $json.body.submission.page_url }} |
| Тип події | {{ $json.body.event }} |
| Унікальний ID | {{ $json.body.submission.id }} |
Щоб пропускати тестові доставки, в опціях Webhook node вкажіть Only Run If: {{ $json.body.event === 'submission.created' }}. Запити, що не підійшли, все одно отримують 200, тож Formgong їх не повторює.
За бажанням: перевірка підпису
Підпис — це HMAC-SHA256 від сирого тіла з ключем «Секрет підпису» з вкладки «Вебхук». У n8n його можна перевірити без коду:
- В опціях Webhook node увімкніть Raw Body. Тіло прийде як бінарні дані.
- Додайте вузол Crypto: дія Hmac, Binary File увімкнено, бінарна властивість із Webhook node, тип SHA256, кодування HEX. Секрет підпису вкажіть у полі Hmac Secret облікових даних Crypto.
- Додайте вузол If:
sha256=плюс результат Crypto має дорівнювати{{ $('Webhook').item.json.headers['x-signature'] }}. - На гілці true вузол Extract from File (Extract From JSON) знову перетворить сире тіло на поля.
Підписаний запит із терміналу
SECRET='<your signing secret>'
URL='<your webhook URL>'
BODY='{"event":"webhook.test","form":{"id":"x","name":"Test"},"submission":{"id":"test","created_at":"2026-10-03T09:15:00.000Z","page_url":null,"fields":{"message":"Formgong test"},"is_spam":false}}'
SIG=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.* //')
curl -sS -X POST "$URL" \
-H 'content-type: application/json' \
-H 'x-formgong-event: webhook.test' \
-H "x-signature: sha256=$SIG" \
--data "$BODY"Якщо щось не працює
- 404 в «Останніх доставках»: Test URL працює лише один раз і лише поки n8n слухає. Production URL працює лише в опублікованому workflow.
- Formgong не приймає адресу: вона має починатися з
https://, використовувати порт 443 і вести на публічний домен. - Тайм-аути й дублі: із Respond = When Last Node Finishes повільний workflow може перевищити 10 секунд. Тоді Formgong повторить запит, і workflow запуститься знову. Відповідайте одразу і перевіряйте
submission.idперед створенням записів. - Статус 3xx: proxy, що робить редирект (http на https чи без кінцевого слеша), — це помилка. Вставляйте адресу точно так, як її показує n8n.
- Група чекбоксів в одному полі: позначені пункти з однаковим ім'ям приходять одним рядком, наприклад
Email, Телефон. Щоб отримати масив, використайте{{ $json.body.submission.fields.contact.split(', ') }}.
Запитання й відповіді
Чи кожна заявка — це запуск (execution) у n8n?
На n8n Cloud так: один робочий запуск на заявку, скільки б вузлів не було. У Community Edition на своєму сервері квоти запусків немає.
Cloud чи власний сервер — що краще для GDPR?
Підходять обидва. За словами n8n, дані Cloud лежать у Франкфурті. Власний сервер тримає їх у вас. Сам Formgong зберігає заявки в ЄС.
Чи можна ввімкнути авторизацію заголовком у Webhook node?
Ні, Formgong не додає власних заголовків. Перевіряйте X-Signature: він доводить, що запит прийшов із вашої форми.
Як передати заявку з n8n у KeyCRM?
Додайте вузол HTTP Request, який шле POST в API KeyCRM із вашим ключем. Повне тіло — в інструкції для KeyCRM.
Джерела
Перевірено 03.10.2026 за офіційною довідкою та публічними сторінками: Документація n8n: Webhook node, Документація n8n: Crypto node, Документація n8n: HTTP Request node, Ціни n8n, Довідка Formgong про вебхуки.