n8n workflows
AI-Corporate может запускать n8n workflows через производственный вебхук. Это удобно, когда извне AI-Corporate нужно запустить автоматизированный процесс, например создание задачи, обновление CRM-записи, запуск потока отчётности или передача данных формы в другую систему.
Пример: новостная статья на корпоративном сайте
Предположим, что организация создала рабочий процесс n8n, который публикует новость на сайте WordPress компании. В AI-Corporate вы тогда заполняете только короткий текст, например несколько предложений о кейсе клиента, мероприятии или внутреннем достижении. Этим текстом вы запускаете работу в n8n.
Далее рабочий процесс n8n может, например:
- Из короткого текста создать аккуратный черновик с помощью узла LLM и подсказки, подходящей к тону организации.
- Сгенерировать подходящую иллюстрацию вторым узлом LLM, например в фирменных цветах и в узнаваемом стилизованном виде.
- Подготовить или опубликовать текст и изображение как блог-пост на сайте WordPress.
Так AI-Corporate и n8n работают вместе: в AI-Corporate пользователь выбирает workflow и заполняет необходимую информацию. Затем n8n выполняет автоматизированные шаги и обеспечивает корректное размещение новости на сайте.
Что делает эта интеграция?
Вы запускаете workflow n8n через обзор workflow. Обязательны только производственный webhook, POST и авторизация Header Auth. Поля и отклики из n8n являются необязательными и могут настраиваться независимо.
- Если у workflow нет полей, webhook вызывается сразу.
- Если у workflow есть поля, сначала открывается форма. Пользователь заполняет поля и далее запускает workflow кнопкой.
- Заполненные значения отправляются как JSON в POST-запросе к webhook n8n.
- Без откликов AI-Corporate подтверждает только, что workflow запущен и далее идёт в n8n. Окно не показывает индикатор загрузки и может быть закрыто.
- Если это включено в регистрации, workflow может отправлять промежуточные шаги или конец обратно в AI-Corporate.
- Если в регистрации включено одобрение, пользователь может выбор сделать напрямую в AI-Corporate. Затем n8n продолжит со следующего шага после ожидания.
создание n8n workflow в AI-Corporate
Администратор регистрирует workflow следующим образом:
- Перейдите к Ассистенты.
- Откройте Рабочие процессы.
- Выберите Новый n8n workflow.
- Введите имя workflow и URL производственного n8n.
- Установите Header authentication с именем заголовка и секретным значением заголовка.
- В разделе Terugmeldingen uit n8n отметьте только те элементы, которые действительно реализованы в этом n8n-в workflow: прогресс, одобрение и/или конец workflow.
- При необходимости добавьте поля, которые должны быть отправлены в POST-запросе.
- Сохраните workflow.
Все три варианта обратной связи отключены по умолчанию. Если позже вы добавляете callbacks или шаг одобрения в n8n, обновите соответствующую регистрацию в AI-Corporate. Диалог поэтому будет знать, показывать ли только сообщение о старте или ожидать дальнейших сигналов.
Поля
- Поля являются необязательными.
- Каждое поле имеет одно имя поля и тип.
- Поддерживаемые типы полей: короткий текст, длинный текст, число, да/нет, дата, один выбор и несколько выборов.
- В разделе Единый выбор и Несколько выборов добавляйте доступные варианты. Единый выбор отображается как компактное выпадающее меню; Несколько выборов — как флажки. Выбранное значение(я) отправляются в JSON-теле.
- Обязательные поля должны быть заполнены до запуска workflow.
- Имя поля становится ключом в JSON-теле, который отправляется к n8n.
Создание совместимого workflow в n8n
- Создайте в n8n новый workflow.
- Добавьте в качестве первого узла Webhook.
- Назовите этот узел точно Start workflow. Примерные выражения ниже используют это имя.
- Установите HTTP Method на POST.
- Выберите Authentication: Header Auth и используйте ту же имя заголовка и секретное значение, что и в AI-Corporate.
- Установите Respond или Response Mode на Immediately.
- Скопируйте Production URL в поле n8n production-url в AI-Corporate. Не используйте тестовый URL с
/webhook-test/. - Активируйте workflow.
Полученные данные находятся в body; технические данные интеграции — в body.integration. Не удаляйте их в Edit Fields-, Set- или Code-узлах.
Пример JSON-тела
Если определить поля с именами prompt, klantnaam, doelgroepen и datum, то n8n получит, например, этот JSON-тел. AI-Corporate автоматически добавляет объект integration.
{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["medewerkers", "klanten"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}
Токен callback относится к одному выполнению. Не сохраняйте его в логах, в конфигурациях или в других системах.
Опционально: отправка прогресса и завершения
AI-Corporate может показывать только то, что возвращает n8n. Используйте эти колбэки только, если в регистрации включены Сообщать промежуточный прогресс и/или Сообщать о завершении workflow.
Настройте каждый callback-узел следующим образом:
-
Выберите 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; этот текст будет отображаться в приложении. - Если включено Сообщать о завершении workflow, отправляйте в конце всегда
type: "completed",type: "failed"илиtype: "rejected". - При
completedможно дополнительно добавитьoutput-объект с результатом. - При
failedотправляйте понятное сообщение об ошибке. Выполнение тогда же прекратится в приложении.
Опционально: запрашивать одобрение в приложении
Используйте н8n 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": "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 node получит, среди прочего, decision. Затем можно, например, использовать узел Switch для определения дальнейшего пути.
Значение выбора может содержать только буквы, цифры, _ и -. Метка может содержать обычный читаемый текст.
Производственный callback-url
Производственный callback-url для AI-Corporate:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback
Не копируйте этот URL как статичный текст в каждом узле callback. В поле URL HTTP Request узла выберите Expression и используйте:
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
AI-Corporate автоматически предоставляет в каждый старт корректный production-url. Вышеуказанный статичный URL используйте только для проверки во время тестирования, чтобы убедиться, что выражение ссылается на AI-Corporate, а не на AI-School или AI-Public.
Вызываемые функции triggerCustomN8nWorkflow, triggerN8nWorkflow и resumeN8nWorkflow будут вызываться самим приложением. Эти URL-адреса не нужно настраивать в n8n.
Обработка ошибок
Возвращайте ожидаемые ошибки с callback типа failed. Для неожиданных ошибок узлов создайте централизованное Error Workflow:
-
Создайте новый workflow с узлом Error Trigger.
-
Добавьте узел HTTP Request с Method: POST.
-
В поле URL введите этот статичный production-url:
https://europe-west1-ai-corporate.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-Corporate сможет связать нештатную ошибку с нужным выполнением.
Важные ограничения
- Поддерживается только вебхук-триггеры.
- Поддерживаются только production webhook-urls.
- Тестовые webhook-urls с
/webhook-test/отклоняются. - Поддерживается только POST.
- Поддерживается только generic header authentication.
- Значение заголовка обрабатывается в приложении как секрет.
- Callback-токены и resume-url обрабатываются только на стороне сервера и недоступны напрямую пользователям.
- Тенант определяется на стороне сервера на основе вошедшего пользователя, а не по значению, отправляемому браузером.
Устранение проблем
- 404 или webhook не зарегистрирован: активируйте workflow в n8n и используйте production-url.
- Ошибка аутентификации: проверьте, что имя заголовка и значение в обеих системах совпадают.
- Отсутствующие данные: проверьте, что названия полей в приложении соответствуют ключам, ожидаемым n8n.
- Нет запроса в n8n: проверьте, начинается ли workflow с webhook-триггера и используется ли POST.
- Окно выполнения продолжает крутиться: если вы включили Сообщать о завершении workflow, проверьте, что n8n отправляет последний callback с
completed,failedилиrejected. Если вы не ожидаете откликов, отключите все три опции в регистрации. - Нет видимого прогресса: проверьте, включено ли в регистрации Сообщать промежуточный прогресс, сохранено ли
integration-объект, и есть ли у каждого колбэка уникальныйeventId. - Кнопки одобрения не работают: проверьте Wait node,
resumeUrl, аутентификацию заголовков и допустимые символы вchoices[].value.