guides
Как дедуплицировать лиды, собранные несколькими инструментами для поиска клиентов в Telegram

Объедините выгрузки из нескольких Telegram-парсеров в один чистый список: в качестве ключа берите числовой Telegram user ID, а не username, и сохраняйте для каждого лида тег источника.
Главное
Используйте числовой Telegram user ID как ключ для дедупликации: в Bot API Telegram он описан как уникальный идентификатор, а username — как необязательное поле.
Apify Telegram Member Scraper дедуплицирует по user ID и сохраняет group_id и found_in в каждой строке.
Стандартное сопоставление дублей в HubSpot не учитывает Telegram-хэндлы, поэтому добавьте уникальное кастомное свойство.
Держите колонку с источником, чтобы никогда не терять информацию о том, какая группа или какой инструмент нашли каждого лида.
Чтобы дедуплицировать Telegram-лиды из нескольких инструментов, приведите все выгрузки к единому виду в одной таблице и сопоставляйте строки по числовому user ID. К username и телефону переходите только тогда, когда ID нет, а при объединении сохраняйте все теги источников. Делайте это до того, как что-либо импортировать в CRM.
Почему дедуплицировать нужно по Telegram user ID, а не по username?
Дедуплицируйте по числовому user ID: username может меняться, а ID остаётся стабильным идентификатором. В Bot API Telegram id пользователя определён как уникальный идентификатор, а username помечен как необязательный.
Обновление updateUserName содержит user_id и новые имена и username, то есть имена меняются, а user_id остаётся прежним. Кроме того, у одного аккаунта может быть сразу несколько активных username — об этом говорится в документации Telegram Fragment.
Храните ID как 64-битное целое или как текст. По данным Bot API, в нём не более 52 значащих бит, поэтому таблицы, которые округляют длинные числа, могут его испортить. Перед вставкой отформатируйте эту колонку как обычный текст.
Как объединить выгрузки из разных парсеров в одну таблицу?
Сначала приведите каждую выгрузку к одним и тем же колонкам, а потом сложите строки вместе. Именно общая схема делает сопоставление возможным.
Инструменты возвращают разные поля. Тулкит TelegramScraper.shop выгружает семь колонок: Name, ID, Username, Phone Number, Access Hash, Group Name и Group ID. Расширение для Chrome Mastros выгружает имена, @хэндлы, user ID, роли, биографии и телефоны, где они показаны.
Создайте колонки: user_id, username, name, phone, source_tool, source_group, found_in.
Переименуйте колонки каждой выгрузки под эту схему.
Заполните source_tool названием инструмента в каждой строке.
Сложите все файлы в одну таблицу.
Отсортируйте по user_id и отметьте повторяющиеся значения.
Пустые поля оставляйте пустыми. Необязательные поля часто не заполнены, а если вписывать туда догадки, позже получатся ложные совпадения.
Какие парсеры уже удаляют дубли сами?
Apify Telegram Member Scraper от AgentX дедуплицирует по числовому user ID, поэтому человек, найденный и в списке участников, и среди авторов сообщений, появляется один раз. На его странице продукта сказано, что в каждой строке сохраняются group ID, username, title и found_in, так что можно объединять несколько выгрузок, не теряя происхождение данных.
Mastros сообщает, что убирает людей, которые встречаются дважды, когда вы сохраняете несколько групп в одной выгрузке. Это работает только внутри одного запуска выгрузки, но не для файлов из других инструментов.
Встроенная дедупликация заканчивается на границе инструмента. Два разных парсера всё равно дают пересекающиеся файлы, поэтому вам нужен собственный проход по всем ним.
Следите за полем found_in. В документации AgentX указано, что found_in=messages подтверждает авторство в просканированной истории, но не текущее членство в группе.
Как сопоставлять лиды без user ID?
Сопоставляйте сначала по номеру телефона, затем по username, а остальное проверяйте вручную. Считайте эти ключи более слабыми, чем ID.
Приведите телефоны к одному международному формату перед сравнением.
Переведите username в нижний регистр и уберите знак @.
Проверяйте коллизии вручную: повторно использованный или изменённый username может указывать на другого человека.
После сопоставления скопируйте user ID в оставшуюся строку.
Старый username сохраните в колонке с заметками, поскольку у аккаунтов их может быть несколько.
Если у вас есть только номера телефонов из Apollo или Clay, в crmchat есть конвертер номера телефона в Telegram username, который превращает номера проспектов в username для последовательностей аутрича. По данным справочного центра crmchat, средний показатель обогащения — 50% для Индии, СНГ и MENA и 30% для ЕС, Великобритании и Америки.
Подробнее об объединении источников — в материале про сопоставление выгрузок из LinkedIn.
Как не допустить дублей внутри CRM?
Добавьте уникальное кастомное свойство для Telegram user ID и импортируйте данные с привязкой к нему. Большинство CRM по умолчанию не сопоставляют записи по Telegram.
Менеджер дублей HubSpot сравнивает имя, фамилию, email, страну по IP, телефон, почтовый индекс и название компании, и ни одно из этих полей не является идентификатором Telegram. HubSpot сообщает, что свойства с уникальными значениями можно использовать для дедупликации при импорте, но для менеджера дублей нужна подписка Professional или Enterprise.
Инструмент Deduplicate Leads в Zoho CRM позволяет выбрать до 3 полей для сопоставления, как сказано в статье партнёра Zoho, а слияния нельзя отменить. Dedupely сопоставляет записи по любым стандартным или кастомным полям и работает также с CSV-файлами; цена зависит от количества записей (актуальные условия смотрите на их сайте).
crmchat изначально построен вокруг Telegram, поэтому лиды с самого начала — это Telegram-контакты. В crmchat лидов можно добавлять через синхронизацию Telegram-папок, пересланные сообщения, QR-сканы и Group Parser, и всё это в одном пайплайне, как описано в руководстве справочного центра. Это убирает один круг экспорта между инструментами, а API crmchat пригодится, если нужно загрузить уже очищенные данные.
Какая рутина дедупликации подойдёт для каждой новой партии?
Прогоняйте одни и те же пять проверок на каждой партии, прежде чем она попадёт в CRM или последовательности аутрича. Постоянство важнее любого отдельного инструмента.
Приведите новую выгрузку к общей схеме.
Сравните user ID с основным списком и отбросьте точные совпадения.
Для строк без ID сравните телефоны, затем username.
Добавьте новые строки с их тегами источников.
Запишите дату партии, чтобы можно было отследить проблемы.
Дубли вредят и аутричу: один человек может получить одно и то же сообщение дважды с разных аккаунтов. Если вы работаете с несколькими аккаунтами-отправителями, прочитайте этот гайд по martech-стеку и заметку про настройку второго аккаунта.
FAQ
Какой ключ лучше всего подходит для дедупликации Telegram-лидов?
Числовой Telegram user ID. Username необязателен и может меняться, а Bot API описывает ID как уникальный идентификатор пользователя.
Можно ли дедуплицировать Telegram-лиды в Excel или Google Sheets?
Да. Сложите все выгрузки по одной схеме, отформатируйте колонку с user ID как текст, затем используйте удаление дубликатов или флаг COUNTIF по этой колонке. Сохраняйте колонки с источниками, чтобы ничего не потерять.
Удаляют ли Telegram-парсеры дубли между разными инструментами?
Нет. Парсер Apify дедуплицирует по user ID внутри собственного вывода, а Mastros — внутри одной выгрузки, но файлы из разных инструментов всё равно пересекаются, и нужен общий проход.
Дедуплицирует ли HubSpot по Telegram username?
По умолчанию нет. Его менеджер дублей сравнивает такие поля, как email, имя и телефон, поэтому создайте уникальное кастомное свойство для Telegram user ID и импортируйте данные с привязкой к нему.



