Требуется разработка системы автоматизации поиска потенциальных клиентов в Telegram
Описание проекта
Ищу разработчика для создания системы, которая будет автоматически находить активных пользователей в Telegram-чатах и формировать удобную очередь для работы отдела продаж.
Сейчас менеджеры вручную просматривают около 800 Telegram-чатов, ищут пользователей, которые недавно проявили активность, затем открывают их профиль и связываются с ними через Telegram.
Необходимо максимально автоматизировать этот процесс.
Интересует не просто написание кода, а создание надежной системы, которую в дальнейшем можно будет расширять и дорабатывать.
Основная задача
Система должна автоматически:
- отслеживать большое количество Telegram-чатов;
- собирать пользователей, проявивших активность за выбранный период;
- объединять всю активность одного пользователя;
- исключать дубликаты;
- формировать очередь операторов;
- сохранять историю обработки клиентов.
Источник данных
Для получения информации необходимо использовать Telegram Client API.
Предпочтительно использовать:
- Telethon;
- либо Pyrogram (если разработчик считает этот вариант более подходящим).
Использование Telegram Bot API для чтения сторонних чатов не подходит.
Работа должна осуществляться через авторизованный Telegram-аккаунт (юзербот).
Мониторинг чатов
Необходимо обеспечить работу примерно с 800 Telegram-чатами.
Администратор должен иметь возможность самостоятельно:
- добавлять новые чаты;
- удалять чаты;
- временно отключать мониторинг;
- включать мониторинг обратно;
- загружать список чатов из файла;
- просматривать список подключенных чатов.
Telegram-аккаунт должен состоять в этих чатах.
Сбор активности
Система должна собирать максимально полный объем информации, который технически позволяет получить Telegram.
Минимально необходимо фиксировать:
- сообщения;
- комментарии;
- ответы на сообщения;
- другие публично доступные действия пользователя.
Если Telegram позволяет получать информацию о реакциях пользователей — желательно реализовать и этот функционал.
Если существуют ограничения Telegram, прошу сразу описать их и предложить оптимальный вариант реализации.
Режимы работы
Необходимо реализовать два режима.
1. Сбор истории
Администратор выбирает период.
Например:
- с субботы по понедельник.
После этого система анализирует историю сообщений за выбранный период и формирует список пользователей.
2. Автоматический мониторинг
После первоначального запуска система должна автоматически получать новые события Telegram в режиме реального времени без повторного анализа всей истории.
Карточка пользователя
Каждый пользователь должен отображаться только один раз.
Объединение желательно выполнять по Telegram ID, а не по username.
В карточке пользователя необходимо отображать:
- имя;
- фамилию (если есть);
- username;
- Telegram ID;
- ссылку на профиль;
- количество найденных активностей.
Ниже должна отображаться вся история активности.
Например:
Чат №1
Сообщение:
«Здравствуйте, ищу поставщика оборудования»
Дата
Время
Чат №2
Сообщение:
«Интересует стоимость»
Дата
Время
Чат №3
Комментарий
Дата
Время
Если пользователь проявил активность сразу в нескольких чатах, оператор должен видеть всю информацию в одной карточке.
Исключение дублей
Если пользователь найден сразу в нескольких чатах, он должен отображаться только один раз.
Вся найденная активность должна автоматически объединяться.
Очередь операторов
После формирования базы система должна создавать очередь пользователей.
Оператор открывает следующую карточку и сразу получает всю информацию по пользователю.
Если одновременно работают несколько операторов:
- один пользователь не должен одновременно попасть двум операторам;
- карточка должна автоматически закрепляться за оператором на время обработки.
После завершения обработки автоматически открывается следующий пользователь.
Статусы обработки
После звонка оператор должен выбрать один из статусов.
Необходимо реализовать:
- Взял клиента;
- Недоступен;
- Не дозвонился;
- Отказ;
- В работе;
- Перезвон;
- Удалить.
После выбора статуса система автоматически открывает следующего пользователя.
Повторная выдача
Необходимо предусмотреть возможность настройки повторной выдачи обработанных пользователей.
Например:
- не выдавать повторно;
- выдавать через 30 дней;
- через 60 дней;
- через 90 дней.
Настройка должна быть доступна администратору.
Поиск
Необходим поиск по:
- имени;
- username;
- Telegram ID.
Фильтрация
Желательно реализовать фильтрацию:
- по статусам;
- по оператору;
- по периоду;
- по чату.
Статистика
Минимально хотелось бы видеть:
По каждому оператору:
- сколько клиентов обработано;
- сколько успешных;
- сколько отказов;
- сколько недозвонов;
- сколько находится в работе.
Общая статистика:
- количество найденных пользователей;
- количество новых;
- количество обработанных.
База данных
Предпочтительно PostgreSQL.
Необходимо хранить:
- пользователей;
- активности;
- статусы;
- историю обработки;
- очередь операторов;
- список отслеживаемых чатов.
Администрирование
Желательно наличие административного интерфейса.
Это может быть:
- веб-панель;
- либо административный раздел Telegram-бота.
Через него должно быть возможно:
- управлять чатами;
- управлять операторами;
- запускать сбор;
- просматривать статистику;
- изменять основные настройки.
Масштабирование
Хотелось бы, чтобы архитектура изначально предусматривала возможность дальнейшего развития.
Например:
- подключение нескольких Telegr