Как подойти к задаче без лишней магии
Я бы не начинал с идеи «сведём всё в один чат». Сначала сохранил бы каждое входящее сообщение отдельно, иначе первая ошибка классификатора уничтожит исходные данные и историю.
Ошибка, которую я бы сразу убрал: Общий inbox без external_id, владельца и SLA превращается в свалку: сообщения видны всем, но ответственный не назначен никому.

Что подготовить и какой результат ждать
- На выходе: Письмо, форма и сообщение из мессенджера проходят один маршрут, не дублируются и не теряются между сменами.
- Опишите каналы и поля: channel, external_id, received_at, sender, text, attachments, intent, priority, status и owner.
- Сохраните исходные данные и права доступа отдельно от результата, чтобы можно было проверить, что сделал единый AI-inbox.
- Отправьте одинаковое сообщение из двух каналов, сообщение с вложением и сообщение после рабочего времени.
Соберите рабочую очередь из почты, форм и мессенджеров
- Сохраните оригинал до AI
Каждый webhook или email сначала записывайте в raw_inbox с external_id и временем. Только после этого запускайте классификацию.
Проверьте: Можно открыть исходное сообщение, даже если AI-шаг упал.
Если не сработало: Уберите автоматическое удаление писем и включите журнал ошибок.
- Нормализуйте текст и вложения
Добавьте шаг Normalize: извлеките текст, имя файла, тип вложения и ссылку на источник. Не передавайте в модель пароль или секрет из подписи.
Проверьте: Одинаковая фраза из почты и формы выглядит одинаково для классификатора.
Если не сработало: Отдельно обрабатывайте PDF, изображения и пустое письмо.
- Назначьте очередь и срок
После intent добавьте Router: продажи, поддержка, документы, срочно к руководителю. Для каждой ветки задайте owner и SLA, например ответить до конца рабочего дня.
Проверьте: У каждого сообщения есть status и owner.
Если не сработало: Отправьте неизвестную тему в общий triage, а не в случайную ветку.
- Закройте цикл
После ответа сохраняйте sent_at, результат и ссылку на карточку. Если сотрудник исправил классификацию, записывайте причину для будущих тестов.
Проверьте: Можно посчитать не только количество входящих, но и время до первого ответа.
Если не сработало: Добавьте ручное поле resolution и еженедельный разбор очереди.

Схема единого входа
До AI записывайте channel, external_id, received_at, sender, text, attachment_url и raw_payload. Затем Normalize, Classify, Route и Assign owner. Для неизвестной темы нужен отдельный triage, а не случайная ветка.
Статусы лучше сделать короткими: new, classified, assigned, waiting_customer, resolved, needs_human. В уведомлении показывайте SLA и ссылку на оригинал. Так можно понять, где застрял запрос: при доставке, классификации или у конкретной команды.
- Не удаляйте письмо из источника до успешной записи raw_payload.
- Одинаковое сообщение из почты и формы должно иметь понятный способ поиска дубля.
Проверка на первом дне
Отправьте одинаковый текст из формы и Telegram, письмо с вложением, пустое письмо и сообщение после рабочего времени. Для каждого проверьте owner, due_at и наличие ссылки на исходник. Если AI упал, запись всё равно должна остаться в raw_inbox.
Сохраняю сырой вход до классификации
В n8n первый узел после Webhook/Email должен записать `raw_payload`, `external_id`, `received_at`, `channel`, `sender`, `text` и `attachment_url`. Только после успешной записи запускайте Normalize и Classify. Если AI упал, сообщение всё равно остаётся в `raw_inbox` и получает `needs_review`.
Для очереди используйте `new → classified → assigned → waiting_customer → resolved → needs_human`. Для неизвестной темы нужен общий triage с владельцем и SLA. Общий чат без статуса и срока — не inbox, а место, где заявки теряются.
Что должно измениться после настройки
Письмо, форма и сообщение из мессенджера проходят один маршрут, не дублируются и не теряются между сменами.

Где единый inbox начинает терять заявки
Пытаться классифицировать до сохранения оригинала.
Терять вложения и ссылки при нормализации.
Не назначать владельца неизвестной теме.
Считать сообщение закрытым только потому, что AI сгенерировал ответ.
Когда нужен отдельный слой маршрутизации
Подключайте специалиста, когда inbox должен выдерживать большие объёмы, несколько команд, вложения или требования к хранению переписки.
Что проверить на первых двадцати сообщениях
Кому подходит этот способ работы с единый AI-inbox?
AI-обработка заявок не означает, что все сообщения надо свалить в один чат. Сначала нормализуйте входы, сохраните источник и создайте очередь с понятным владельцем.
С чего начать, если всё пока делается вручную?
Опишите каналы и поля: channel, external_id, received_at, sender, text, attachments, intent, priority, status и owner.
Как проверить, что настройка не навредит?
Отправьте одинаковое сообщение из двух каналов, сообщение с вложением и сообщение после рабочего времени.
Что делать при непонятном результате?
Сохраните событие в raw_inbox и назначьте владельца очереди; не удаляйте сообщение из источника до успешной записи.







