假设你手上有一份从 CRM 导出的联系人名单,几万行,号码写法很杂:有的是 +62 812-3456-7890,有的是 0812 3456 7890,有的只有一串数字,看不出是哪个国家。业务方想知道其中哪些号码开通了 Telegram,哪些账号还在用。
建议按这个顺序处理:
- 把号码统一成 E.164 国际格式,无法确认国家的号码单独放一组;
- 按规范化后的号码去重,同时保留原始行 ID,方便之后回写;
- 按国家拆分批次;
- 选择 Telegram 检测项后提交,可以在控制台上传文件,也可以走 API;
- 读结果时区分“未命中”和“未开通”,按活跃等级分组后回写 CRM。
下面逐步说明每一步要注意什么,以及结果字段在哪些情况下不能直接当结论用。
第一步:统一成 E.164 格式
E.164 是国际电信联盟定义的号码格式,结构为“国家代码 + 国内号码”,通常写成以 + 开头的纯数字,例如 +6281234567890。检测系统靠完整的国际号码匹配账号,格式不统一时,同一个人可能被当成几个号码,也可能整行匹配失败。
整理时重点处理这几类问题:
- 杂质字符:空格、连字符、括号、点号全部去掉。
- 本地前导零:很多国家的本地写法带一个
0,转换成国际格式时通常要去掉。比如印尼的0812…应写成+62812…。不同国家的前导零和号码长度规则不一样,不要用一条规则套所有国家。 - 缺国家信息的号码:如果号码本身没有国家代码,CRM 里也没有国家或地区字段,不要猜一个默认国家补上。补错后的号码可能正好对应别人的账号,结果比直接报错更难发现。这类号码先单独放一组,等补全来源信息再处理。
- 明显的格式错误:位数不对、含字母、全是同一个数字的号码,在这一步就剔除。
多国家名单可以按国家查格式规则,各国号码长度和主流平台可参考 区域方案页。
第二步:按规范号码去重,保留原始行 ID
去重要在格式统一之后做。+62 812-3456-7890 和 0812 3456 7890 在原始数据里是两行,转换后其实是同一个号码。
去重时不要把重复行直接删掉,建议这样做:
- 新增一列“规范号码”,所有检测都用这一列;
- 原始行 ID 保留下来,一个规范号码可以对应多个原始行;
- 检测完成后,结果按规范号码映射回所有对应的原始行。
这样每个号码只需检测一次,CRM 里的每条记录也都能拿到结果。按条计价时,去重还能直接减少费用。
第三步:按国家拆批,再决定是否先做基础检测
多国家名单建议按国家代码拆成几个批次。这样做有两个好处:出问题时容易定位到具体国家的格式规则;不同市场的开通率差别大,分开统计才看得清。
如果名单年头较久,或者来源比较杂,可以先跑一轮号码基础检测,筛出空号、高风险号等,再对剩下的号码做 Telegram 检测。名单比较新、来源清楚时,可以跳过这一步。
第四步:选检测项并提交
能查哪些字段
Telegram 检测的核心是开通状态,也就是这个号码有没有对应的 Telegram 账号。在此基础上,还可能拿到活跃度等属性。各平台能查的字段不一样,Telegram 当前支持的检测项和单价以 Telegram 平台页 为准。字段清单会调整,不建议按旧文档写死。
选检测项可以参考这几个场景:
- 只需要知道能不能在 Telegram 上找到这个人:选开通检测就够了;
- 要给存量用户分沉睡和活跃:加上活跃度相关的检测项;
- 要做画像分层:再看平台页上还有哪些属性可选。注意,属性字段只对能公开查到资料的账号有值。
控制台还是 API
在 NexCheck 中,两种方式拿到的结果相同,区别在于后续怎么处理:
- 控制台上传:适合运营或市场团队临时处理一份名单。上传 txt 或 csv 文件,结果按有效和无效分组导出,再手动导回 CRM。
- REST API + Webhook:适合定期检测,或要求检测结果自动进入 CRM 的情况。异步提交任务后,结果通过 Webhook 回推,由程序按规范号码写回对应记录。接入细节可以看 Telegram筛号API怎么接。
单批数量没有上限,但前面按国家拆的批次仍然建议保留,方便对账。名单属于你方自有数据,只在检测任务范围内处理。名单来源和用途是否合法,需要由你方负责确认。

第五步:读结果,先弄清隐私设置会带来哪些影响
Telegram 号码检测最容易误读的地方,是用户的隐私设置会直接影响结果。
“未命中”不等于“没有 Telegram”
Telegram 的隐私设置里有一项“谁可以通过手机号找到我”(Privacy and Security > Phone Number > Who can find me by my number)。用户如果把它设为“仅联系人”(My Contacts),非联系人就无法通过手机号找到这个账号,检测系统通常也匹配不到。
所以“未命中”至少包含两种情况:
- 这个号码确实没有注册 Telegram;
- 注册了,但用户限制了通过手机号查找。
这两种情况从检测结果上无法区分。回写 CRM 时,建议把这类号码标成“Telegram 未命中”,不要写成“非 Telegram 用户”,也不要因此删除记录。号码本身是否可用,要看基础检测的结果。
这是 Telegram 用户自己选择的设置。检测服务不会绕过它,也不建议自己写脚本去探测这类账号。
活跃度是分级的,不是精确时间
很多用户隐藏了具体的最后在线时间,这时 Telegram 只显示一个模糊等级。四个等级大致对应以下时间范围:
| 显示状态 | 大致含义 | 运营上可以怎么理解 |
|---|---|---|
| Last seen recently(最近上线) | 1 秒到两三天内 | 活跃用户 |
| Last seen within a week(一周内) | 两三天到 7 天 | 近期在用 |
| Last seen within a month(一月内) | 7 天到 30 天 | 低频使用 |
| Last seen a long time ago(很久以前) | 超过一个月 | 沉睡,需结合其他信息判断 |
使用这个字段时注意三点:
- 等级之间的边界是模糊的,“两三天”并不是精确的分界,不要把等级换算成具体天数再做细分。
- “很久以前”除了表示长期未上线,也可能出现在账号被屏蔽或停用等情况下,不能直接当作“已注销”。
- 活跃度反映的是检测当时的状态。回写时要同时记录检测日期,过几个月再用这份数据,最好重新检测。
回写 CRM 时建议保留的字段
回写不只是给记录打个“有效”或“无效”标签。建议至少写回这几列:
- 规范号码(E.164)
- Telegram 检测结果:已开通 / 未命中
- 活跃等级(如有)
- 检测日期
- 批次号或任务 ID
格式错误、缺国家信息的号码,用另一个状态单独标注,例如“格式待补全”,不要和“未命中”混在一起。这样下次清洗时能直接找出哪些行需要补数据,哪些行只需要重新检测。
开始之前
按上面的顺序做,大部分工作在提交之前就完成了:格式统一、去重、按国家拆批。之后要做的是确认 Telegram 能查哪些字段、各项怎么计价,这些在 Telegram 平台页 上可以查到。确认后,可以在控制台上传第一批名单,或者对照文档接入 API。
NexCheck-筛号平台
评论(0)