将外部表单连接到表单处理程序
创建并发布表单处理程序后,配置外部表单,以将数据发送到 Salesforce。
所需的 Edition
| 所需用户权限 | |
|---|---|
| 要创建表格处理程序: | Marketing Cloud 管理员权限集 与 任何 CMS 工作区投稿人角色 |
| 要发布表格处理程序: | Marketing Cloud 管理员权限集 与 内容管理员或内容管理员的 CMS 工作区投稿人角色 |
| 配置 CORS 允许列表: | 修改所有数据 |
在完成这些步骤之前,请创建并发布表格处理程序。
有两种方法将数据从表单发送到 Salesforce。选择最适合站点结构和功能的连接类型。
| JavaScript 片段(客户端) | 直接 POST URL(服务器端) |
|
|---|---|---|
| 工作方式 | 当访问者提交表单时,页面上的脚本会将表单数据发送到 Salesforce。 | 您的表单直接将数据发布到 Salesforce URL,页面上没有脚本。 |
| 添加到站点 | 您粘贴到页面 HTML 中的 <script> 标记和表单属性。 |
您设置为表单或 Webhook 目标操作的 URL。 |
| 最适合 | 您可以控制 HTML 和添加脚本的页面。 | 不允许自定义脚本的第三方表单生成器、具有严格内容安全策略 (CSP) 规则的页面以及从后端服务器发布的表单。 |
| 支持 Web 跟踪 | 是 | 否 |
| 支持身份解析 | 是 | 否 |
| 需要 CORS 允许列表条目 | 是 | 是 |
这两种方法将数据发送到相同的表单处理程序,并触发相同的流。这两种方法还需要您在 CORS 允许列表中授权您的域。
无论哪种连接类型,请确保表单中的每个字段都使用与表单处理程序中的相应外部字段名称完全匹配的 HTML name属性。如果名称不匹配,表单处理程序不会捕获值。例如,如果您将外部字段名email_address映射到Email字段,则表单中相应字段的 name 属性也必须是 email_address。
选项 1:配置您的表单以使用客户端连接
当您控制页面的 HTML 并可以向其添加脚本时,请使用此方法。由于脚本在访问者的浏览器中运行,因此此方法支持 Web 跟踪和身份解析。因此,此方法可以将表单提交连接到访问者的 Web 活动。
- 发布表格处理程序。
-
在“代码片段”选项卡的“客户端表单处理器”下,复制跟踪脚本。脚本类似于此示例。
<script async src="https://YOUR_DOMAIN/lp/assets/scripts/external-form-handler-host.min.js" onload="SFDCFormHandler.init('https://YOUR_DOMAIN/lp')"></script> -
在站点的 HTML 代码中,将脚本粘贴到结束
</body>标记之前。 -
在“代码片段”选项卡上,复制表单属性。属性类似于此示例。
<form id="CONTENT_KEY" data-uma-forms="true"></form> -
在 HTML 中,将
id和data-uma-forms属性添加到<form>标记。 -
请确认每个表单字段的 HTML
name属性与映射的外部字段名称匹配。 - 将托管表单的域添加到 CORS 允许列表。此步骤授权您的域向 Salesforce 发送提交。
- 要监控用户参与,请打开 Web 跟踪。
当访问者提交表单时,脚本会将数据发送到 Salesforce,表单处理器会处理提交并触发您的流。然后,表单处理程序会将它们重定向到您配置的成功或错误 URL。
选项 2:配置表单以使用服务器端连接
当您无法将代码添加到页面或对代码进行自定义配置时,请使用服务器端连接。使用此方法,表单处理器会为您提供目标 URL,您可以配置表单,以将数据发送到该 URL。因为您没有嵌入脚本,所以此方法适用于不允许自定义 JavaScript 的表单工具。此方法也适用于具有严格内容安全策略 (CSP) 规则的页面,以及从后端服务器提交的表单。
-
在表单处理程序的代码片段选项卡上,在服务器端表单处理程序下,复制表单操作 URL。URL 与此示例相似。
https://YOUR_DOMAIN/lp/cms/form/submit/v1/CONTENT_KEY -
配置表单以将数据发送到 Salesforce。实施步骤取决于您如何实施表单。
如果您使用第三方表单生成器或插件 在第三方工具的设置中,查找用于配置表单操作、发布到 URL 或 Webhook 目标的字段。在该字段中输入 Salesforce URL。 如果您可以修改 HTML,但无法添加脚本 将 <form>标记的action属性设置为 Salesforce URL,并将method属性设置为POST。如果您的表单使用后端流程 使用表格数据向 Salesforce URL 发送 POST 请求,并使用 application/x-www-form-urlencoded编码。 -
确认每个字段的名称与映射的外部字段名称完全匹配。
表单处理程序仅在字段完全匹配时捕获字段。
- 将托管表单的域添加到 CORS 允许列表。此步骤授权您的域向 Salesforce 发送提交。
配置 CORS 允许列表
这两种连接方法都需要您在 Salesforce 接受表单提交之前验证您的域。如果您未授权域,Salesforce 会在处理前阻止提交。要授权您的域,请将其添加到 CORS 允许列表中。
-
标识托管表单的域,例如
https://www.example.com。要授权所有子域,请使用通配符,例如https://*.example.com。 - 将域添加到 CORS 允许列表。
