рабочие процессы n8n
AI-Corporate может запускать рабочие процессы n8n через production webhook. Это удобно, когда вы хотите инициировать автоматизированный процесс вне AI-Corporate, например создание задачи, обновление записи CRM, запуск потока отчётности или передачу данных формы в другую систему.
Пример: новостная статья на сайте компании
Предположим, организация создала workflow n8n, который публикует новостную статью на сайте WordPress компании. В AI-Corporate вы тогда вводите только короткий текст, например несколько предложений о кейсе клиента, мероприятии или внутренней вехе. Этот текст запускает workflow в n8n.
После этого workflow n8n может, например:
- Превратить короткий текст в аккуратный черновик с помощью node LLM и prompt, который хорошо соответствует тону организации.
- Создать подходящую иллюстрацию с помощью второго node LLM, например в фирменных цветах и в узнаваемом иллюстративном стиле.
- Подготовить текст и изображение как запись блога или опубликовать их на сайте WordPress.
Так AI-Corporate и n8n работают вместе: в AI-Corporate пользователь выбирает workflow и заполняет нужную информацию. Затем n8n выполняет автоматизированные шаги и обеспечивает аккуратное размещение новостной статьи на сайте.
Что делает эта интеграция?
Вы запускаете workflow n8n из обзора workflow. Обязательны только production webhook, POST и Header Auth. Поля и callback’и из n8n необязательны и могут настраиваться независимо друг от друга.
- Если у workflow нет полей, webhook вызывается сразу.
- Если у workflow есть поля, сначала открывается форма. Пользователь заполняет поля и затем запускает workflow кнопкой.
- Введённые значения отправляются как JSON в POST-request к n8n webhook.
- Без callback’ов AI-Corporate только подтверждает, что workflow запущен, и что он продолжает работу в n8n. Окно не показывает spinner и его можно сразу закрыть.
- Если это включено при регистрации, workflow может отправлять промежуточные шаги или завершение обратно в AI-Corporate.
- Если при регистрации включено approval, пользователь может сделать выбор прямо в AI-Corporate. После этого n8n продолжает работу с ожидающего шага.
Создание n8n workflow в AI-Corporate
Администратор регистрирует workflow следующим образом:
- Перейдите в Ассистенты.
- Откройте вкладку Workflow-ассистенты.
- Нажмите в карточке сверху Новый workflow и выберите n8n workflow.
- Укажите имя workflow и production URL n8n.
- Настройте Header authentication с помощью header name и секретного header value.
- В разделе Callbacks from n8n отметьте только те компоненты, которые действительно реализованы в этом n8n-workflow: прогресс, approval и/или завершение workflow.
- При необходимости добавьте поля, которые нужно передавать в POST-request.
- Сохраните workflow.
Все три опции callback’ов по умолчанию выключены. Если позже вы добавите callbacks или шаг approval в n8n, обновите регистрацию в AI-Corporate. Благодаря этому dialog знает, нужно ли показывать только подтверждение запуска или продолжать ждать дальнейших сигналов.
Поля
- Поля необязательны.
- Каждое поле имеет одно имя поля и тип.
- Поддерживаемые типы полей: короткий текст, длинный текст, число, да/нет, дата, один вариант и несколько вариантов.
- Для Один вариант и Несколько вариантов добавьте доступные опции. Один вариант отображается как компактный список выбора; Несколько вариантов отображает флажки. Выбранное значение или значения отправляются в JSON body.
- Обязательные поля должны быть заполнены, прежде чем workflow можно будет запустить.
- Имя поля становится key в JSON body, отправляемом в n8n.
Создание совместимого workflow в n8n
- Создайте в n8n новый workflow.
- Добавьте первым node Webhook.
- Дайте этому node точное имя Start workflow. Примеры выражений ниже используют это имя.
- Установите 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": "временный-токен-для-этого-выполнения"
}
}
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; этот текст будет показан в приложении. - Если вы включили Сообщать о завершении workflow, всегда отправляйте в конце
type: "completed",type: "failed"илиtype: "rejected". - При
completedпри необходимости добавьте объектoutputс результатом. - При
failedотправьте понятное сообщение об ошибке. Тогда выполнение также остановится в приложении.
Опционально: запрос approval в приложении
Используйте 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. Выберите те же credentials Header Auth, что и для 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, чтобы определить нужное дальнейшее действие.
Значение выбора может содержать только буквы, цифры, _ и -. Метка может содержать обычный читаемый текст.
Настройка production callback-url
Production callback-url для AI-Corporate:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback
Не вставляйте этот URL как постоянный текст в каждый callback-node. В поле URL node HTTP Request выберите Expression и используйте:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
Таким образом AI-Corporate при каждом запуске автоматически передаёт правильный production-url. Фиксированный URL выше используйте, чтобы при тестировании проверить, указывает ли выражение на AI-Corporate, а не на AI-School или AI-Public.
Callable triggerCustomN8nWorkflow, triggerN8nWorkflow и resumeN8nWorkflow вызываются самим приложением. Эти URL не нужно настраивать в n8n.
Обработка ошибок
Возвращайте ожидаемые ошибки через callback типа failed. Для неожиданных ошибок node дополнительно создайте центральный Error Workflow:
-
Создайте новый workflow с node Error Trigger.
-
Затем добавьте node HTTP Request с Method: POST.
-
В поле URL укажите этот фиксированный production-url:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowExecutionFailed -
Выберите Authentication: None и добавьте header
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-Corporate сможет связать неожиданную ошибку с нужным выполнением.
Важные ограничения
- Поддерживаются только webhook triggers.
- Поддерживаются только production webhook-urls.
- Test-webhook-urls с
/webhook-test/отклоняются. - Поддерживается только POST.
- Поддерживается только generic header authentication.
- Значение header в приложении считается секретным.
- Callback token и resume-url обрабатываются только на стороне сервера и не доступны пользователям напрямую.
- Tenant определяется на стороне сервера из вошедшего пользователя, а не из значения, отправленного браузером.
Устранение проблем
- 404 или webhook не зарегистрирован: активируйте workflow в n8n и используйте production-url.
- Ошибка аутентификации: проверьте, что header name и value в обеих системах полностью совпадают.
- Отсутствуют данные: проверьте, что имена полей в приложении соответствуют ключам, которые ожидает n8n.
- Нет запроса в n8n: проверьте, что workflow начинается с webhook trigger и использует POST.
- Окно выполнения продолжает работать: если вы включили Сообщать о завершении workflow, проверьте, отправляет ли n8n финальный callback
completed,failedилиrejected. Если вы не ожидаете callbacks, выключите все три опции при регистрации. - Не видно прогресса: проверьте, включена ли при регистрации опция Сообщать промежуточный прогресс, сохраняется ли объект
integrationи имеет ли каждый callback уникальныйeventId. - Кнопки approval не работают: проверьте Wait node,
resumeUrl, header authentication и допустимые символы вchoices[].value.