n8n workflows
AI-Public може запускати workflowи n8n через робочий Webhook у виробництві. Це корисно, коли потрібно запустити автоматизований процес поза AI-Public, наприклад створення завдання, оновлення запису CRM, запуск потоку звітності або передавання даних форми до іншої системи.
Приклад: новинна стаття на сайті організації
Уявімо, що організація створила workflow у n8n, який публікує новину на сайті WordPress. У AI-Public ви заповнюєте лише короткий фрагмент тексту, наприклад кілька речень про зустріч, проект або публічне оголошення. З цього тексту ви запускаєте workflow в n8n.
Workflow n8n може згодом, наприклад:
- З короткого тексту створити гарний чернетковий текст за допомогою LLM-нодою та підходящим запитом, що відповідає тону організації.
- Створити відповідну ілюстрацію за допомогою другої LLM-нодою, наприклад у фірмових кольорах та у впізнаваному ілюстративному стилі.
- Підготувати або опублікувати текст і зображення як блог-пост на сайті WordPress.
Так AI-Public і n8n працюють разом: у AI-Public користувач обирає workflow та заповнює необхідні дані. далі n8n виконує автоматизовані кроки та забезпечує, щоб новинна стаття коректно з’явилася на сайті.
Що робить ця інтеграція?
Ви запускаєте workflow з перегляду workflow. Обов’язковими є лише production webhook, POST та Header Auth. Поля та зворотні повідомлення з n8n є опційними та можуть налаштовуватися незалежно.
- Якщо у workflow немає полів, webhook викликається одразу.
- Якщо у workflow є поля, спочатку відкривається форма. Користувач заповнює поля і запускає workflow кнопкою.
- Введені значення надсилаються як JSON у POST-запиті до n8n веб-хука.
- Без зворотних повідомлень AI-Public підтверджує лише, що workflow запущено і далі працює в n8n. Вікно не відображає спінер і може бути закрите.
- Якщо це увімкнено під час реєстрації, workflow може надсилати проміжні кроки або кінець назад до AI-Public.
- Якщо після реєстрації увімкнено схвалення, користувач може зробити вибір прямо в AI-Public. далі n8n продовжує з очікуваного кроку.
Що робить інтеграція?
Інтерфейс workflow у вигляді списку. Обов’язковими є лише production webhook, POST та Header authentication. Поля та зворотні повідомлення з n8n є опційними та можуть бути налаштовані незалежно.
- Якщо у workflow немає полів, webhook викликається відразу.
- Якщо є поля, спочатку відкривається форма. Користувач заповнює поля та запускає workflow кнопкою.
- Заповнені значення надсилаються як JSON у POST-запиті до webhook n8n.
- Без зворотних повідомлень AI-Public просто підтверджує, що workflow запущено й надалі працює в n8n. Вікно не показує спінер і може бути закрите.
- Якщо увімкнено під час реєстрації, workflow може повертати проміжні кроки або кінець назад до AI-Public.
- Якщо увімкнено схвалення під час реєстрації, користувач може вибрати щось прямо в AI-Public. потім n8n продовжує з очікуваного кроку.
Створення n8n workflow у AI-Public
Адміністратор реєструє workflow так:
- Перейдіть до Помічники.
- Відкрийте Workflow’и.
- Виберіть Новий n8n workflow.
- Введіть назву workflow та production URL для n8n.
- Налаштуйте Header authentication із ім’ям заголовка та секретним значенням заголовка.
- Під Terugmeldingen uit n8n позначте лише ті компоненти, які справді були побудовані в цьому n8n-workflow: прогрес, схвалення та/або кінець workflow.
- За потреби додайте поля, які потрібно передати у POST-запиті.
- Збережіть workflow.
Усі три варіанти зворотних повідомлень за замовчуванням вимкнені. Якщо пізніше ви додасте callbacks або етап схвалення в n8n, оновіть також реєстрацію в AI-Public. Діалог тоді знає, чи потрібно показувати лише підтвердження запуску або чекати на подальші сигнали.
Поля
- Поля є опційними.
- У кожного поля є одне ім’я поля та тип.
- Підтримувані типи полів: короткий текст, довгий текст, число, так/ні, дата, один вибір та декілька виборів.
- При Один вибір та Кілька виборів додаються доступні опції. Один вибір відображається як компактний випадаючий список; Кілька виборів — як прапорці. Обране значення або значення надсилаються в JSON-телі.
- Обов’язкові поля мають бути заповнені, щоб workflow міг стартувати.
- Ім’я поля стає ключем у JSON-тілі, що надсилається до n8n.
Створення сумісного workflow в n8n
- Створіть у n8n новий workflow.
- Додайте на початку вузол Webhook.
- Дайте цьому вузлу точну назву Start workflow. Нижченаведені приклади виразів використовують цю назву.
- Встановіть HTTP Method на POST.
- Оберіть Authentication: Header Auth та використайте таке саме ім’я заголовка та секретне значення, як у AI-Public.
- Встановіть Respond або Response Mode на Immediately.
- Скопіюйте Production URL у поле n8n production-url в AI-Public. Не використовуйте тестовий URL з '/webhook-test/'.
- Активуйте workflow.
Отримані дані знаходяться під body; технічні дані інтеграції знаходяться під body.integration. Не видаляйте їх у Edit Fields-, Set- чи Code-ноді.
Приклад JSON тіла
Якщо ви визначаєте поля з такими назвами: prompt, klantnaam, doelgroepen та datum, тоді n8n отримає, наприклад, таке JSON-тло. AI-Public автоматично додає об’єкт integration.
{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["inwoners", "medewerkers"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}
Секретний токен зворотного виклику відповідає лише одній інстанції. Не зберігайте його у логах, у постійних конфігураціях або в інших системах.
Опційно: надсилати прогрес і завершення
AI-Public може відображати лише те, що надсилає n8n. Використовуйте ці callbacks лише якщо під час реєстрації ввімкнено Повідомляти проміжний прогрес та/або Повідомляти про завершення workflow.
Налаштуйте кожен callback-node так:
-
Виберіть Method: POST.
-
Відкрийте URL на Expression та вставте:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Виберіть Authentication: None.
-
Увімкніть Send Headers та додайте нижченаведені заголовки.
-
Увімкніть Send Body та виберіть Body Content Type: JSON та Specify Body: Using JSON.
Використовуйте ці заголовки:
Authorization: Bearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
Content-Type: application/json
Наприклад, надішліть це повідомлення, коли крок починається:
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "document-maken-gestart",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "document_maken",
"label": "Document maken"
},
"message": "Het document wordt gemaakt."
}
- Для кожної події в рамках однієї виконання використовуйте унікальний
eventId. - Використовуйте чітке нідерландське
step.label; цей текст буде показано в додатку. - Якщо ви увімкнули Het einde van de workflow melden, надсилайте наприкінці завжди
type: "completed",type: "failed"абоtype: "rejected". - При
completedможна додати об’єктoutputз результатом. - При
failedнадайте зрозуміле повідомлення про помилку. Виконання також зупиниться в додатку.
Опційно: запит на схвалення в додатку
Використовуйте вузол n8n Wait з On Webhook Call, якщо workflow дозволяє далі лише після вибору. Відправте перед Wait-вузлом зворотний виклик з type: "approval_required":
Налаштуйте Wait-вузол на Resume: On Webhook Call, HTTP Method: POST та Authentication: Header Auth. Оберіть таке ж облікові дані Header Auth, як і для Start workflow. Після Wait-вузла додайте вузол Switch та перевіряйте {{ $json.body.decision }}.
{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "controle-document",
"type": "approval_required",
"executionId": "{{ $execution.id }}",
"step": {
"id": "controle_document",
"label": "Document controleren"
},
"approval": {
"question": "Mag de workflow doorgaan?",
"context": "Controleer eerst het gegenereerde document.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Goedkeuren" },
{ "value": "reject", "label": "Afwijzen" }
]
}
}
Користувач бачить варіанти в вікні виконання. Після вибору Wait вузол отримує серед іншого decision. Потім використовуйте, наприклад, вузол Switch для визначення подальшого шляху.
Значення вибору може містити лише літери, цифри, _ та -. Мітка може містити звичайний читабельний текст.
Налаштування production callback-url
Production callback-url для AI-Public:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback
Не вставляйте цей URL як фіксований текст у кожен callback-node. У полі URL HTTP Request вузла використайте Expression та застосуйте:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-Public надає під час кожного старту правильний production-url. Фіксований URL вище використовуйте під час тестування, щоб перевірити, що вираз посилається на AI-Public, а не на AI-School або AI-Corporate.
Виклики triggerCustomN8nWorkflow, triggerN8nWorkflow та resumeN8nWorkflow викликаються самою системою. Ці URL не потрібно налаштовувати в n8n.
Обробка помилок
Надсилайте очікувані помилки з зворотним викликом типу failed. Також створіть централізовану Error Workflow для непередбачених помилок вузлів:
-
Створіть новий workflow з вузлом Error Trigger.
-
Додайте потім вузол HTTP Request із Method: POST.
-
У полі URL використайте цей виробничий URL:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed -
Оберіть Authentication: None та додайте заголовок
n8n-handihow-nameзі секретним значенням за замовчуванням від адміністратора платформи. -
Виберіть JSON-тіло та вставте:
{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
- Активуйте Error Workflow.
- Відкрийте налаштування звичайного workflow і виберіть його у розділі Error Workflow.
Надсилайте одразу після Start workflow мінімум один callback з executionId: "{{ $execution.id }}". Тільки так AI-Public зможе прив’язати неочікувану помилку до потрібного виконання.
Важливі обмеження
- підтримуються лише webhook-триґери.
- підтримуються лише production webhook-URL.
- тестові webhook-URL з '/webhook-test/' відхиляються.
- підтримується лише POST.
- підтримується лише загальний заголовок autenticatie.
- значення заголовка обробляються в застосунку як секрет.
- токени зворотних викликів та resume-url обробляються лише на сервері й недоступні безпосередньо користувачам.
- tenancy визначається на сервері з увійняного користувача, а не з значення, яке надсилає браузер.
Вирішення проблем
- 404 або webhook не реєстрований: увімкніть workflow в n8n та використайте production-url.
- Помилка автентифікації: переконайтесь, що ім’я заголовка та значення в обох системах точно однакові.
- Відсутні дані: перевірте, чи збігаються імена полів у застосунку з ключами, які очікує n8n.
- Немає запиту в n8n: перевірте, чи workflow починається з webhook-триґера та використовує POST.
- Вікно виконання продовжує крутитися: якщо ви ввімкнули завершення workflow, перевірте, чи n8n надсилає останній
completed,failedабоrejectedзворотний виклик. Якщо очікувати зворотних повідомлень не потрібно, вимкніть усі три опції під час реєстрації. - Немає прогресу: перевірте, чи увімкнено Повідомляти проміжний прогрес під час реєстрації, або чи збережено об’єкт
integrationта чи кожне зворотне повідомлення має унікальнийeventId. - Кнопки схвалення не працюють: перевірте вузол Wait,
resumeUrl, автентифікацію заголовків та допустимі символи вchoices[].value.