跳到主要内容
FormFlow

通过链接预填表单,并携带活动来源

用链接中的答案预先填好托管页面,并在隐藏字段中携带 utm_source 之类的活动来源。步骤、规则,以及把值放进 URL 的隐私取舍。

本文由机器翻译。 阅读英文原文

Screenshot of a FormFlow Hosted page opened from a link that carries answers. Full name, Email address and Subject are already filled with a seeded sender, Lena Ortiz, and nothing is sent. It shows the pre-fill the tutorial sets up through the link.

一个链接可以打开一个已经带有部分答案的表单,还可以携带一个对方从不会看到的值,比如把他们带来的那次活动。这两项功能都在 v1.12.0 中推出。本教程介绍如何在托管页面上分别设置它们,然后说明它们的局限:链接无法填充什么,为什么链接不是存放个人数据的安全位置,以及在根本不会读取链接的嵌入表单上该怎么办。

你需要准备什么

一个已发布托管页面的表单。“托管页面”标签页上的“发布托管页面”开关处于锁定状态,并附有说明“托管页面在付费套餐中可用。”同样的查询字符串规则也适用于微型站点页面上的“表单”区块,微型站点一文对此有介绍。链接是按字段的名称来填充的,也就是 HTML 输入框提交时使用的字符串,而不是按它的标签。打开“字段”标签页,检查你打算填充的每个字段的名称。

通过链接预填字段

  1. 在“字段”标签页上,记下字段的名称。在这个例子中,是一个名为 email 的字段。

  2. 打开“托管页面”标签页,确认“发布托管页面”已打开。在“已上线”旁边,你会看到页面的地址。复制它。

  3. 在地址末尾加上一个问号、字段的名称、一个等号和值。更多的键值对用 & 符号连接。

  4. 在无痕窗口中打开做好的链接。该字段应该已经带有这个值。

YOUR_HOSTED_PAGE_ADDRESS?email=ada@example.com&topic=Sales

这里的 YOUR_HOSTED_PAGE_ADDRESS 是“已上线”之后的地址,topic 是一个带有 Sales 选项的下拉选择字段的名称。有几条规则决定实际会填充什么:

  • 预填只是控件的起始状态。对方可以修改他们看得到的任何内容,在点击“发送”之前,没有任何内容算作答案。之后它会与手动输入的值完全一样地被判断。

  • 下拉选择、单选或多选字段,只有当值是该字段自己的选项之一时才会采用。其他任何值都会被忽略。

  • 复选框采用 1。量表或评分采用其范围内的整数。

  • 时长、网格、复选框网格和文件字段永远不会被填充。

  • 不是表单字段的键会被忽略。

  • 如果对方已经提交过答案,而页面又返回了,例如出错之后,他们的答案优先于链接。

  • 分级表单永远不会被预填,所以链接无法提前替人作答。

在隐藏字段中携带活动来源

隐藏字段保存一个对方从不会看到或编辑的值。活动来源,或者你的 CRM 中的某个引用,就是这样随提交一起到达,而不会让页面变得杂乱。

  1. 在“字段”标签页上,点击“添加字段”。

  2. 把名称设为 utm_source。把类型设为“隐藏”。选择“隐藏”之后,“类型”下方的提示会显示“由链接填充”,并给出要使用的链接形式。

  3. 把该字段保留在第一步。隐藏字段必须位于第一步,这样任何分支都无法跳过它,而且这一步还需要一个对方能看到的问题,不能只有隐藏字段。

  4. 保存表单。

  5. 把这个键加到你的链接上:YOUR_HOSTED_PAGE_ADDRESS?utm_source=newsletter。打开它,填写可见字段并发送。

  6. 打开新的提交。值 newsletter 就在它的答案之中。FormFlow 的更新日志说明,它还会出现在导出、Google Sheets 和 Webhook 中。

隐藏字段永远不是必填的,也没有可设置的规则,因为对方既看不到也无法修正一次拒绝。它的名称不能与表单的蜜罐字段相同。它也永远不会在列出对方答案的屏幕上回显给对方。

严格模式与隐藏字段

在“安全”标签页上,“根据字段列表验证提交”开关就是严格模式。打开它之后,提交必须与表单的字段列表相符,所以表单没有声明的键就是一个问题。声明一个隐藏字段,才能让它的键通过,因此你可以在不关闭严格模式的情况下追踪活动。

在嵌入表单上

预填读取的是打开由 FormFlow 提供的页面时所用的链接。嵌入表单位于你自己的页面上,所以 FormFlow 永远看不到那个链接。生成的组件确实包含隐藏字段,是一个没有值的空输入框。填充它要由你的页面来完成。下面是一段最简单的脚本,由你自己编写,不是 FormFlow 生成的:

<input name="utm_source" type="hidden">

<script>
  var source = new URLSearchParams(location.search).get('utm_source');
  var input = document.querySelector('input[name="utm_source"]');
  if (source && input) { input.value = source; }
</script>

请把脚本放在表单之后。input 那一行就是生成的组件为名为 utm_source 的隐藏字段所包含的内容。严格模式仍然要求在表单中声明该隐藏字段。

需要了解的局限

  • 面板中的预览从不采用预填。请用真实的链接测试。

  • 只接纳名册的表单会让人先经过一个登录步骤,而预填无法在该重定向之后保留。

  • 分级表单不能有隐藏字段。构建器是这样说的:“带有答案键的表单不能包含隐藏字段。”

  • 链接中的每个值都可能进入你的分析工具和日志,无论它是不是隐藏字段。

把你的第一个表单指向 FormFlow。

无需搭建后端,无需托管前端。

免费开始