Перейти к основному содержимому

рабочие процессы n8n

AI-Corporate может запускать рабочие процессы n8n через production webhook. Это удобно, когда вы хотите инициировать автоматизированный процесс вне AI-Corporate, например создание задачи, обновление записи CRM, запуск потока отчётности или передачу данных формы в другую систему.

Пример: новостная статья на сайте компании​

Предположим, организация создала workflow n8n, который публикует новостную статью на сайте WordPress компании. В AI-Corporate вы тогда вводите только короткий текст, например несколько предложений о кейсе клиента, мероприятии или внутренней вехе. Этот текст запускает workflow в n8n.

После этого workflow n8n может, например:

  1. Превратить короткий текст в аккуратный черновик с помощью node LLM и prompt, который хорошо соответствует тону организации.
  2. Создать подходящую иллюстрацию с помощью второго node LLM, например в фирменных цветах и в узнаваемом иллюстративном стиле.
  3. Подготовить текст и изображение как запись блога или опубликовать их на сайте 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 следующим образом:

  1. Перейдите в Ассистенты.
  2. Откройте вкладку Workflow-ассистенты.
  3. Нажмите в карточке сверху Новый workflow и выберите n8n workflow.
  4. Укажите имя workflow и production URL n8n.
  5. Настройте Header authentication с помощью header name и секретного header value.
  6. В разделе Callbacks from n8n отметьте только те компоненты, которые действительно реализованы в этом n8n-workflow: прогресс, approval и/или завершение workflow.
  7. При необходимости добавьте поля, которые нужно передавать в POST-request.
  8. Сохраните workflow.

Все три опции callback’ов по умолчанию выключены. Если позже вы добавите callbacks или шаг approval в n8n, обновите регистрацию в AI-Corporate. Благодаря этому dialog знает, нужно ли показывать только подтверждение запуска или продолжать ждать дальнейших сигналов.

Поля​

  • Поля необязательны.
  • Каждое поле имеет одно имя поля и тип.
  • Поддерживаемые типы полей: короткий текст, длинный текст, число, да/нет, дата, один вариант и несколько вариантов.
  • Для Один вариант и Несколько вариантов добавьте доступные опции. Один вариант отображается как компактный список выбора; Несколько вариантов отображает флажки. Выбранное значение или значения отправляются в JSON body.
  • Обязательные поля должны быть заполнены, прежде чем workflow можно будет запустить.
  • Имя поля становится key в JSON body, отправляемом в n8n.

Создание совместимого workflow в n8n​

  1. Создайте в n8n новый workflow.
  2. Добавьте первым node Webhook.
  3. Дайте этому node точное имя Start workflow. Примеры выражений ниже используют это имя.
  4. Установите HTTP Method на POST.
  5. Выберите Authentication: Header Auth и используйте то же имя header и то же секретное значение, что и в AI-Corporate.
  6. Установите Respond или Response Mode на Immediately.
  7. Скопируйте Production URL в поле n8n productie-url в AI-Corporate. Не используйте test-url с /webhook-test/.
  8. Активируйте 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 следующим образом:

  1. Выберите Method: POST.

  2. Нажмите у URL на Expression и вставьте:

    {{ $('Start workflow').first().json.body.integration.callbackUrl }}
  3. Выберите Authentication: None.

  4. Включите Send Headers и добавьте указанные ниже headers.

  5. Включите 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:

  1. Создайте новый workflow с node Error Trigger.

  2. Затем добавьте node HTTP Request с Method: POST.

  3. В поле URL укажите этот фиксированный production-url:

    https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Выберите Authentication: None и добавьте header n8n-handihow-name с секретным стандартным значением платформенного администратора.

  5. Выберите JSON body и вставьте:

{
"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-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.