要知道某位LookWorldPro用户多久没联系,最直接的办法是查看所有沟通渠道的最近互动时间(消息、通话、邮件、登录、工单等),把最晚的一次时间统一比对为“最后接触时间”,再用当天日期减去该时间得到间隔天数。可通过API或SQL批量统计并留存记录。示例见下

从常识看,这个问题看似简单,其实有几个关键点必须先弄清楚:
简单来说,如果只看微信消息可能会漏掉邮件或客服工单;只看登录活动又可能忽略了有意义的沟通。把所有渠道的“最近一次事件”统一比较,能最公平地反映双方真实的接触频率。
想象一个朋友同时有微信、邮箱和常去的咖啡馆。你想知道他“多久没联系你了”,那你不能只看微信;也许他最近给你回了邮件,或者在咖啡馆碰到过。把所有可能的碰面渠道都看一遍,取最近一次就是事实。
这里给出常见的两种实现方式:周期性批量计算(离线)和实时查询(在线)。
做法:每天一次,从各数据来源拉取最近互动时间,写入一个汇总表 last_contact_summary,便于后续筛选和统计。
| 表名 | 字段 | 说明 |
| last_contact_summary | user_id | 用户唯一ID |
| last_contact_at | 最后接触时间(UTC) | |
| last_channel | 记录来源渠道(message,email,call,login,ticket) |
示例SQL(伪代码,需根据实际表名调整):
-- 各渠道取最近时间 WITH m AS ( SELECT user_id, MAX(sent_at) AS t FROM messages GROUP BY user_id ), e AS ( SELECT user_id, MAX(received_at) AS t FROM emails GROUP BY user_id ), l AS ( SELECT user_id, MAX(login_at) AS t FROM logins GROUP BY user_id ), c AS ( SELECT user_id, MAX(call_at) AS t FROM calls GROUP BY user_id ), tkt AS ( SELECT user_id, MAX(updated_at) AS t FROM tickets GROUP BY user_id ), union_all AS ( SELECT user_id, t, 'message' AS channel FROM m UNION ALL SELECT user_id, t, 'email' FROM e UNION ALL SELECT user_id, t, 'login' FROM l UNION ALL SELECT user_id, t, 'call' FROM c UNION ALL SELECT user_id, t, 'ticket' FROM tkt ) -- 挑出每个用户的最新时间 INSERT INTO last_contact_summary(user_id, last_contact_at, last_channel) SELECT user_id, MAX(t) AS last_contact_at, MAX(channel) KEEP (DENSE_RANK LAST ORDER BY t) AS last_channel FROM union_all GROUP BY user_id;
在用户画像页或工单界面,可以在后端聚合各渠道的最新记录并返回给前端,或者从汇总表中直接读取。
示例API响应结构(示意):
{
"user_id": "u123",
"last_contact_at": "2026-04-20T10:23:00Z",
"last_channel": "email",
"channel_details": {
"message": "2026-03-10T09:00:00Z",
"email": "2026-04-20T10:23:00Z",
"login": "2026-02-01T12:00:00Z"
}
}
步骤:查看客服工单最后更新时间 → 查看邮件发送与回复记录 → 查看最近一次登录或订单状态更新 → 若所有渠道均无互动,记为“无人回复”并触发自动流失挽回流程。
步骤:合并IM聊天、邮件、通话记录、表单填写时间;若最后一次接触超过30天,自动打标为“需跟进”,并推送提醒给销售。
收集与处理用户通信记录涉及隐私法规(如GDPR等),实际操作时要注意:
其实也没那么复杂:把所有渠道的最近时间拿出来,比谁最新,算出间隔,做规则、打标签、触发动作就行了。工程上要注意时区、读回执、排除系统通知,监管上要注意隐私合规。实践中你会发现,最费力的往往不是写SQL,而是先统一“接触”这个概念,然后让数据埋点、日志和CRM都按同一套规则走。
我写到这儿,想到一个常见场景——有时候用户在别的平台上活跃但不在你的渠道出现,这种情况就需要结合第三方数据或营销触达策略去补齐,否则“多久没联系”只是系统内的一个数字,未必等同于真实的人际互动。