You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power Automate中用Compose整合Forms数据到邮件并排障

解决Power Automate处理Microsoft Forms数据邮件发送的字段筛选问题

一、核心需求梳理

  • 过滤值为null、空字符串或"No"的无效字段
  • 表单分三大板块,各板块由Yes/No开关控制是否纳入邮件内容
  • 替代低效的if表达式,实现批量高效处理

二、Compose组件输入输出一致问题修复

你遇到的Compose输入输出完全一致,本质是数组定义不规范或未正确引用表单字段。正确的结构化字段数组应包含每个字段的显示名、对应值、所属板块的开关状态,示例如下:

[
  {
    "label": "板块1-问题1",
    "value": "@outputs('Get_response_details')?['body/r123456789']",
    "sectionSwitch": "@outputs('Get_response_details')?['body/r987654321']"
  },
  {
    "label": "板块1-问题2",
    "value": "@outputs('Get_response_details')?['body/r112233445']",
    "sectionSwitch": "@outputs('Get_response_details')?['body/r987654321']"
  },
  {
    "label": "板块2-问题1",
    "value": "@outputs('Get_response_details')?['body/r556677889']",
    "sectionSwitch": "@outputs('Get_response_details')?['body/r998877665']"
  }
]

注意:

  • label为邮件中显示的字段名称
  • value替换为你实际的表单字段键(可从Get response details的输出中复制准确路径)
  • sectionSwitch关联对应板块的Yes/No开关字段值

三、高效筛选与邮件内容生成步骤

  1. Get response details:拉取完整表单响应数据,确保所有字段可正常引用
  2. Compose - 结构化字段数组:按上述示例定义数组,完成字段与板块开关的关联
  3. Filter array:添加过滤组件,设置双重过滤条件(逻辑与):
    • 条件1:item()?['sectionSwitch']等于"Yes"(仅保留开启的板块字段)
    • 条件2:排除无效值,表达式如下:
      @and(equals(item()?['sectionSwitch'], 'Yes'), not(or(equals(item()?['value'], null), equals(item()?['value'], ''), equals(item()?['value'], 'No'))))
      
  4. Select:将过滤后的数组映射为易读的键值对,设置From为item()?['label'],To为item()?['value']
  5. Compose - 格式化邮件正文:用join函数将Select结果转为换行分隔的文本,示例表达式:
    @join(body('Select'), decodeUriComponent('%0A%0A'))
    
  6. Send an email:将Compose生成的格式化内容插入邮件正文发送

四、常见问题排查

  • 若Filter array无输出,检查Get response details中的字段键是否复制准确
  • 板块开关不生效时,确认开关返回值是字符串"Yes"/"No"还是布尔值,调整过滤条件的匹配值
  • Compose数组需保证是合法JSON格式,避免逗号遗漏、引号不配对等语法错误

内容的提问来源于stack exchange,提问作者Darryl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:42:34