Робочі процеси n8n
AI-Public може запускати робочі процеси n8n через production webhook. Це зручно, коли ви хочете ініціювати автоматизований процес поза AI-Public, наприклад створення завдання, оновлення запису в CRM, запуску потоку звітності або передавання даних форми в іншу систему.
Приклад: новинна стаття на сайті організації
Припустімо, організація створила workflow n8n, який публікує новинну статтю на сайті WordPress. У AI-Public ви тоді вводите лише короткий текст, наприклад кілька речень про зустріч, проєкт або публічне оголошення. Саме цим текстом ви запускаєте workflow в n8n.
Після цього workflow n8n може, наприклад:
- Перетворити короткий текст на акуратний чернетковий матеріал за допомогою вузла LLM і промпта, що добре відповідає тону організації.
- Згенерувати відповідну ілюстрацію за допомогою другого вузла LLM, наприклад у кольорах фірмового стилю та в упізнаваному ілюстративному стилі.
- Підготувати або опублікувати текст і зображення як блоговий допис на сайті WordPress.
Так AI-Public і n8n працюють разом: в AI-Public користувач обирає workflow і вводить потрібну інформацію. Потім n8n виконує автоматизовані кроки й забезпечує, щоб новинна стаття коректно з’явилася на сайті.
Що робить ця інтеграція?
Ви запускаєте workflow n8n з огляду workflow. Обов’язковими є лише production webhook, POST і Header Auth. Поля та зворотні повідомлення з n8n є необов’язковими й можуть налаштовуватися незалежно одне від одного.
- Якщо в workflow немає полів, webhook викликається одразу.
- Якщо workflow має поля, спочатку відкривається форма. Користувач заповнює поля й потім запускає workflow кнопкою.
- Введені значення надсилаються як JSON у POST-request до webhook n8n.
- Без зворотних повідомлень AI-Public лише підтверджує, що workflow запущено, а далі він виконується в n8n. Вікно не показує spinner і його можна одразу закрити.
- Якщо це ввімкнено під час реєстрації, workflow може надсилати проміжні кроки або завершення назад до AI-Public.
- Якщо під час реєстрації ввімкнено очікування схвалення, користувач може зробити вибір безпосередньо в AI-Public. Після цього n8n продовжує роботу з кроку очікування.
Створення workflow n8n в AI-Public
Адміністратор реєструє workflow так:
- Перейдіть до Асистенти.
- Відкрийте вкладку Асистенти workflow.
- Натисніть у картці зверху Новий workflow і виберіть n8n workflow.
- Введіть назву workflow та production URL n8n.
- Налаштуйте Header authentication із назвою заголовка та секретним значенням заголовка.
- У розділі Зворотні повідомлення з n8n позначте лише ті частини, які справді реалізовані в цьому n8n-workflow: прогрес, схвалення та/або завершення workflow.
- За потреби додайте поля, які мають надсилатися в POST-request.
- Збережіть workflow.
Усі три опції зворотних повідомлень за замовчуванням вимкнені. Якщо пізніше додасте callbacks або крок схвалення в n8n, оновіть також реєстрацію в AI-Public. Тоді діалог знатиме, чи має показати лише підтвердження запуску, чи чекати на подальші сигнали.
Поля
- Поля є необов’язковими.
- Кожне поле має одну назву поля та тип.
- Підтримувані типи полів: короткий текст, довгий текст, число, так/ні, дата, один варіант і кілька варіантів.
- Для Один варіант і Кілька варіантів додайте доступні опції. Один варіант показується як компактний список вибору; Кілька варіантів показує прапорці. Обране значення або значення надсилаються в JSON body.
- Обов’язкові поля мають бути заповнені, перш ніж workflow можна буде запустити.
- Назва поля стає key у JSON body, який надсилається до n8n.
Створення сумісного workflow в n8n
- Створіть у n8n новий workflow.
- Додайте як перший node Webhook.
- Дайте цьому node точну назву Start workflow. Нижченаведені приклади виразів використовують саме цю назву.
- Встановіть HTTP Method на POST.
- Виберіть Authentication: Header Auth і використайте ту саму назву заголовка та секретне значення, що й в AI-Public.
- Встановіть Respond або Response Mode на Immediately.
- Скопіюйте Production URL у поле n8n productie-url в AI-Public. Не використовуйте test-url з
/webhook-test/. - Активуйте workflow.
Отримані дані містяться в body; технічні дані інтеграції — у body.integration. Не видаляйте їх у вузлі Edit Fields, Set або Code.
Приклад JSON body
Якщо ви визначите поля з назвами prompt, klantnaam, doelgroepen і datum, n8n, наприклад, отримає такий JSON body. AI-Public автоматично додає об’єкт integration.
{
"prompt": "Створи короткий підсумок запиту.",
"klantnaam": "Приклад організації",
"doelgroepen": ["мешканці", "співробітники"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "тимчасовий-токен-для-цього-виконання"
}
}
Callbacktoken належить одному виконанню. Не зберігайте його в логах, постійній конфігурації чи інших системах.
Необов’язково: надсилати назад прогрес і завершення
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": "Створення документа"
},
"message": "Документ створюється."
}
- Для кожної події в межах одного виконання використовуйте унікальний
eventId. - Використовуйте чіткий український
step.label; цей текст відображається в додатку. - Якщо ви ввімкнули Повідомляти про завершення workflow, наприкінці завжди надсилайте
type: "completed",type: "failed"абоtype: "rejected". - Для
completedза потреби додайте об’єктoutputз результатом. - Для
failedнадішліть зрозуміле повідомлення про помилку. Тоді виконання також зупиняється в додатку.
Необов’язково: запитати схвалення в додатку
Використовуйте n8n Wait node з On Webhook Call, якщо workflow може продовжитися лише після вибору. Перед Wait node надішліть callback із type: "approval_required":
Налаштуйте Wait node на Resume: On Webhook Call, HTTP Method: POST та Authentication: Header Auth. Виберіть той самий Header Auth credential, що й для Start workflow. Після Wait node додайте Switch node і перевіряйте в ньому {{ $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": "Перевірка документа"
},
"approval": {
"question": "Чи може workflow продовжитися?",
"context": "Спочатку перевірте згенерований документ.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Схвалити" },
{ "value": "reject", "label": "Відхилити" }
]
}
}
Користувач бачить варіанти у вікні виконання. Після вибору Wait node отримує, серед іншого, decision. Потім використайте, наприклад, Switch node, щоб визначити потрібний подальший шлях.
Значення варіанта може містити лише літери, цифри, _ і -. А label може містити звичайний читабельний текст.
Налаштування 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.
Callable triggerCustomN8nWorkflow, triggerN8nWorkflow і resumeN8nWorkflow викликаються самим додатком. Ці URL не потрібно налаштовувати в n8n.
Обробка помилок
Надсилайте очікувані помилки назад через callback типу failed. Для неочікуваних помилок вузлів також створіть центральний Error Workflow:
-
Створіть новий workflow з вузлом Error Trigger.
-
Додайте після нього вузол HTTP Request з Method: POST.
-
У поле URL вставте цей фіксований production URL:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed -
Виберіть Authentication: None і додайте заголовок
n8n-handihow-nameіз секретним стандартним значенням від адміністратора платформи. -
Виберіть JSON body і вставте:
{
"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 triggers.
- Підтримуються лише production webhook-URL.
- Test-webhook-URL з
/webhook-test/відхиляються. - Підтримується лише POST.
- Підтримується лише generic header authentication.
- Значення заголовка в додатку обробляється як секрет.
- Callbacktokens і resume-url обробляються лише на сервері й не доступні користувачам безпосередньо.
- Tenant визначається на сервері з даних увійденого користувача, а не зі значення, яке надсилає браузер.
Усунення проблем
- 404 або webhook не зареєстровано: активуйте workflow в n8n і використовуйте production URL.
- Помилка автентифікації: перевірте, чи назва заголовка та значення в обох системах абсолютно однакові.
- Відсутні дані: перевірте, чи назви полів у застосунку відповідають keys, які очікує n8n.
- Немає запиту в n8n: перевірте, чи workflow починається з webhook trigger і використовує POST.
- Вікно виконання не закривається: якщо ви ввімкнули Повідомляти про завершення workflow, перевірте, чи n8n надсилає останній callback
completed,failedабоrejected. Якщо ви не очікуєте зворотних повідомлень, вимкніть усі три опції під час реєстрації. - Не видно прогресу: перевірте, чи під час реєстрації увімкнено Повідомляти проміжний прогрес, чи зберігається об’єкт
integrationі чи кожен callback має унікальнийeventId. - Кнопки схвалення не працюють: перевірте Wait node,
resumeUrl, header authentication і дозволені символи вchoices[].value.