GigaChat + n8n для поддержки: черновик ответа без утечки данных ¶
Обновлено: 2026-05-30
Импортируйте workflow, замените credentials и прогоните тестовый payload до включения production.
- Проблема: почему LLM-ответ поддержки нельзя отправлять напрямую
- Архитектура workflow GigaChat + n8n для support draft
- Контракт входного обращения
- Code Node для очистки данных и prompt-контракта
- Готовый workflow JSON
- Пошаговая настройка GigaChat API и review-процесса
- Тесты перед production
- Production-риски LLM в поддержке
- Полезные ссылки и смежные workflow
- Критерии готовности
Проблема: LLM может быстро подготовить ответ, но в поддержке ошибка по оплате, возврату или персональным данным превращается в риск для компании.
Решение: n8n должен использовать GigaChat как генератор черновика: сначала маскировать данные, затем получить draft, проверить риск-флаги и передать оператору на review.
Проблема: почему LLM-ответ поддержки нельзя отправлять напрямую ¶
GigaChat API удобно использовать для черновиков ответов на русском языке, но поддержка — это зона с повышенным риском. В обращении могут быть телефон, email, номер заказа, спор по оплате, требование возврата или юридическая формулировка. Если автоматизация поддержки сразу отправит LLM-ответ клиенту, компания рискует дать неверное обещание или раскрыть лишние данные.
Правильный сценарий — support draft: n8n принимает обращение, маскирует персональные данные, собирает prompt с ограничениями, получает черновик от GigaChat и отправляет его оператору на review. Это ускоряет поддержку, но оставляет ответственность и финальную проверку за человеком.
Архитектура workflow GigaChat + n8n для support draft ¶
| Нода | Роль | Что проверить |
|---|---|---|
| Webhook ticket input | Получает обращение из CRM/email/helpdesk | ticket_id, channel, текст клиента |
| Sanitize and build prompt | Маскирует PII и собирает prompt | телефон, email, карта, лишние данные |
| Call GigaChat API | Запрашивает черновик | Bearer token, model, timeout, retries |
| Fact and risk guard | Проверяет риск-флаги | оплата, возврат, договор, доступ |
| Send draft to operator | Отправляет черновик человеку | кнопки approve/edit, ссылка на тикет |
Контракт входного обращения ¶
{
"ticket_id": "SUP-10492",
"channel": "email",
"customer_text": "Здравствуйте. Я оплатил заказ 10492, но доступ не открылся. Телефон +7 916 123-45-67. Что делать?",
"customer_name": "Иван",
"priority": "high",
"kb_articles": [
"https://example.ru/help/payment-access",
"https://example.ru/help/refund-policy"
],
"operator_chat_id": "-1001234567890"
}
В payload желательно передавать ссылки на статьи базы знаний. Тогда GigaChat получает не только вопрос клиента, но и ограниченный контекст, по которому оператор сможет проверить факты.
Code Node для очистки данных и prompt-контракта ¶
const src = $json.body ?? $json;
const raw = String(src.customer_text ?? '').trim();
if (!raw) throw new Error('Empty support request');
const masked = raw
.replace(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/ig, '[email]')
.replace(/\+?\d[\d\s().-]{8,}\d/g, '[phone]')
.replace(/\d{12,19}/g, '[possible_card]');
const risky = /(возврат|договор|суд|претенз|персональн|карта|паспорт|доступ|оплат)/i.test(raw);
const prompt = `Ты помощник службы поддержки. Подготовь черновик ответа, не обещай возврат или компенсацию без проверки. Если фактов не хватает, задай уточняющий вопрос.
Обращение клиента:
${masked}`;
return [{
json: {
ticket_id: src.ticket_id,
channel: src.channel ?? 'unknown',
sanitized_text: masked,
risky,
gigachat_request: {
model: 'GigaChat',
messages: [
{ role: 'system', content: 'Готовь только черновик для оператора, не финальный ответ клиенту.' },
{ role: 'user', content: prompt }
],
temperature: 0.2
},
review_required: true
}
}];
Зачем маскировать данные до LLM-запроса
Для черновика ответа модели обычно не нужен полный телефон, email или номер карты. Чем меньше персональных данных уходит во внешний API, тем проще контролировать безопасность и соответствие внутренним правилам.
Готовый workflow JSON ¶
Скачать готовый workflow JSON Скачать тестовый payload
{
"name": "Nodbot - GigaChat support draft with PII masking",
"nodes": [
{
"name": "Webhook ticket input",
"type": "n8n-nodes-base.webhook",
"purpose": "Принять обращение из email, CRM или helpdesk"
},
{
"name": "Sanitize and build prompt",
"type": "n8n-nodes-base.code",
"purpose": "Замаскировать телефон/email/карты и собрать prompt"
},
{
"name": "Call GigaChat API",
"type": "n8n-nodes-base.httpRequest",
"purpose": "Получить черновик ответа от GigaChat"
},
{
"name": "Fact and risk guard",
"type": "n8n-nodes-base.code",
"purpose": "Проверить risky flags, ссылки на KB и полноту ответа"
},
{
"name": "Send draft to operator",
"type": "n8n-nodes-base.telegram",
"purpose": "Отправить черновик на review оператору"
}
],
"connections": "Webhook → Sanitize → GigaChat API → Guard → Operator review"
}
Пошаговая настройка GigaChat API и review-процесса ¶
- Получите доступ к GigaChat API и настройте credential/ENV для токена.
- Подключите источник обращений: email, CRM, Bitrix24, amoCRM или helpdesk.
- Добавьте Code Node для PII masking до запроса к модели.
- Соберите prompt-контракт: черновик, без обещаний, с уточняющими вопросами при нехватке фактов.
- Отправляйте результат оператору, а не клиенту напрямую.
Тесты перед production ¶
curl -X POST "https://YOUR-N8N-DOMAIN/webhook/gigachat-support-draft" \
-H "Content-Type: application/json" \
--data @gigachat-support-draft-payload.json
Проверьте тикет с оплатой, тикет с персональными данными, пустое обращение, запрос на возврат, длинное письмо и отсутствие KB-ссылок. Workflow должен маскировать данные, ставить risk flag и не выпускать ответ без review.
Production-риски LLM в поддержке ¶
- LLM отправляет финальный ответ. Для чувствительной поддержки используйте только draft + review.
- PII уходит в API без фильтра. Маскируйте телефон, email, карты и лишние идентификаторы.
- Нет проверки фактов. Черновик должен ссылаться на KB или требовать уточнения.
- Токен GigaChat попал в execution. Храните credentials в ENV/credential store и не логируйте headers.
- Нет лимитов и fallback. При 401/429/timeout оператор должен получить понятную ошибку, а не молчание.
Полезные ссылки и смежные workflow ¶
См. также Telegram AI-бот с approval, RAG FAQ bot на Qdrant, уведомления об ошибках и права AI-агентов. Официальные документы: GigaChat REST API и n8n HTTP Request.
Критерии готовности ¶
- Телефон, email и похожие на карту значения маскируются до LLM-запроса.
- GigaChat возвращает черновик, а не финальный ответ клиенту.
- В рискованных темах включается обязательный human review.
- Ошибки API и лимиты уходят в alert.
- Оператор видит ссылку на тикет, исходный текст и KB-контекст.
Nodbot настроит GigaChat support draft: PII masking, prompt-контракт, review, SLA, мониторинг ошибок и интеграцию с вашей CRM/helpdesk.
Настроить support draft