n8n рабочие процессы
AI-Public может запускать рабочие процессы n8n через производственный webhook. Это удобно, когда вам нужно запустить автоматизированный процесс вне AI-Public, например создание задачи, обновление CRM-записи, запуск потока отчетности или пе редача данных формы в другую систему.
Пример: новость на сайте организации
Предположим, у организации создан рабочий процесс n8n, который публикует новость на сайте WordPress. В AI-Public вы вводите всего лишь короткий текст, например пару предложений о встрече, проекте или общественном объявлении. Этим текстом вы запускаете workflow в n8n.
Далее рабочий процесс n8n может, например:
- Из короткого текста сделать черновой текст с помощью LLM-узла и подсказки, подходящей к тону организации.
- Сгенерировать подходящую иллюстрацию с помощью второго LLM-узла, например в фирменной палитре цветов и в узнаваемом иллюстративном стиле.
- Подготовить или опубликовать текст и изображение как блог-пост на сайте WordPress.
Так работают AI-Public и n8n вместе: в AI-Public пользователь выбирает workflow и заполняет необходимую информацию. Затем n8n выполняет автомат изированные шаги и обеспечивает корректное размещение новости на сайте.
Что делает эта интеграция?
Вы запускаете workflow n8n из обзора workflow. Обязательно только производственный webhook, POST и Auth заголовков. Поля и обратная связь от n8n являются необязательными и могут настраиваться независимо.
- Если у workflow нет полей, webhook вызывается немедленно.
- Если у workflow есть поля, сначала открывается форма. Пользователь заполняет поля и затем запускает workflow кнопкой.
- Заполненные значения отправляются как JSON в POST-запросе к n8n webhook.
- Без обратной связи AI-Public просто подтверждает, что workflow запустился и продолжает в n8n. Окно не показывает индикатор загрузки и может быть закрыто.
- Если это включено при регистрации, workflow может отправлять промежуточные шаги или завершение обратно в AI-Public.
- Если включено утверждение при регистрации, пользователь может выбрать прямо в AI-Public. Далее n8n продолжит с ожидающего шага.
Создание n8n workflow в AI-Public
Администратор регистрирует workflow следующим образом:
- Перейдите в раздел Ассистенты.
- Откройте Рабочие процессы.
- Выберите Новый n8n workflow.
- Введите имя workflow и n8n production-url.
- Установите 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. Используйте эти колбэки только если при регистрации включены «Уведомлять о промежуточном прогрессе» и/или «Уведомлять о завершении workflow».
Настройте каждый 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 для определения дальнейшего пути.
Выбор значения может содержать только буквы, цифры, _ и -. Метка может содержать обычный читаемый текст.
Производственный callback-url
Производственный callback-url для AI-Public:
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback
Не вставляйте этот URL как фиксированный текст в каждый callback-узел. В поле 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 с методом POST.
-
В поле URL введите этот фиксированный production-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 может связать неожидаемую ошибку с соответствующим выполнением.
Важные ограничения
- Поддержи ваются только вебхуки-триггеры.
- Поддерживаются только production webhook-urls.
- Тестовые webhook-urls с
/webhook-test/отклоняются. - Поддерживается только POST.
- Поддерживается только общий тип аутентификации заголовков.
- Значение заголовка обрабатывается в приложении как секрет.
- Callback-токены и resume-url обрабатываются только на стороне сервера и недоступны напрямую пользователям.
- Тенант определяется на стороне сервера от входящего пользователя, а не значением, которое отправляет браузер.
Решение проблем
- 404 или webhook не зарегистрирован: активируйте workflow в n8n и используйте production-url.
- Ошибка аутентификации: проверьте, что имя заголовка и значение в обеих системах равны.
- Отсутствующие данные: проверьте, совпадают ли имена полей в приложении с ключами, которые ожидает n8n.
- Нет запроса в n8n: проверьте, начинается ли workflow с webhook-триггера и используется ли POST.
- Окно выполнения крутится: если включено завершение workflow, проверьте, отправляет ли n8n последний
completed,failedилиrejectedколбэк. Если вы не ожидаете обратной связи, отключите все три опции в регистрации. - Нет видимого прогресса: проверьте, включено ли Уведомлять о промежуточном прогрессе в регистрации, или сохранён ли объект
integrationи чтобы каждый колбэк имел уникальныйeventId. - Кнопки утверждения не работают: проверьте Wait node,
resumeUrl, аутентификацию заголовков и допустимые символы вchoices[].value.