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

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

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

Пример: новостная статья на сайте организации​

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

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

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

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

Все три опции обратных сообщений по умолчанию выключены. Если позже вы добавите callbacks или шаг одобрения в n8n, обновите и регистрацию в AI-Public. Тогда диалог будет знать, нужно ли показывать только подтверждение запуска или продолжать ждать дальнейших сигналов.

Поля​

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

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

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

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

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

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

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

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

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

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

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

    https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Выберите Authentication: None и добавьте заголовок 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-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.