每个表单都有一个表单样式。NueForm 样式一次显示一个问题。问卷样式在同一页上显示所有问题:受访者可以按任意顺序作答,在完成之前随时修改任何回答,最后用一个提交按钮一次性提交。问卷不使用逻辑跳转,而是通过可见性条件来显示或隐藏问题,这些条件在可见性与操作对话框中设置。
将表单切换为问卷样式
- 在构建器中打开表单,进入设置。
- 在表单样式下选择问卷。
包含切换语言步骤的表单无法切换为问卷样式:构建器会显示包含切换语言节点的表单无法使用问卷模式。 请先删除该步骤。
如果表单包含逻辑跳转,切换到问卷样式对话框会提醒您这些逻辑跳转将被删除(问卷改用可见性条件),并且此切换无法撤销。如果表单包含邮件步骤或数据节点,对话框还会将它们列出,并说明它们之后的运行方式:邮件步骤在提交表单时发送,数据节点则在其使用的回答变化时运行,或在提交时运行。
这些步骤不会阻止切换,也不会被移动:它们保持原位,每个数据节点都会获得一个运行时机设置(见下文“数据节点”一节)。切换后请逐一检查。
受访者看到的内容
提交之前
- 在受访者点击提交之前,一切都不是最终结果——任何回答都可以修改。
- 受访者作答时,回答会自动保存为一份未完成(部分)的回复。部分回复不算提交:它不会触发 Webhook、不会发送通知邮件,也不计入您的回复配额。
- 提交按钮始终显示在页面底部。它会先检查回答:如果有必填问题未填或某个回答无效,部分答案需要修正对话框会将它们列出,并且不会提交任何内容。
提交之后
提交会完成这份回复。此时 Webhook 会触发,通知邮件会发出,邮件步骤会发送,设置为提交时运行的数据节点会运行,这份回复也会计入您的配额。提交过程中页面会被锁定。如果某个设为保持更新的数据节点仍在等待或运行,提交会先等待它(最多 10 秒)。如果节点的新响应改变了页面,就暂不提交任何内容。当某个列表不再提供受访者选中的选项时,列表会清除该选项并显示“已根据您之前的回答更新。” 当响应使某个问题显示出来时,该问题会出现在页面上。无论哪种情况,页面都会滚动到该问题,受访者检查后再次点击提交。新响应隐藏的问题不会阻止提交:它的回答会被排除,和任何被隐藏的问题一样。
随后,受访者会看到表单的结束页面,以及一个再提交一份回复按钮,点击后会打开一份全新的空白表单。显示的是其回答所能到达的第一个结束页面;在测验模式下,则是其分数或结果所对应的结束页面(参见表单模式)。如果回答无法到达任何结束页面,受访者会看到您的回答已提交。结束页面在提交之前绝不会出现在页面上。开启每位访客限回复一次时,该按钮不会显示。
在构建器预览的设计模式中,预览中的回答所能到达的结束页面会显示在提交按钮下方,您无需提交即可选中并编辑它们。
已提交的回复无法编辑——无论是在确认页面上,还是重新打开链接。如果这份回复已保存到受访者的我的回复页面(参见要求受访者登录),他们仍可以在那里以只读方式查看。
之后再次访问
| 情况 | 受访者看到的内容 |
|---|---|
| 已提交,每位访客限回复一次关闭 | 一份全新的空白表单。 |
| 已提交,每位访客限回复一次开启 | 您已经提交过回复页面——与 NueForm 样式表单显示的相同。 |
| 未提交就离开,允许续填开启 | 提示“从中断处继续?”:继续会恢复其回答,重新开始会丢弃它们。开启自动恢复后,回答会直接恢复,不再询问。 |
| 未提交就离开,允许续填关闭 | 一份全新的空白表单。 |
续填的工作方式与 NueForm 样式表单完全相同——参见创建表单中的“允许续填”一节,以及自定义访客 ID。
步骤的运行方式
在 NueForm 样式表单中,邮件步骤或数据节点会在受访者到达它的那一刻运行。问卷没有这样的时刻——所有问题同时显示在页面上——因此步骤会在固定的时间点运行。
邮件步骤
邮件步骤在受访者点击提交时,每份回复发送一次——并且仅当其可见性条件在提交的回答下成立时才发送。邮件在提交后由我们的服务器发出,受访者无需等待,重访时重新发送也不适用。在构建器中,该步骤会显示提交时发送。它可以使用受访者的回答、设为保持更新的数据节点的响应(随提交一起发送),以及位于它之前、设为提交时运行一次的数据节点的响应。
数据节点
每个数据节点都会获得一个运行时机设置,仅在问卷样式下显示:
| 选项 | 作用 | 适用于 |
|---|---|---|
| 保持更新 | 当其使用的回答发生变化时运行。 | 查询——例如,加载受访者所选动物对应的品种。 |
| 提交时运行一次 | 在提交表单时运行一次。 | 发送数据——例如,在您的 CRM 中创建一条线索。 |
保持更新的详细说明:
- 当其 URL、请求头和请求体使用的每个答案变量(例如
{animal})都有值、它所使用的每个前序数据节点都已返回响应,并且它自身的可见性条件成立时,节点就会运行。这些条件只决定节点是否运行:条件所检查的问题不必已作答。选中其他但未输入任何内容,还不算作答。不使用任何回答的节点会在表单打开时运行。 - 当其中任一回答发生变化时,节点会再次运行。选择类回答在选中时立即触发;文本和数字回答(以及在选择题的其他输入框中输入的文本)则在受访者离开该字段或停止输入 800 毫秒后触发。
- 如果节点无法再运行(它使用的某个回答被清除,或其可见性条件不再成立),它的响应变量也会被清空,这样就不会有任何内容继续使用受访者已撤回的回答。
- 只有最新的请求有效:新请求会取消仍在进行的请求,迟到的结果会被忽略。
- 同一次页面加载中会复用成功的结果:从“猫”切换到“狗”再切回“猫”,只会发出两次请求,而不是三次。
- 每次页面加载,每个数据节点最多允许 20 次请求,复用的结果不计入次数。达到上限后,该节点在本次页面加载中不再发送请求,对于尚未查询过的回答,其响应为空。
- 请求经由 NueForm 的服务器发出:受访者的浏览器永远不会收到节点的 URL、请求头、请求体或连接密钥,只会收到请求所用变量的名称。
提交时运行一次会在受访者点击提交后,在我们的服务器上针对每份回复运行一次。此时表单已经结束,因此任何问题或选项列表都无法使用该节点的响应——如果节点的响应要供问题或选项列表使用,请选择保持更新。不过,提交时运行的步骤可以使用它:位于它之后的邮件步骤和设为提交时运行一次的数据节点,它们会按表单顺序运行。每次提交最多运行 10 个邮件步骤和 10 个设为提交时运行一次的数据节点,超出部分会被跳过。邮件步骤还要遵守网页表单中每个邮件步骤都适用的按访客、按表单和按 IP 的发送限制,参见邮件步骤。
这些步骤还会收到设为保持更新的数据节点的最新响应,这些响应由浏览器随提交一起发送。与回答一样,这些值来自受访者的浏览器,因此不要依赖它们来处理任何不应允许受访者更改的内容。
默认值。 当您向问卷添加数据节点,或将表单切换为问卷样式时,运行时机会自动设定:如果表单中位于其后的某项内容在填写过程中使用了该节点的响应变量(某个问题的标题、描述、选项列表或条件;或本身设为保持更新的其他数据节点),则为保持更新,否则为提交时运行一次。邮件步骤和设为提交时运行一次的数据节点不计入,因为它们在提交时运行,届时该节点的响应本来就会传给它们;已停用、已隐藏或在网页表单中关闭的问题也不计入。刚添加的数据节点还没有响应变量,因此会先设为提交时运行一次:当后面的问题使用它的响应时,请改为保持更新——如果您忘了,构建器会发出警告(见下文)。通过 API 或 MCP 创建且未设置此项的数据节点也按这一规则运行,构建器会将该选项显示为已选中。
会更改数据的请求。 如果您为 POST、PUT、PATCH 或 DELETE 请求选择了保持更新,构建器会显示警告:此请求每次运行都可能创建或更改数据。如果它是发送数据而不是查询,请选择“提交时运行一次”。 这只是提示——由您决定。
填写过程中需要的响应。 如果某个节点设为提交时运行一次,但后面的问题或列表在填写过程中使用了它的响应,构建器会警告:表单后面的问题或列表会在填写过程中使用此节点的响应,但该节点仅在提交时运行,因此那里的响应将为空。请改选“保持更新”。
仅 NueForm 样式使用的设置。 问卷会在后台或在回复完成后运行数据节点,因此在问卷样式中,构建器会隐藏节点的静默模式、调试模式、用作验证和加载文本,并显示以下提示:“静默模式”“调试模式”“用作验证”和“加载文本”仅适用于 NueForm 样式。在问卷样式中,请求失败绝不会阻止提交。 请求的超时设置仍然有效。隐藏的设置会保留原值,因此把表单切回 NueForm 样式后,这些设置会恢复。如果某个回答必须通过您自己系统中的检查,请在处理回复时进行检查。
构建器中的标记
构建器中每个步骤的卡片都会显示它何时运行:
| 标记 | 含义 |
|---|---|
| 回答后运行:(后接问题名称) | 保持更新——在这些问题得到回答后运行,并在回答变化时再次运行。 |
| 表单打开时运行 | 保持更新,适用于不使用任何回答的节点。 |
| 提交时运行 | 提交时运行一次。 |
| 提交时发送 | 邮件步骤。 |
电话通话
NueVoice 电话通话不受影响。通话仍然一次问一个问题,邮件步骤和数据节点会在通话到达它们时按表单顺序运行。运行时机仅适用于网页表单。
示例:根据所选动物显示品种
- 添加一个多选问题“哪种动物?”,选项为 猫 和 狗,并将其答案变量名称设为
animal。 - 添加一个调用
https://api.example.com/breeds?animal={animal}的数据节点,将其响应变量设为breeds,并将运行时机设为保持更新。它的卡片会显示回答后运行:,后面是动物问题。 - 添加一个下拉菜单“最喜欢的品种”,将选项来源设为来自变量并输入
{breeds}——参见选择题类型中的“来自变量的选项”一节。 - 添加一个感谢受访者的邮件步骤。它会在受访者点击提交时发送。
当受访者选择 猫 时,下拉菜单会先显示正在加载选项…,然后显示猫的品种。切换到 狗 后会加载狗的品种;如果之前选中的品种不再提供,它会被清除,并显示提示“已根据您之前的回答更新。”切回 猫 时会复用第一次的结果。
变量中的选择题答案
在上面的示例中,{animal} 保存的是受访者所选选项的标签(猫,而不是选项的 ID),与 NueForm 样式完全相同。在已翻译的表单中,标签使用受访者填写表单时所用的语言:对于用英语作答的人,{animal} 的值是 Cat,因此品种请求会以 animal=Cat 发出,使用 {animal} 的邮件步骤和文本得到的也是 Cat。如果只想在选中某个选项时显示问题或运行步骤,请把条件设在问题本身上(哪种动物? 为 猫):它比较的是选项本身,与语言无关。将变量与某个标签进行比较的条件(animal 等于 猫)在受访者用其他语言作答时将不再匹配。对于从变量加载的列表,变量保存的是条目加载时的标签,不会被翻译。