К основному содержанию

Бот поддержки в чате клиента: привязка из NetBox, цифры из мониторинга, вопрос понимает модель

Собрали Telegram-бота для клиентских чатов поддержки. Какой чат и какая ветка принадлежат клиенту, теперь записано в одном месте — в NetBox, и оттуда раскладывается в мониторинг и в бота. Вне рабочих часов бот регистрирует обращения и зовёт дежурного, а состояние площадок показывает только своему клиенту.

3 → 1 местохранения привязки клиента к чату
Откуда бот берёт ответ

Привязку клиента к чату знает только учёт. Состояние узлов бот читает учётной записью клиента, а ответ с цифрами собирает код.

Учёт

В NetBox у клиента записаны площадки, чат и ветка для уведомлений.

Мониторинг

Узлы и события — только те, что видит учётная запись этого клиента.

Чат клиента

Вне рабочих часов — номер обращения, сводка по площадкам и дежурный.

С клиентами на сопровождении мы работаем в групповых чатах Telegram. Туда же система мониторинга присылает уведомления — в отдельную ветку чата, чтобы сообщения людей не тонули в сигналах. Удобно для всех, пока клиентов несколько. Когда их становится больше, выясняется, что чат, ветка и права клиента записаны сразу в трёх местах, и каждую запись приходится держать в порядке руками.

Задача

Нужно было сделать две вещи.

Навести порядок в привязке. Какой чат принадлежит клиенту, в какую ветку идут уведомления по каждой его площадке, какие у него рабочие часы по договору. Всё это хранилось в настройках уведомлений мониторинга, в макросах отдельных узлов и в настройках бота. Новый узел нужно было не забыть пометить, а смена чата у клиента означала правку в трёх местах.

Ответить клиенту, когда инженеров нет на месте. В рабочее время в чате отвечают инженеры. Ночью и в выходные клиент должен сразу видеть, что обращение принято и дежурный о нём знает, а при желании — сам посмотреть, что сейчас происходит на его площадках.

Что сделали

Один источник правды — NetBox

NetBox у нас и так главный учёт инфраструктуры: клиенты, площадки, устройства, контакты. Привязку к чату перенесли туда же — в поля клиента, площадки и устройства. Значения наследуются: ветку для уведомлений можно задать клиенту целиком, а для отдельной площадки или узла переопределить.

Синхронизация читает только NetBox и приводит к нему всё остальное: получателей уведомлений в мониторинге, ветку на каждом узле клиента и настройки бота. По умолчанию она показывает план изменений, применяет их только по явной команде. Каждое утро она сама проходит по новым узлам подключённых клиентов и ставит им ветку. Отдельная проверка ловит то, что всё-таки разошлось.

Защита от рассинхрона: если клиент переехал в новый чат, а бота уведомлений там ещё нет, синхронизация этого клиента не трогает. Иначе уведомления ушли бы в чат, куда их некому доставить.

Клиент видит только своё

Бот читает мониторинг не общим ключом, а учётной записью конкретного клиента. Чужих узлов эта запись не видит: ограничение стоит в правах системы мониторинга, а не в проверках кода.

Обращения и ответы

Цифры — из кода, вопрос понимает модель

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

Результат

Было Стало
Где записана привязка клиента к чату в трёх местах в NetBox
Новый узел подключённого клиента пометить вручную получает ветку сам на следующее утро
Смена чата у клиента три ручные правки правка в NetBox и синхронизация
Обращение ночью ждёт утра номер, время, сводка, дежурный уведомлён
Модель недоступна — вопрос разбирается по ключевым словам

Бот работает в чатах наших клиентов на сопровождении. Подключение нового клиента стало пошаговой процедурой: поля в NetBox, учётная запись в мониторинге, синхронизация и проверка.

Чем можем помочь

Мы прошли это сами и знаем, где такая связка ломается: уведомления уходят не в ту ветку, когда учёт и мониторинг расходятся; бот, читающий мониторинг общим ключом, рано или поздно покажет клиенту лишнее; модели нельзя доверять цифры.

Соберём бота поддержки для вашей службы или клиентских чатов: свяжем NetBox или ваш учёт, если у него есть API, с мониторингом и Telegram, настроим регистрацию обращений, рабочие часы и дежурство. Если поддержку ведём мы как ИТ-отдел на абонентке, бот подключается к вашему чату в составе сопровождения.