Slack工作流通过userID提及用户时无法正常渲染真实用户名
Slack工作流读取Google Sheet存储的userID无法正常@用户的解决方法
问题复现路径
- 将Slack userID存储在Google Sheet文档中
- 工作流读取文档内存储的userID,向对应聊天推送消息时,无法正常展示
@AdamLol这类@用户效果,仅显示<@USERID123>格式的原始字符串
可落地解决方案
根据你使用的工作流搭建方式,对应处理即可:
场景1:使用Slack原生Workflow Builder搭建流程
- 表格内仅存储无任何格式的纯userID(例如
U01ABCDEFGH),不要提前拼接<@、>这类格式符,避免后续传递过程中尖括号被转义 - 在「读取Google Sheet」步骤之后,新增Slack内置的「查找用户」步骤,将入参设置为从表格读取到的纯userID字段,该步骤会返回Slack可识别的标准用户对象
- 配置「发送消息」步骤时,不要直接插入表格读取到的userID变量,选择插入「查找用户」步骤返回的用户提及字段,发送后即可正常渲染@效果
场景2:使用第三方自动化工具/自建脚本对接Slack API发消息
- 检查消息传递链路的转义逻辑:如果最终发出去的内容里尖括号被转义成了
<和>,Slack会直接将其判定为普通文本,不会解析为用户提及,需要在发消息前把转义后的实体替换回英文半角尖括号,确保提及格式为标准的<@纯userID> - 更稳定的方案是调用Slack发消息接口时传
blocks参数,在需要@用户的位置使用官方的user类型元素,直接传入纯userID即可,无需手动拼接提及格式,从根源避免转义问题
常见踩坑
不要提前把拼接好的
<@userID>字符串存在Google Sheet里,跨工具传递变量时,尖括号大概率会被自动转义为HTML实体,最终导致Slack无法识别。
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

