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

n8n workflows

AI-Public може запускати workflowи n8n через робочий 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 з перегляду 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 так:

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

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

Поля

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

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

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

  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": "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 для непередбачених помилок вузлів:

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

  2. Додайте потім вузол HTTP Request із Method: POST.

  3. У полі URL використайте цей виробничий URL:

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

  5. Виберіть JSON-тіло та вставте:

{
"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-триґери.
  • підтримуються лише 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.
WhatsApp