Power Automate Teams关键词触发流时如何提取匹配的触发关键词
Power Automate 提取Teams关键词触发器实际匹配词实现方案
核心逻辑说明
Teams的「提及关键词时」触发器本身不会返回本次触发命中的具体关键词字段,所以需要基于你已经通过「HTML转文本」拿到的纯文本消息内容,和你预设的触发关键词列表做匹配,过滤出命中的关键词后即可走对应分支。
分步操作流程
1. 预设关键词数组初始化
- 新增「初始化变量」操作,变量类型选择数组,变量名设为
TriggerKeywords - 变量值填入你在Teams触发器里配置的所有触发关键词,比如你配置了"Seven"、"月报"、"待审批",就按数组格式填:
["Seven", "月报", "待审批"]
注意:填入的关键词必须和触发器里配置的文本完全一致,避免后续匹配漏判
2. 筛选命中的实际触发词
- 新增「筛选数组」操作
- 「从」输入框选择你刚才创建的
TriggerKeywords变量 - 筛选条件选择「编辑高级模式」,输入以下表达式(把里面的
HTML转文本输出替换成你自己「HTML转文本」操作输出的纯文本动态内容):
contains(toLower(HTML转文本输出), toLower(item()))
这个表达式会自动忽略大小写匹配,避免消息里关键词大小写不一致(比如发了seven/SEVEN)导致的匹配失败。
- 筛选完成后,
body('筛选数组')输出的数组就是本次消息实际命中的所有触发关键词。
3. 按关键词走对应分支
根据你的业务场景选分支逻辑即可:
- 如果单条消息只会命中一个关键词:直接新增「Switch」控件,开关值填表达式
first(body('筛选数组')),在每个Case里填对应关键词,配置对应分支的操作即可。 - 如果单条消息可能同时命中多个关键词:新增「Apply to each」控件,遍历对象选
body('筛选数组'),在遍历内部加「Switch」控件,每个关键词对应一个分支操作即可。
常见避坑点
- 不要直接用Teams触发器输出的原始HTML消息体做匹配:带格式的关键词会被
<strong>``<em>这类HTML标签拆分(比如加粗的Seven原始HTML是<strong>Seven</strong>),直接匹配会漏判,必须先转纯文本再匹配。 - 如果你的关键词存在包含关系(比如同时配置了"Seven"和"Seven月报"),建议在分支判断时优先判断更长的关键词,避免短词优先命中导致长词分支被跳过。
- 不需要额外写正则做复杂匹配,上述筛选逻辑已经能覆盖99%的群组聊天、频道消息场景。
内容的提问来源于stack exchange,提问作者Aamante
相关产品推荐
相关产品推荐

