Рабочие процессы 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 из обзора рабочих процессов. Обязательны только production webhook, POST и Header Auth. Поля и обратные сообщения из n8n являются необязательными и могут настраиваться независимо друг от друга.
- Если у workflow нет полей, webhook вызывается сразу.
- Если у workflow есть поля, сначала открывается форма. Пользователь заполняет поля и затем запускает workflow кнопкой.
- Введённые значения отправляются как JSON в POST-запросе на webhook n8n.
- Без обратных сообщений AI-Public только подтверждает, что workflow запущен и дальше выполняется в n8n. Окно не показывает spinner и его можно сразу закрыть.
- Если это включено при регистрации, workflow может отправлять промежуточные шаги или завершение обратно в AI-Public.
- Если при регистрации включено одобрение, пользователь может выбрать вариант прямо в AI-Public. После этого n8n продолжает работу со шага ожидания.
Создание workflow n8n в AI-Public
Администратор регистрирует workflow следующим образом:
- Перейдите в Ассистенты.
- Откройте вкладку Ассистенты рабочих процессов.
- Нажмите в верхней карточке Новый workflow и выберите workflow n8n.
- Введите имя workflow и production URL n8n.
- Настройте Header authentication с помощью имени заголовка и секретного значения заголовка.
- В разделе Обратные сообщения из n8n отметьте только те части, которые действительно реализованы в этом workflow n8n: прогресс, одобрение и/или завершение workflow.
- При необходимости добавьте поля, которые нужно передавать в POST-запросе.
- Сохраните workflow.
Все три опции обратных сообщений по умолчанию выключены. Если позже вы добавите callbacks или шаг одобрения в n8n, обновите и регистрацию в AI-Public. Тогда диалог будет знать, нужно ли показывать только подтверждение запуска или продолжать ждать дальнейших сигналов.
Поля
- Поля необязательны.
- У каждого поля есть одно имя поля и тип.
- Поддерживаемые типы полей: короткий текст, длинный текст, число, да/нет, дата, один выбор и несколько выборов.
- Для Одного выбора и Нескольких выборов добавьте доступные варианты. Один выбор показывается как компактный список выбора; Несколько выборов показывают флажки. Выбранное значение или значения отправляются в JSON body.
- Обязательные поля должны быть заполнены до запуска workflow.
- Имя поля становится key в JSON body, который отправляется в n8n.
Создание совместимого workflow в n8n
- Создайте в n8n новый workflow.
- Добавьте в качестве первого узла Webhook.
- Дайте этому узлу точное имя 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": "временный-токен-для-этого-запуска"
}
}
Callback token относится к одному запуску. Не сохраняйте его в логах, постоянной конфигурации или других системах.
Дополнительно: отправка прогресса и завершения
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 с On Webhook Call, когда workflow может продолжиться только после выбора. Перед узлом Wait отправьте callback с 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": "Проверка документа"
},
"approval": {
"question": "Можно ли продолжить workflow?",
"context": "Сначала проверьте сгенерированный документ.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Одобрить" },
{ "value": "reject", "label": "Отклонить" }
]
}
}
Пользователь видит варианты в окне выполнения. После выбора узел 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.
Обработка ошибок
Отправляйте ожидаемые ошибки обратно с помощью 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 URLs.
- Test-webhook-urls с
/webhook-test/отклоняются. - Поддерживается только POST.
- Поддерживается только generic header authentication.
- Значение заголовка в приложении обрабатывается как секрет.
- Callback tokens и resume URL обрабатываются только на стороне сервера и недоступны пользователям напрямую.
- Tenant определяется на стороне сервера из вошедшего в систему пользователя, а не из значения, передаваемого браузером.
Устранение проблем
- 404 или webhook не зарегистрирован: активируйте workflow в n8n и используйте production URL.
- Ошибка аутентификации: проверьте, что имя заголовка и значение в обеих системах полностью совпадают.
- Отсутствуют данные: проверьте, что имена полей в приложении соответствуют ключам, которые ожидает n8n.
- Нет запроса в n8n: проверьте, что workflow начинается с webhook trigger и использует POST.
- Окно выполнения продолжает крутиться: если вы включили Сообщать о конце workflow, проверьте, отправляет ли n8n последний callback
completed,failedилиrejected. Если вы не ожидаете обратных сообщений, выключите все три опции при регистрации. - Прогресс не виден: проверьте, включено ли Сообщать о промежуточном прогрессе при регистрации, сохраняется ли объект
integrationи имеет ли каждый callback уникальныйeventId. - Кнопки одобрения не работают: проверьте узел Wait,
resumeUrl, header authentication и допустимые символы вchoices[].value.