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

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

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

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

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

Далее рабочий процесс n8n может, например:

  1. Из короткого текста сделать черновой текст с помощью LLM-узла и подсказки, подходящей к тону организации.
  2. Сгенерировать подходящую иллюстрацию с помощью второго LLM-узла, например в фирменной палитре цветов и в узнаваемом иллюстративном стиле.
  3. Подготовить или опубликовать текст и изображение как блог-пост на сайте WordPress.

Так работают AI-Public и n8n вместе: в AI-Public пользователь выбирает workflow и заполняет необходимую информацию. Затем n8n выполняет автоматизированные шаги и обеспечивает корректное размещение новости на сайте.

Что делает эта интеграция?

Вы запускаете workflow n8n из обзора workflow. Обязательно только производственный webhook, POST и Auth заголовков. Поля и обратная связь от n8n являются необязательными и могут настраиваться независимо.

  • Если у workflow нет полей, webhook вызывается немедленно.
  • Если у workflow есть поля, сначала открывается форма. Пользователь заполняет поля и затем запускает workflow кнопкой.
  • Заполненные значения отправляются как JSON в POST-запросе к n8n webhook.
  • Без обратной связи AI-Public просто подтверждает, что workflow запустился и продолжает в n8n. Окно не показывает индикатор загрузки и может быть закрыто.
  • Если это включено при регистрации, workflow может отправлять промежуточные шаги или завершение обратно в AI-Public.
  • Если включено утверждение при регистрации, пользователь может выбрать прямо в AI-Public. Далее n8n продолжит с ожидающего шага.

Создание n8n workflow в AI-Public

Администратор регистрирует workflow следующим образом:

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

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

Поля

  • Поля необязательны.
  • У каждого поля есть одно имя поля и тип.
  • Поддерживаемые типы полей: короткий текст, длинный текст, число, да/нет, дата, один выбор и несколько выборов.
  • Для Одного выбора и Нескольких выборов добавляйте доступные варианты. Один выбор отображается в виде компактного выпадающего списка; Несколько выборов — в виде флажков. Выбранное значение или значения отправляются в JSON- теле.
  • Обязательные поля должны быть заполнены перед тем, как workflow можно запустить.
  • Имя поля становится ключом в JSON-теле, который отправляется в 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 production-url в AI-Public. Не используйте тестовый URL с /webhook-test/.
  8. Активируйте workflow.

Полученные данные находятся в body; технические данные интеграции — в body.integration. Не удаляйте их в Edit Fields-, Set- или Code-узле.

Пример JSON-тела

Если вы определяете поля с именами prompt, klantnaam, doelgroepen и datum, n8n получит, например, этот JSON-тел. AI-Public автоматически добавляет объект integration.

{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["inwoners", "medewerkers"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}

Секретный токен обратного вызова относится к одной выполнению. Не сохраняйте его в журналах, в конфигурациях или в других системах.

Опционально: обратная связь о прогрессе и завершении

AI-Public может показывать только то, что возвращает n8n. Используйте эти колбэки только если при регистрации включены «Уведомлять о промежуточном прогрессе» и/или «Уведомлять о завершении workflow».

Настройте каждый 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": "Document maken"
},
"message": "Het document wordt gemaakt."
}
  • Для каждого события внутри одного выполнения используйте уникальный eventId.
  • Используйте понятное голландское step.label; этот текст будет отображаться в приложении.
  • Если вы включили Het einde van de workflow melden, отправляйте в конце всегда type: "completed", type: "failed" или type: "rejected".
  • При completed при необходимости добавьте объект output с результатом.
  • При failed отправляйте понятное сообщение об ошибке. Выполнение тогда также останавливается в приложении.

Опционально: запрос на одобрение в приложении

Используйте узел n8n Wait с On Webhook Call, когда workflow может продолжиться только после выбора. Отправьте до Wait узла колбэк с 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 узел получит, помимо прочего, decision. Затем можно использовать, например, узел Switch для определения дальнейшего пути.

Выбор значения может содержать только буквы, цифры, _ и -. Метка может содержать обычный читаемый текст.

Производственный callback-url

Производственный callback-url для AI-Public:

https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback

Не вставляйте этот URL как фиксированный текст в каждый callback-узел. В поле 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.

Обработка ошибок

Возвращайте ожидаемые ошибки с колбэком типа failed. Для неожиданных ошибок узлов создайте также централизованное Error Workflow:

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

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

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

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

  5. Выберите JSON-тело и вставьте:

{
"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 может связать неожидаемую ошибку с соответствующим выполнением.

Важные ограничения

  • Поддерживаются только вебхуки-триггеры.
  • Поддерживаются только production webhook-urls.
  • Тестовые webhook-urls с /webhook-test/ отклоняются.
  • Поддерживается только POST.
  • Поддерживается только общий тип аутентификации заголовков.
  • Значение заголовка обрабатывается в приложении как секрет.
  • Callback-токены и resume-url обрабатываются только на стороне сервера и недоступны напрямую пользователям.
  • Тенант определяется на стороне сервера от входящего пользователя, а не значением, которое отправляет браузер.

Решение проблем

  • 404 или webhook не зарегистрирован: активируйте workflow в n8n и используйте production-url.
  • Ошибка аутентификации: проверьте, что имя заголовка и значение в обеих системах равны.
  • Отсутствующие данные: проверьте, совпадают ли имена полей в приложении с ключами, которые ожидает n8n.
  • Нет запроса в n8n: проверьте, начинается ли workflow с webhook-триггера и используется ли POST.
  • Окно выполнения крутится: если включено завершение workflow, проверьте, отправляет ли n8n последний completed, failed или rejected колбэк. Если вы не ожидаете обратной связи, отключите все три опции в регистрации.
  • Нет видимого прогресса: проверьте, включено ли Уведомлять о промежуточном прогрессе в регистрации, или сохранён ли объект integration и чтобы каждый колбэк имел уникальный eventId.
  • Кнопки утверждения не работают: проверьте Wait node, resumeUrl, аутентификацию заголовков и допустимые символы в choices[].value.
WhatsApp