n8n workflows
AI-Corporate може запускати n8n workflows через production webhook. Це зручно, коли потрібно запустити автоматизований процес поза AI-Corporate, наприклад створення задачі, оновлення запису в CRM, запуск потоку звітності або передавання даних форми до іншої системи.
Приклад: новинна стаття на корпоративному вебсайті
Припустімо, організація створила n8n workflow, який публікує новинну статтю на WordPress-сайті компанії. В AI-Corporate тоді достатньо ввести короткий текст, наприклад кілька речень про кейс клієнта, подію або внутрішню віху. За цим текстом ви запускаєте workflow в n8n.
Після цього n8n workflow може, наприклад:
- Перетворити короткий текст на акуратний чорновик за допомогою LLM node і prompt, що добре відповідає тону організації.
- Згенерувати відповідну ілюстрацію за допомогою другого LLM node, наприклад у фірмових кольорах і в упізнаваному ілюстративному стилі.
- Підготувати або опублікувати текст і зображення як допис у блозі на WordPress-сайті.
Так AI-Corporate і n8n працюють разом: в AI-Corporate користувач обирає workflow і вводить потрібну інформацію. Потім n8n виконує автоматизовані кроки й забезпечує, щоб новинна стаття акуратно з’явилася на сайті.
Що робить ця інтеграція?
Ви запускаєте n8n workflow з огляду workflow. Обов’язковими є лише production webhook, POST і Header Auth. Поля та зворотні повідомлення з n8n є необов’язковими й можуть налаштовуватися незалежно одне від одного.
- Якщо workflow не має полів, webhook викликається одразу.
- Якщо workflow має поля, спочатку відкривається форма. Користувач заповнює поля й потім запускає workflow кнопкою.
- Введені значення надсилаються як JSON у POST-request до n8n webhook.
- Без зворотних повідомлень AI-Corporate лише підтверджує, що workflow запущено і далі він виконується в n8n. Вікно не показує spinner і його можна одразу закрити.
- Якщо це ввімкнено під час реєстрації, workflow може повертати проміжні кроки або завершення до AI-Corporate.
- Якщо під час реєстрації ввімкнено затвердження, користувач може зробити вибір безпосередньо в AI-Corporate. Після цього n8n продовжує з очікуючого кроку.
Створення n8n workflow в AI-Corporate
Адміністратор реєструє workflow так:
- Перейдіть до Асистенти.
- Відкрийте вкладку Workflow-асистенти.
- Натисніть на картку зверху Новий workflow і виберіть n8n workflow.
- Введіть назву workflow і production URL n8n.
- Налаштуйте Header authentication з header name і секретним header value.
- У розділі Зворотні повідомлення з n8n позначте лише ті частини, які справді реалізовані в цьому n8n-workflow: прогрес, затвердження та/або завершення workflow.
- За потреби додайте поля, які мають передаватися в POST-request.
- Збережіть workflow.
Усі три параметри зворотних повідомлень за замовчуванням вимкнені. Якщо згодом додасте callbacks або крок затвердження в n8n, оновіть і реєстрацію в AI-Corporate. Так діалог знатиме, чи потрібно показати лише підтвердження запуску, чи чекати на подальші сигнали.
Поля
- Поля є необов’язковими.
- Кожне поле має одну назву поля та тип.
- Підтримувані типи полів: короткий текст, довгий текст, число, так/ні, дата, один варіант і кілька варіантів.
- Для Один варіант і Кілька варіантів додайте доступні опції. Один варіант показується як компактний список вибору; Кілька варіантів показує прапорці. Обране значення або значення надсилаються в JSON body.
- Обов’язкові поля мають бути заповнені, перш ніж workflow можна буде запустити.
- Назва поля стає ключем у JSON body, який надсилається до n8n.
Створення сумісного workflow в n8n
- Створіть у n8n новий workflow.
- Першим node додайте Webhook.
- Дайте цьому node точну назву Start workflow. Наведені нижче приклади expresssions використовують цю назву.
- Встановіть HTTP Method на POST.
- Виберіть Authentication: Header Auth і використайте ту саму назву header і секретне значення, що й в AI-Corporate.
- Встановіть Respond або Response Mode на Immediately.
- Скопіюйте Production URL у поле n8n productie-url в AI-Corporate. Не використовуйте test-url з
/webhook-test/. - Активуйте workflow.
Отримані дані знаходяться в body; технічні дані інтеграції — в body.integration. Не видаляйте їх у Edit Fields-, Set- або Code-node.
Приклад JSON body
Якщо ви визначите поля з назвами prompt, klantnaam, doelgroepen і datum, n8n отримає, наприклад, такий JSON body. AI-Corporate автоматично додає об’єкт integration.
{
"prompt": "Створи короткий підсумок запиту.",
"klantnaam": "Приклад організації",
"doelgroepen": ["співробітники", "клієнти"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "тимчасовий-token-для-цього-запуску"
}
}
Callback-token належить одному запуску. Не зберігайте його в логах, постійній конфігурації чи інших системах.
Опційно: надсилання прогресу та завершення
AI-Corporate може показувати лише те, що повертає n8n. Використовуйте ці callbacks лише якщо під час реєстрації ви ввімкнули Повідомляти проміжний прогрес і/або Повідомляти про завершення workflow.
Налаштуйте кожен callback node так:
-
Виберіть Method: POST.
-
У полі URL натисніть Expression і вставте:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Виберіть Authentication: None.
-
Увімкніть Send Headers і додайте наведені нижче headers.
-
Увімкніть Send Body і виберіть Body Content Type: JSON та Specify Body: Using JSON.
Використовуйте ці headers:
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; цей текст показуватиметься в app. - Якщо ви ввімкнули Повідомляти про завершення workflow, наприкінці завжди надсилайте
type: "completed",type: "failed"абоtype: "rejected". - Для
completedза потреби додайте об’єктoutputз результатом. - Для
failedнадсилайте зрозуміле повідомлення про помилку. Після цього виконання також зупиняється в app.
Опційно: запит на затвердження в app
Використовуйте 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 credentials, що й для 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-Corporate:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback
Не вставляйте цей URL як фіксований текст у кожен callbacknode. У полі URL в HTTP Request node виберіть Expression і використайте:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
Так AI-Corporate автоматично надає правильний production URL під час кожного запуску. Наведений вище фіксований URL використовуйте, щоб під час тестування перевірити, чи expression веде до AI-Corporate, а не до AI-School або AI-Public.
Callables triggerCustomN8nWorkflow, triggerN8nWorkflow і resumeN8nWorkflow викликає сам app. Ці URL не потрібно налаштовувати в n8n.
Обробка помилок
Надсилайте очікувані помилки через callback типу failed. Для неочікуваних помилок node додатково створіть центральний Error Workflow:
-
Створіть новий workflow з node Error Trigger.
-
Далі додайте HTTP Request node з Method: POST.
-
У полі URL вкажіть цей фіксований production URL:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowExecutionFailed -
Виберіть Authentication: None і додайте header
n8n-handihow-nameіз секретним стандартним значенням platform-адміністратора. -
Виберіть 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-Corporate може прив’язати неочікувану помилку до правильного виконання.
Важливі обмеження
- Підтримуються лише webhook triggers.
- Підтримуються лише production webhook-urls.
- Test-webhook-urls з
/webhook-test/відхиляються. - Підтримується лише POST.
- Підтримується лише generic header authentication.
- Значення header в застосунку обробляється як секретне.
- Callbacktokens і resume-url-и обробляються лише на сервері й не доступні користувачам напряму.
- Tenant визначається на сервері на основі залогіненого користувача, а не з значення, яке надсилає браузер.
Усунення проблем
- 404 або webhook не зареєстровано: активуйте workflow у n8n і використовуйте production URL.
- Помилка автентифікації: перевірте, чи header name і value в обох системах збігаються точно.
- Відсутні дані: перевірте, чи назви полів у застосунку відповідають ключам, яких очікує n8n.
- Немає запиту в n8n: перевірте, чи workflow починається з webhook trigger і використовує POST.
- Вікно виконання не закривається: якщо ви ввімкнули Повідомляти про завершення workflow, перевірте, чи n8n надсилає фінальний callback
completed,failedабоrejected. Якщо зворотні повідомлення не потрібні, вимкніть усі три опції під час реєстрації. - Прогрес не видно: перевірте, чи ввімкнено Повідомляти проміжний прогрес під час реєстрації, чи збережено об’єкт
integrationі чи кожен callback має унікальнийeventId. - Кнопки затвердження не працюють: перевірте Wait node,
resumeUrl, header authentication і дозволені символи вchoices[].value.