TG筛号进阶的标志不是Excel越来越宽,而是每一列进入CRM之前都有明确合同。这个合同要说明业务问题、任务名称、预期字段、空值含义、写入位置、到期时间和负责人。
没有字段合同,同一个“活跃”结果可能被销售当成购买意向、被运营当成许可、被技术当成实时状态。字段本身没有变,错误来自组织给它附加了不一致的意义。
先写决策,再写字段
把需求改写成可验证的一句话,例如:“针对来源明确且允许处理的客户号码,识别TG开通状态,用于选择客服渠道。”这句话限定了人群、问题和用途。若需求是分析活跃字段或用户名,就应另建任务。
“尽可能多拿数据”不是业务问题,也无法形成验收标准。
字段合同应包含什么
| 合同项 | 示例 | 作用 |
|---|---|---|
| 任务 | TG筛活跃 | 锁定输出结构 |
| 允许人群 | 已记录来源的现有客户 | 限定处理范围 |
| 输入键 | 规范化手机号 | 支持TXT生成与对账 |
| 预期字段 | UserID、用户名、离线时间、活跃天数等 | 阻止临时扩字段 |
| 未知规则 | 空值保持unknown | 避免自动改成否 |
| 写入方式 | 追加观察记录 | 保留历史结果 |
| 到期规则 | 由用途和风险确定 | 避免旧结果永久使用 |
不同TG任务不是精度等级
TG筛开通返回手机号和是否开通。TG筛活跃增加UserID、用户名、用户离线时间、活跃天数、姓名、VIP和冻结状态。性别年龄任务增加头像URL、年龄和性别;全格式进一步增加肤色、头像类型与头像人数。
这些服务回答不同问题,并非从“低精度”逐级升级到“高精度”。只需要开通状态时,选择全格式不会让答案更正确。
用三张表承接一次任务
| 数据层 | 保存内容 | 禁止事项 |
|---|---|---|
| source_contact | 内部ID、原始号码、来源、许可 | 上传无关CRM信息 |
| check_batch | 批次、任务、日期、TXT行数、规则版本 | 用“最新文件”代替批次ID |
| check_observation | 返回字段、异常、映射状态 | 覆盖历史观察 |
业务系统通过视图读取最新的已批准观察,但底层保留旧结果,以便解释变化和回滚。
TXT和Excel之间必须有桥接关系
在本地保留内部contact_id与规范手机号的映射,只把一行一个手机号的TXT提交给爱普筛。结果Excel进入临时表后,用同一规范规则对账。手机号、TG UserID与用户名分别保存,不能把用户名当永久主键。
一号对应多个内部联系人、返回行重复或无法匹配时,进入异常队列,不由脚本自动合并。
给unknown留下正式位置
空值、未返回、格式错误、任务不适用和真实的否是五种状态。建议使用result_status与exception_reason分别记录,而不是在业务列里全部填0。
unknown比例本身也是质量指标。它突然上升时,应先检查输入来源、规则版本和输出结构。
CRM动作必须经过第二道门
平台字段写入后,营销或客服动作还要重新检查许可范围、退出记录、客户关系和消息目的。Telegram官方说明,向陌生人发送不受欢迎的信息可能导致账号受限;筛号不能变成群发授权。
可参考Telegram Spam FAQ确认当前平台边界。
一次上线验收
- 随机抽查TXT与源数据是否一致;
- 核对任务名称和Excel表头;
- 计算输入唯一数、返回数和匹配数;
- 确认unknown没有被改写;
- 测试重复导入不会生成重复业务动作;
- 确认旧批次可追溯并能回滚;
- 设置文件删除时间和负责人。
成熟的TG筛号系统不追求把每个号码描述得更多,而是让每个字段都能回答:从哪里来、何时获得、为何需要、谁能使用、什么时候失效。
