Почему количество чатов Telegram различается: контакты, диалоги и строки CRM

Количество чатов Telegram различается, потому что список контактов, текущий список бесед, сохранённый инвентарь CRM и строки, видимые на экране сейчас, измеряют разные вещи. Прежде чем называть чат отсутствующим, сравните один и тот же аккаунт Telegram, область доступа, охват папок и время наблюдения. Затем проверьте, завершены ли пагинация и синхронизация.
Существующее изображение продукта Chiho выше иллюстрирует строки и поля CRM. Это не снимок экрана сопоставления количества ниже.
Проверено 15 сентября 2026 года: поведение Chiho здесь описано по текущему исходному коду и документации, а не по аудиту реального аккаунта. Числа примера вымышленные. Chiho публикует это руководство; оно не сообщает результаты клиентов и не заявляет, что совпадение итогов доказывает полный перенос.
Назовите инвентарь до сравнения чисел
Контакты — записи в адресной книге аккаунта Telegram. Telegram предоставляет отдельный API контактов. Присутствие человека в беседе не превращает список бесед в подсчёт адресной книги.
Диалоги — беседы в инвентаре диалогов аккаунта Telegram. API списка диалогов Telegram принимает параметры папки и пагинации. Возвращённая страница может содержать меньше записей, чем общее количество в инвентаре. Группы и каналы также отличают инвентарь диалогов от списка отдельных клиентов.
Сохранённые диалоги CRM — записи диалогов, которые Chiho сохранила для использования в CRM в выбранной области. У них есть история синхронизации. Сохранённый итог и только что полученный итог Telegram не обязательно описывают один момент.
Видимые строки — записи, которые экран показывает сейчас. Выбранный фильтр или неполная страница могут объяснять меньшее отображение, не доказывая отсутствие лежащей в основе записи.
Если вы решаете, какая информация, помимо самой беседы, должна входить в CRM, начните со статьи что делает CRM для Telegram. Здесь непосредственный вопрос уже: какой инвентарь описывает каждое число?
Начните с одного аккаунта и одной области доступа
Запишите выбранный аккаунт Telegram и то, является ли представление личным или командным. Не сравнивайте итог Telegram одного аккаунта с командным представлением с другими границами доступа. Запишите поиск, фильтр статуса или папки на исследуемом экране.
Для ИИ-клиента, подключённого к Chiho, account_whoami определяет доступные аккаунты. Проверьте состояние подключения и повторной авторизации до интерпретации отсутствующего результата. Ошибка разрешения или подключения означает недоступное измерение, а не нулевое количество.
Текущий список Chiho dialogs_list недоступен токенам командной области; поддерживаемая альтернатива — crm_dialogs_list, читающая сохранённый инвентарь CRM. Эта альтернатива не превращает сохранённый результат в текущее измерение Telegram. Если нужная область недоступна, запишите ограничение и попросите уполномоченного владельца аккаунта выполнить сравнение. Настройка и границы доступа описаны в руководстве по подключению ИИ-агентов.
Сравнивайте активные и архивные диалоги отдельно
inventory_summary Chiho возвращает текущие итоги Telegram activeTotal, archivedTotal и allTotal вместе с независимыми показателями CRM syncedTotal и lastSyncedAt. Раздел Telegram также записывает measuredAt.
Используйте telegramDialogs.allTotal, когда спрашиваете о текущем доступном общем количестве диалогов Telegram. Не подменяйте его числом элементов в ответе dialogs_list. Сохраняйте активное и архивное количество в рабочем листе, чтобы разница в охвате архива была видна.
Текущий итог всё ещё является наблюдением, а не зафиксированным экспортом. Беседы могут меняться во время просмотра страниц. Сравнивайте наблюдения, сделанные близко по времени, и сохраняйте временные метки. Более поздняя разница может потребовать ещё одного ограниченного чтения, а не заявления о потере записей.
Завершите пагинацию, прежде чем называть список полным
Первая страница отвечает на вопрос «что на этой странице?». Чтобы проверить каждый возвращаемый диалог, следуйте nextCursor до его отсутствия, сохраняя аккаунт и область запроса. Запишите, действительно ли вы достигли этой точки.
Для сохранённых диалогов CRM crm_dialogs_list.syncedTotal не зависит от длины текущей страницы. Если инвентарь меняется во время пагинации CRM, Chiho может отклонить курсор и потребовать начать пагинацию заново. Считайте такой ответ прерванным наблюдением; не добавляйте первую страницу нового прохода к старому списку и не считайте дубликаты новыми беседами.
При сравнении отдельных записей используйте аккаунт и устойчивую идентичность собеседника, возвращаемую инструментом, включая её тип, если он доступен. Отображаемые имена — плохие ключи сопоставления: две беседы могут иметь одинаковое название, а названия могут меняться. Сохраняйте только минимальные идентификаторы, необходимые в разрешённой диагностической записи.
Прочитайте состояние синхронизации до попытки исправления
sync_status читает последний или указанный запуск, не начиная работу Telegram. Изучите его режим, охват архива, фазу, прогресс, сбои и информацию о повторной попытке вместе с итогами инвентаря.
- queued или running: запуск ещё не достиг конечного состояния. Частичный сохранённый инвентарь — не окончательный результат сопоставления.
- waiting_for_telegram: проверьте resumeAt. Chiho сохраняет ожидание и зафиксированный прогресс; запланированная работа не должна обращаться к Telegram до этого времени. Повторные запросы синхронизации не обходят ожидание.
- enriching: продолжается дополнительная обработка. Не делайте вывод, что каждое поле CRM или связанная деталь уже заполнены.
- complete: запуск завершён, но проверьте сообщённое количество пропусков и ошибок обогащения. Завершение не доказывает успех каждого задания обогащения или импорт каждого сообщения истории.
- failed: сохраните ID запуска, фазу и код ошибки. Сообщите о сбое до выбора восстановления.
Запуск sync_once — отдельное действие, начинающее или возобновляющее сохранённую работу синхронизации; он не входит в эту проверку только на чтение. Если уполномоченный оператор позже выбирает полное сопоставление, документированная конфигурация — полный режим с включёнными архивными диалогами. Полный режим также обновляет снимок контактов и требует отдельно предоставленного разрешения telegram.contacts.read. Запуск в режиме недавних данных не следует представлять как доказательство полного охвата инвентаря.
Разобранный пример: 50 строк не означает 50 чатов
Ниже приведён синтетический рабочий лист, а не наблюдаемый аккаунт Chiho или тест производительности. Предположим, что все наблюдения относятся к одному личному аккаунту и текущие итоги остаются стабильными во время проверки.
- Активные диалоги Telegram: 120.
- Архивные диалоги Telegram: 30.
- Все диалоги Telegram: 150.
- Сохранённые диалоги CRM Chiho: 142, со своей записанной временной меткой синхронизации.
- Строки на первой странице CRM: 50, с курсором продолжения.
- Контакты адресной книги Telegram: 80, измеренные отдельно с доступом к контактам.
- Состояние синхронизации: waiting_for_telegram, с будущим временем возобновления.
Вот что подтверждает рабочий лист:
- Текущий общий итог диалогов — 120 + 30 = 150.
- 50 строк — одна страница. Они не доказывают потерю 100 чатов.
- Сохранённый итог на 8 меньше текущего. Это нерешённая разница количества, а не доказательство отсутствия восьми конкретных чатов.
- 80 контактов — другой инвентарь. Не вычитайте их из 150, чтобы вычислить отсутствующих клиентов.
- Ожидающий запуск не завершён. Запишите время повторной попытки и снова изучите состояние после разрешённого момента возобновления.
Даже после последующего завершённого запуска равные итоги не докажут, что два набора содержат одни и те же беседы. Один отсутствующий собеседник и один лишний устаревший могут численно компенсировать друг друга. Если полнота важна, сравните фактические наборы собеседников после завершения пагинации, затем изучите различия в разрешённой области.
Скопируйте этот рабочий лист сопоставления
Используйте одну запись на аккаунт и область. Оставляйте неизвестные поля неизвестными, не угадывая.
- Вопрос: Какая конкретная беседа или количество кажутся неправильными?
- Аккаунт и доступ: Выбранный аккаунт; личная/командная область; состояние подключения.
- Экран: Текущий поиск и фильтры; число видимых строк; остались ли страницы.
- Текущие диалоги: Активные; архивные; все; время наблюдения; ошибки чтения.
- Сохранённые диалоги: Синхронизированный итог; время последней синхронизации; пагинация завершена или прервана.
- Контакты, если нужны: Отдельное измерение контактов; разрешение доступно или недоступно.
- Синхронизация: ID запуска; режим; охват архива; состояние; фаза; прогресс; пропущенная/неудачная работа; время возобновления.
- Сравнение записей: Минимальные устойчивые идентичности собеседников, присутствующие только с одной стороны; время наблюдения.
- Решение: Объясняется областью/страницей/фильтром; ожидание завершения; или нерешённое расхождение, требующее расследования.
Например, «чат клиента отсутствует на первой странице» требует просмотра страниц или поиска в заданной области. «Тот же собеседник отсутствует в завершённом сохранённом инвентаре, но присутствует в текущем» — более сильное основание для расследования. Чат, который присутствует, но не имеет заметки, — проблема поля/контекста, относящаяся к процессу передачи работы в команде, а не к расчёту общего количества диалогов.
Дайте ИИ-агенту ограниченное задание только на чтение
После подключения Chiho к вашему клиенту используйте запрос вроде:
Для выбранного аккаунта проверь идентичность аккаунта, сводку инвентаря и состояние синхронизации. Укажи текущие итоги активных и архивных диалогов отдельно от сохранённого итога CRM, с временными метками и ошибками доступа. Не запускай синхронизацию и не отправляй сообщения. Если нужно перечислить записи, укажи, завершена ли пагинация. Не выводи количество контактов из диалогов.
Для вопроса о контактах явно запросите отдельное чтение контактов только при наличии этого разрешения. Для подключения командной области примите недоступность инструмента текущего списка диалогов и обозначайте сохранённый инвентарь как сохранённый.
Следующий шаг: откройте Chiho, выберите исследуемый аккаунт и заполните рабочий лист для одного конкретного расхождения. Полезный результат — объяснённая разница или воспроизводимая диагностическая запись, а не просто два случайно совпавших числа.