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

Power Automate中如何将Salesforce邮件模板变量替换为动态内容

解决Power Automate中HTML变量内动态内容无法解析的问题

核心原因

Power Automate不会二次解析已存储在变量中的表达式(比如@{items('Apply_to_each')?['CompanyOrAccount']}),直接插入这类内容会被当成纯文本字符串显示。必须在生成最终HTML内容的阶段就完成动态内容的替换。

可行方案

方案1:直接在发送邮件步骤中完成替换(推荐)

  1. 提取Salesforce邮件模板的原始HTML正文,将其中需要替换的Salesforce自动字段(比如{!CampaignMember.CompanyOrAccount}、{!CampaignMember.FirstName})替换为自定义占位符(比如{{Company}}、{{FirstName}},避免和Power Automate表达式语法冲突)。
  2. 在「发送邮件」步骤的正文输入框中,使用嵌套的replace表达式完成动态内容替换:
replace(
    replace(
        '<Salesforce模板原始HTML内容>',
        '{{Company}}',
        items('Apply_to_each')?['CompanyOrAccount']
    ),
    '{{FirstName}}',
    items('Apply_to_each')?['FirstName']
)
  1. 确保邮件正文切换到HTML模式(点击输入框右上角的「HTML」按钮),这样解析后的HTML会正常渲染。

方案2:通过Compose/变量预生成替换后的HTML

如果需要复用处理后的HTML内容,可以用Compose或变量提前完成替换:

  1. 添加「Compose」步骤,输入原始Salesforce模板HTML(或直接引用获取模板的输出)。
  2. 添加另一个「Compose」步骤,使用replace表达式替换占位符:
replace(
    replace(
        outputs('Compose_原始HTML'),
        '{!CampaignMember.CompanyOrAccount}',
        items('Apply_to_each')?['CompanyOrAccount']
    ),
    '{!CampaignMember.FirstName}',
    items('Apply_to_each')?['FirstName']
)
  1. 将第二个Compose步骤的输出直接作为邮件正文内容,同样要确保开启HTML模式。

方案3:避免直接在HTML中写入Power Automate表达式

不要把@{items('Apply_to_each')?['CompanyOrAccount']}这类表达式直接写入HTML变量,Power Automate只会在首次解析步骤时处理表达式,存储为变量后不会再解析其中的表达式内容。必须通过replace函数将动态内容嵌入到HTML字符串中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:52:47