Перейти до основного змісту

Робочі процеси n8n

AI-Public може запускати робочі процеси n8n через production webhook. Це зручно, коли ви хочете ініціювати автоматизований процес поза AI-Public, наприклад створення завдання, оновлення запису в CRM, запуску потоку звітності або передавання даних форми в іншу систему.

Приклад: новинна стаття на сайті організації​

Припустімо, організація створила workflow n8n, який публікує новинну статтю на сайті WordPress. У AI-Public ви тоді вводите лише короткий текст, наприклад кілька речень про зустріч, проєкт або публічне оголошення. Саме цим текстом ви запускаєте workflow в n8n.

Після цього workflow n8n може, наприклад:

  1. Перетворити короткий текст на акуратний чернетковий матеріал за допомогою вузла LLM і промпта, що добре відповідає тону організації.
  2. Згенерувати відповідну ілюстрацію за допомогою другого вузла LLM, наприклад у кольорах фірмового стилю та в упізнаваному ілюстративному стилі.
  3. Підготувати або опублікувати текст і зображення як блоговий допис на сайті 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 так:

  1. Перейдіть до Асистенти.
  2. Відкрийте вкладку Асистенти workflow.
  3. Натисніть у картці зверху Новий workflow і виберіть n8n workflow.
  4. Введіть назву workflow та production URL n8n.
  5. Налаштуйте Header authentication із назвою заголовка та секретним значенням заголовка.
  6. У розділі Зворотні повідомлення з n8n позначте лише ті частини, які справді реалізовані в цьому n8n-workflow: прогрес, схвалення та/або завершення workflow.
  7. За потреби додайте поля, які мають надсилатися в POST-request.
  8. Збережіть workflow.

Усі три опції зворотних повідомлень за замовчуванням вимкнені. Якщо пізніше додасте callbacks або крок схвалення в n8n, оновіть також реєстрацію в AI-Public. Тоді діалог знатиме, чи має показати лише підтвердження запуску, чи чекати на подальші сигнали.

Поля​

  • Поля є необов’язковими.
  • Кожне поле має одну назву поля та тип.
  • Підтримувані типи полів: короткий текст, довгий текст, число, так/ні, дата, один варіант і кілька варіантів.
  • Для Один варіант і Кілька варіантів додайте доступні опції. Один варіант показується як компактний список вибору; Кілька варіантів показує прапорці. Обране значення або значення надсилаються в JSON body.
  • Обов’язкові поля мають бути заповнені, перш ніж workflow можна буде запустити.
  • Назва поля стає key у JSON body, який надсилається до n8n.

Створення сумісного workflow в n8n​

  1. Створіть у n8n новий workflow.
  2. Додайте як перший node Webhook.
  3. Дайте цьому node точну назву Start workflow. Нижченаведені приклади виразів використовують саме цю назву.
  4. Встановіть HTTP Method на POST.
  5. Виберіть Authentication: Header Auth і використайте ту саму назву заголовка та секретне значення, що й в AI-Public.
  6. Встановіть Respond або Response Mode на Immediately.
  7. Скопіюйте Production URL у поле n8n productie-url в AI-Public. Не використовуйте test-url з /webhook-test/.
  8. Активуйте 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 так:

  1. Виберіть Method: POST.

  2. Біля URL натисніть Expression і вставте:

    {{ $('Start workflow').first().json.body.integration.callbackUrl }}
  3. Виберіть Authentication: None.

  4. Увімкніть Send Headers і додайте наведені нижче заголовки.

  5. Увімкніть 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:

  1. Створіть новий workflow з вузлом Error Trigger.

  2. Додайте після нього вузол HTTP Request з Method: POST.

  3. У поле URL вставте цей фіксований production URL:

    https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Виберіть Authentication: None і додайте заголовок n8n-handihow-name із секретним стандартним значенням від адміністратора платформи.

  5. Виберіть JSON body і вставте:

{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
  1. Активуйте Error Workflow.
  2. Відкрийте налаштування звичайного 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.