集成检查参考
在提交集成以供发布之前,它会经过一系列自动检查,以确保其正常运行,并为我们的用户(以及您的用户)提供最佳体验。
要发布您的集成,所有错误和发布任务必须通过验证。警告是非阻塞性的,不强制要求处理,因为它们不会阻止您推广版本,但我们强烈建议您审阅这些警告,以提升集成的可用性。
如果您的集成保持私有状态,则无需通过验证检查。您可以按原样与用户共享它。不过,您仍可以在平台 UI 的“版本概述”选项卡中选择“运行验证”,或使用平台 CLI 中的 zapier validate
命令,以获取任何问题和改进用户体验的建议。
为便于在通信中更好地处理检查,每一个检查都分配了一个唯一 ID,由一个大写字母和三位数字组成,例如 D001
。
您无需了解首字母的大写含义,但如果好奇,它们分别是:
类别 | 描述 |
---|---|
已连接账户 | 与您的集成相关的已连接账户。我们会验证这些账户,以确保身份验证正常工作。 |
兼容性 | 仅适用于公共集成,这些检查会验证新版本与当前公共版本的向后兼容性。它们会检查问题,如“此更改是否会破坏现有的 Zap、Zap 模板或已连接账户?” |
定义 | 集成的定义,包括身份验证和触发器/搜索/操作配置。其中一些检查可能阻止您保存或推送,因为违规会导致触发器/搜索/操作无法正常工作。 |
环境变量 | 集成环境变量可能会影响集成版本的运行时行为。这些检查可能在执行操作(如迁移或推广)前提示您确认。 |
生命周期 | 集成或其版本的生命周期状态,例如可见性(私有、待审或公共)以及版本状态(已弃用、非生产或生产)。 |
营销 | 面向公众的信息,例如应用标题、描述和徽标。这些规则旨在为 Zapier 用户提供一致的文本和图像样式,更可能阻止您转为公共状态。 |
统计数据 | 使用统计数据,例如您的集成拥有的用户数。这些更可能阻止您转为公共状态。 |
T - Zap 历史 | 来自 Zap 历史中运行的数据,由实时(已启用)Zap 生成。这些更可能阻止您转为公共状态。“T”检查的命名是历史原因。Zapier 现在在 Zap 历史中显示任务。 |
用户 | 与开发者(您)的账户相关的事项,例如服务条款的接受。 |
Zap | 与 Zap 相关的事项,例如您拉入 Zap 编辑器的触发器样本。 |
运行检查时,我们会提供一个简短摘要,概述违规情况(包括检查 ID),并附带链接指向此页面。这将作为完整参考,解释每个错误并提供示例。
A001 - 已存在已连接账户
为了确保您已测试身份验证,我们要求您至少设置一个已连接账户。
C001 - 尽量避免隐藏或移除公共触发器/搜索/创建操作
在推广过程中,我们会比较您当前公共版本与即将转为公共版本的功能。
如果您在新版本中隐藏或移除一个触发器,使用的 Zap 模板会变得无效。请尽量避免这种情况。搜索和创建操作也同样适用。
C002 - 尽量避免移除输入字段
在推广过程中,我们会比较您当前公共版本与即将转为公共版本的功能。
如果您更改或移除 input_field
的 key
属性,使用的 Zap 模板会变得无效。请尽量避免这种情况。
C003 - 尽量避免移除样本数据
在推广过程中,我们会比较您当前公共版本与即将转为公共版本的功能。
如果您更改或移除 sample
中的项目 key
属性,使用的 Zap 模板会变得无效。请尽量避免这种情况。
D001 - 输入字段应避免包含敏感信息
输入字段用于收集用户提供的值。它们不得包含敏感凭据,例如 API 密钥、令牌、机密或密码。
敏感值应在身份验证中集中使用,因为输入字段通常不会像身份验证字段那样获得相同级别的安全处理(例如,从日志中清除),并且无法针对操作字段测试身份验证的有效性。因此,与身份验证相关的内容应放在身份验证字段中。
D002 - 在帮助文本中为身份验证字段提供链接
用户通常不清楚在哪里找到服务的 API 凭据。如果您使用粘贴式 API 密钥作为身份验证方法,我们强烈建议您链接到包含密钥的页面(或相关帮助文档)。
不正确实现的示例:
API key is found on the "API Details" page in settings
正确实现的示例:
Go to the [API Details](https://my.site.com/manage/api-details) screen from your Website Dashboard to find your API Key.
D003 - 连接标签应有效
连接标签有助于客户记住他们连接的账户。它应简短、易识别,且不得包含敏感凭据,例如 API 密钥、令牌、机密或密码。
在平台 UI和CLI中,连接标签是一个字符串。您可以使用测试函数返回的任何数据,但绝不能使用敏感字段。
例如,如果身份验证测试成功运行返回以下数据:
{
"name": "Malcom Reynolds",
"email": "youcanttaketheskyfromme@serenity.com",
"job": "Captain"
}
您的连接标签可以是:
{{name}} - {{email}}
连接标签的最重要作用是唯一标识连接。
不正确连接标签的示例:
"Slack"
"api_key"
"My token is: 12345"
"{{token}}"
"{{api_key}}"
"{{password}}"
"user token"
正确连接标签的示例:
{{user}} @ {{team}}
{{name}} - {{email}}
{{username}}
{{user}} ({{email}})
D004 - ID 字段应配备动态下拉菜单
我们发现,与指导用户粘贴项目 id
到 Zapier 相比,提供动态下拉菜单 会大大提高用户正确设置 Zap 的可能性。用户仍然可以映射自定义字段,但这能让他们从正确起点开始。
了解更多关于实现动态下拉菜单的信息:
D005 - 动态下拉菜单连接到不存在的触发器
动态下拉菜单 允许您将输入字段连接到现有触发器。如果您指定的触发器键不存在,下拉菜单将无法工作。
D006 - REST Hook 触发器需要轮询 URL
当用户设置基于 Hook(即即时)触发器时,拥有一个轮询后备非常重要。例如,假设一个 Zap 触发于新 Slack 消息。如果测试依赖于发送 Webhook,则在用户发送实际消息之前,测试无法完成,这会造成干扰。
相反,在测试期间,Perform List(performList
)操作会使用提供的轮询 URL 获取一个(真实的)最近消息,并将其用作测试结果。REST Hook 触发器中的轮询 URL 仅用于 Zap 设置过程中的测试。
至关重要的是,Webhooks 和轮询返回的对象结构必须相同。通常,这意味着需要修改轮询结果,使其看起来像 Hook。如果轮询结果中有 Hook 没有的字段,用户可能会在后续步骤中映射这些字段,但当 Zap 实时运行时,这些值将为空。这可能导致错误或意外结果。
以下是一个示例。假设我们有一个“新联系人”REST Hook 触发器。当新联系人创建时,Zapier 会收到如下 Webhook:
{
"id": 1,
"firstName": "Bruce",
"lastName": "Wayne",
"job": "Batman"
}
相应的轮询 URL 可能如 https://site.com/contacts/list
,并返回:
{
"results": [
{
"id": 1,
"firstName": "Bruce",
"lastName": "Wayne",
"job": "Batman",
"friends": [2, 3, 4]
},
{
"id": 2,
"firstName": "Alfred",
"lastName": "Pennyworth",
"job": "Butler",
"friends": [1, 3]
}
]
}
为了使轮询结果匹配 Hook 结果,您需要修改响应,移除 friends
信息,并仅返回联系人数组,而非外层对象。
轮询结果仅在用户测试 Zap 步骤时使用。如果用户跳过测试,Zapier 会使用样本数据。
有关更多细节,请参阅样本数据。
D007 - 所有 URL 应使用 HTTPS
在处理客户数据时(Zapier 的所有功能都涉及),我们强烈建议所有通信都采用安全方式。使用 SSL 是其中重要部分,因此请确保您的 URL 使用 HTTPS 协议。
如果需要帮助设置 SSL 证书,我们建议使用Let's Encrypt。
不正确设置的示例:
http://example.com/messages/subscribe
正确实现的示例:
https://example.com/messages/subscribe
D008 - 无效的 Markdown 链接
有效的 Markdown 链接由一对方括号(包含链接文本)和一对括号(包含链接本身)组成。更多信息,请参阅Markdown 备忘单。
如果您想显示完整链接而不实际链接到它,请使用反引号。这会让用户清楚地知道他们不需要点击链接,它只是用作示例。任何纯文本链接都需要是正确的链接或用反引号括起。
不正确实现的示例:
See [Google(https://google.com)
See https://google.com
正确实现的示例:
See [Google](https://google.com)
See `https://google.com`
如果出现此错误,请检查触发器/操作/搜索的描述以及任何字段的帮助文本中是否有不良链接。
D009 - 搜索操作需要至少一个搜索字段
在创建搜索步骤时,拥有一个搜索字段非常重要。常见的用户搜索示例包括按名称、电子邮件或用户名搜索。
D010 - 静态样本数据中缺少主键字段
对于轮询触发器,重复数据删除器使用主键字段来判断是否已见过该对象。您可以定义一个或多个输出字段作为主键。每个字段可以是字符串或数字,但主键必须唯一。如果未设置任何字段为 primary
,重复数据删除器将默认使用 id
字段作为主键。
Hook 不进行重复数据删除,因此不需要主键。
此检查确保您的集成定义中的静态样本包含主键字段。它类似于 T002
。不同的是,T002
验证 Zap 历史中的实时轮询结果。
不正确实现的示例:
{
// 默认使用 `id` 字段作为主键,因此样本应包含 `id` 字段。
"sample": {
"contact_id": 4,
"contact_name": "David"
}
}
{
// `contact_id` 设置为 `primary`,但样本中缺少它
"sample": {
"id": 4,
"contact_name": "David"
},
"outputFields": [
{ "key": "contact_id", "primary": true },
{ "key": "contact_name" }
]
}
正确实现的示例:
{
"sample": {
"id": 4,
"contact_name": "David"
}
}
{
// 此示例将 `contact_id` 定义为唯一主键。
"sample": {
"contact_id": 4,
"contact_name": "David"
},
"outputFields": [
{ "key": "contact_id", "primary": true },
{ "key": "contact_name" }
]
}
{
// 如果多个字段共同唯一,可以将它们设置为 `primary`。
"sample": {
"repo": "zapier/zapier-platform",
"number": 1234,
"title": "Add this feature please"
},
"outputFields": [
{ "key": "repo", "primary": true },
{ "key": "number", "primary": true },
{ "key": "title" }
]
}
D011 - 冗余帮助文本
帮助文本是可选的,用于提供非显而易见的情報或链接。如果标签和帮助文本相同,则被视为冗余。
不正确实现的示例:
{
"label": "Subdomain",
"help_text": "subdomain"
}
正确实现的示例:
{
"label": "Subdomain",
"help_text": "Where you (and your users) can access your forms, e.g., https://<SUBDOMAIN>.typeform.com"
}
D012 - 静态样本是必需的
当用户设置触发器或操作时,需要返回样本数据,以便在后续步骤中可用字段。如果测试触发器未返回实时结果,我们会使用静态样本数据作为后备。
静态样本数据和实际触发器/操作请求的响应结构必须相同。否则,用户可能会映射不存在于实时结果中的字段,从而导致 Zap 故障。
有关更多细节,请参阅样本数据。
D013 - 连接到不存在的搜索
搜索驱动字段 会提示用户设置搜索步骤来填充字段值。如果您指定的搜索键不存在,它将无法工作。
D014 - 存在搜索连接器但缺少动态下拉菜单
默认情况下,要在 Zap 编辑器中为用户显示“添加搜索步骤”按钮,操作需要同时具有搜索连接器和(有效的)动态下拉菜单。如果无法提供有效下拉菜单,可以改为指向一个始终返回空数组的虚拟触发器。
不正确设置的示例:
{
"key": "update_thing",
"search": "thing.id"
}
正确实现的示例:
{
"key": "update_thing",
"search": "thing.id",
"dynamic": "things.id.name"
}
D015 - 搜索或创建连接到不存在的操作/搜索
在 searchOrCreates
中指定的搜索或创建键必须引用现有的搜索或操作。否则,它将无法工作。
D016 - 仅包含静态 Webhook
缺少 Subscribe 或 Unsubscribe 端点的 REST Hook 触发器,会向用户显示为静态 Webhook。静态 Hook 不支持公共集成,但如果集成意图保持私有,可以使用。然而,Zapier 不允许仅包含单个静态 Hook 的集成,因为有Zapier 的 Webhook。要修复此问题,请添加更多触发器/搜索/操作。
D017 - 不推荐使用静态 Hook
缺少 Subscribe 或 Unsubscribe 端点的 REST Hook 触发器,会向用户显示为静态 Webhook。由于静态 Webhook 需要用户手动设置,我们不再支持在公共集成中添加新静态 Webhook 触发器。请为该触发器设置 Subscribe 和 Unsubscribe 请求,或改用轮询触发器类型。
D018 - 标签应使用标题大小写
为了在触发器/操作/搜索标签中保持一致样式,它们必须采用标题大小写。如果未通过此检查,我们会显示通过版本的标签。
不正确实现的示例:
new contact
正确实现的示例:
New Contact
D021 - 触发器描述要求
触发器描述必须以 Triggers when
开头,并以 .
结尾。
不正确实现的示例:
Whenever there's a new contact, this goes?
Triggers whenever there's a new contact.
正确实现的示例:
Triggers when there's a new contact.
D022 - 创建操作应尽量包含静态输入字段
在制作 Zap 模板时,拥有通用于所有用户的输入字段非常有帮助。没有这些字段,创建模板会很困难。如果可能,请添加一些所有用户都能使用的静态输入字段。
D023 - 静态样本中使用 ISO-8601 日期/时间格式
为了确保 Zapier 能正确解析日期和时间,您应始终使用 ISO-8601 格式表示日期或时间。如果包含时间,应包括时区信息。
此检查类似于 T003
。此检查验证集成定义中的静态样本,而 T003
验证 Zap 历史中的实时结果。
不正确实现的示例:
01 Aug 2023
01 Aug 2023 06:50:30
2023-08-01T06:50:30
正确实现的示例:
2023-08-01
2023-08-01T06:50:30-0500
2023-09-15T09:59:59Z
D024 - 静态样本符合输出字段定义
如果您为触发器/操作/搜索定义了输出字段,它们应与静态样本数据一致。具体检查包括:
- “required” 字段必须在样本中
- 样本中的字段值必须匹配其字段类型
不正确实现的示例:
static sample: {"id": "1"}
output fields: [
{"key": "id", "type": "integer"},
{"key": "email", "type": "string", "required": true}
]
正确实现的示例:
static sample: {"id": 1, "email": "john@example.com"}
output fields: [
{"key": "id", "type": "integer"},
{"key": "email", "type": "string", "required": true}
]
D025 - URL 应避免危险 URI
为了帮助防止针对 Zapier 客户的反射型跨站脚本 (XSS) 攻击,我们要求应用定义中的 URL 不匹配可能用于运行恶意代码的危险 URI 模式。
更多关于 XSS 的信息,请参阅OWASP 备忘单。
不正确设置的示例:
javascript:alert('XSS');//
正确实现的示例:
https://example.com
D026 - 如果使用 “inputFormat” 或与域相关的身份验证字段,推荐手动域验证
当使用允许用户输入其 own 域或子域的身份验证字段时,我们强烈推荐进行手动验证,以确保输入数据符合您的预期,并过滤掉可能用于重定向到意外域的值。
不正确实现的示例:
// 未进行子域验证,信任用户输入
const response = await z.request({
url: `https://${bundle.authData.yourSubdomainField}.mydomain.com/oauth/token`,
// ...
})
正确实现的示例:
// 手动验证步骤,确保子域符合要求
if (!/^[a-z0-9-]+$/.test(bundle.authData.yourSubdomainField)) {
throw new Error(
"Subdomain can only contain letters, numbers and dashes (-)."
);
}
const response = await z.request({
url: `https://${bundle.authData.yourSubdomainField}.mydomain.com/oauth/token`,
// ...
})
E001 - 环境变量在版本之间已更改
在推广或迁移期间,请确认任何环境变量更改是否 intentional,并不会导致运行时问题。请记住,一个集成版本中的环境变量更改不会影响同一集成的其他版本。
L001 - 版本已弃用
您无法推广已弃用的版本。
L002 - 版本已提交
您无法重新提交已提交的版本。如果您的集成被退回并希望重新提交审核,应在新版本中进行更改并提交该版本。
L003 - 版本已是生产版本
这可能发生在您尝试推广已处于生产状态的版本时。
L004 - 来自合作伙伴的更改被阻塞
当 Zapier 团队向合作伙伴拥有的集成推送更改时,这是必要的。合作伙伴需要通过 partners@zapier.com 与 Zapier 团队协调,以解除后续更改的限制。
M001 - 应用类别是必需的
为了正确分类您的集成在 Zapier 上,请选择最适合您应用的类别。您可以在集成设置页面中指定类别。
M002 - 描述无效
您的应用的描述应介绍您的应用,而不是我们的!即使我们非常喜欢您的应用,您也不得在描述中提及“Zapier”。我们期望看到您的应用名称后跟“is a”来开始描述。
此外,不鼓励讨论此集成将“同步”任何内容,因为该空间应专注于您的应用本身,而不是 Zapier 集成。
最后,此部分应简洁明了。简短描述(大约推文大小)最佳。具体来说,我们希望 1-3 句,或至少 40 字符且最多 140 字符。
不正确设置的示例:
Google Translate enables Zapier users to translate text from one language into another.
正确实现的示例:
Google Translate is a service that translates text from one language into another.
M003 - 角色必须是雇员或承包商
为了让您的集成转为公共状态,您必须是使用该集成中应用的公司的雇员或受雇者。请转到集成设置页面选择您的角色。
M004 - 无效徽标
您的应用的徽标将在网站上各种大小和方形容器中使用。为了确保它在所有大小下看起来良好,徽标图像必须是:
- 方形 PNG 图像
- 至少 256px x 256px 大小
- 以 RGBA 模式,以便具有透明背景
要调整图像大小或转换为 PNG,可以使用此工具。
M005 - 管理员团队成员电子邮件域匹配应用域
为了确保此集成由应用所有者提交,我们要求项目中列出的管理员团队成员之一拥有与应用主页 URL 相同域的电子邮件地址(主页 URL 也必须存在)。您可以在 https://developer.zapier.com/app/APP_ID/version/APP_VERSION/settings
添加主页 URL。具有相同域的协作者团队成员不满足此要求。
M006 - 主页 URL 必须存在
每个应用必须有主页 URL。您可以在 https://developer.zapier.com/app/APP_ID/version/APP_VERSION/settings
添加主页 URL。
M007 - 已存在公共集成
我们仅允许一个给定应用的公共集成在我们的应用目录中。如果具有相同标题的公共集成已存在,我们不会批准您的提交转为公共状态。如果您是现有公共集成的所有者,请创建更新版本并推广该版本,而不是提交新集成。
S001 - 至少 3 名用户使用实时 Zap
为了验证用户需求,应该有至少 3 名用户使用此集成,且有实时 Zap。“实时”表示 Zap 已启用,且最近历史中有至少一个成功Zap 运行。
您可以在发布前邀请他人测试您的集成。
S002 - 每个触发器/搜索/操作至少有一个实时 Zap
为了确保任何关键错误已解决,您的集成的每个可见触发器/搜索/操作应有一个实时 Zap 来证明其工作。“实时”表示 Zap 已启用,且最近历史中有至少一个成功Zap 运行。
如果需要额外 Zap,您可以创建新 Zapier 账户并邀请它到您的集成。
您也可以联系我们,如果需要试用期延长。
S003 - 实时版本数量限制
您不能有超过 25 个之前或当前生产版本使用实时 Zap。要继续,请将较旧版本的用户迁移到新版本。
T001 - 每个触发器/搜索/操作至少有一个成功 Zap 运行
每个可见触发器/操作/搜索必须有至少一个成功 Zap 运行。
为了确保您已对每个可见触发器/操作/搜索进行实时测试,请为每个创建 Zap、启用它并触发一个 Zap 运行。
此检查使用集成管理员账户的Zap 历史进行,因此请在这些账户中构建测试 Zap。
更多关于 Zap 历史的信息,请参阅此处。
T002 - 实时轮询结果中缺少主键字段
对于轮询触发器,重复数据删除器使用主键字段来判断是否已见过该对象。您可以定义一个或多个输出字段作为主键。每个字段可以是字符串或数字,但主键必须唯一。如果未设置任何字段为 primary
,重复数据删除器将默认使用 id
字段作为主键。
Hook 不进行重复数据删除,因此不需要主键。
此检查确保Zap 历史中的实时轮询结果包含主键字段。它类似于 D010
。不同的是,D010
验证集成定义中的静态样本。
此检查使用集成管理员账户的Zap 历史进行,因此请在这些账户中构建测试 Zap。
不正确实现的示例:
{
// 默认使用 `id` 字段作为主键,因此样本应包含 `id` 字段。
// 注意,`<live_polling_result>` 表示 Zap 历史中的轮询结果,不是集成定义中的实际键。
"<live_polling_result>": {
"contact_id": 4,
"contact_name": "David"
}
}
{
// `contact_id` 设置为 `primary`,但结果中缺少它
"<live_polling_result>": {
"id": 4,
"contact_name": "David"
},
"outputFields": [
{ "key": "contact_id", "primary": true },
{ "key": "contact_name" }
]
}
正确实现的示例:
{
"<live_result_result>": {
"id": 4,
"contact_name": "David"
}
}
{
// 此示例将 `contact_id` 定义为唯一主键。
"<live_polling_result>": {
"contact_id": 4,
"contact_name": "David"
},
"outputFields": [
{ "key": "contact_id", "primary": true },
{ "key": "contact_name" }
]
}
{
// 如果多个字段共同唯一,可以将它们设置为 `primary`。
"<live_polling_result>": {
"repo": "zapier/zapier-platform",
"number": 1234,
"title": "Add this feature please"
},
"outputFields": [
{ "key": "repo", "primary": true },
{ "key": "number", "primary": true },
{ "key": "title" }
]
}
T003 - Zap 历史中使用 ISO-8601 日期/时间格式
为了确保 Zapier 能正确解析日期和时间,您应始终使用 ISO-8601 格式表示日期或时间。如果包含时间,应包括时区信息。
此检查类似于 D023
。此检查验证Zap 历史中的数据,而 D023
验证集成定义中的静态样本。
此检查使用集成管理员账户的Zap 历史进行,因此请在这些账户中构建测试 Zap。
不正确实现的示例:
01 Aug 2023
01 Aug 2023 06:50:30
2023-08-01T06:50:30
正确实现的示例:
2023-08-01
2023-08-01T06:50:30-0500
2023-09-15T09:59:59Z
T004 - 静态样本包含实时结果的键子集
静态样本为 Zapier 用户和合作伙伴提供了一种在不实际请求 API 的情况下预览和映射字段的方式。静态样本必须反映Zap 历史中这些调用的真实结果。如果 Zap 使用静态样本中的字段,而这些字段在实时运行时不存在,会导致错误。
此检查要求每个触发器/操作/搜索的静态样本包含Zap 历史中最新运行的键子集。
此检查使用集成管理员账户的Zap 历史进行,因此请在这些账户中构建测试 Zap。
不正确实现的示例:
static: {"id": 1, "email": "john@example.com"}
live: {"id": 2, "name": "Alice"}
正确实现的示例:
static: {"id": 1, "name": "John"}
live: {"id": 2, "name": "Alice", "email": "alice@example.com"}
有关更多细节,请参阅样本数据。
T005 - 实时触发器结果符合输出字段定义
此检查使用Zap 历史中最新运行,验证触发器结果是否符合集成中触发器的输出字段(如果定义)。具体检查包括:
- “required” 字段必须在触发器结果中
- 触发器结果中的字段值必须匹配其字段类型
此检查使用集成管理员账户的Zap 历史进行,因此请在这些账户中构建测试 Zap。
不正确实现的示例:
live result: {"id": "1"}
output fields: [
{"key": "id", "type": "integer"},
{"key": "email", "type": "string", "required": true}
]
正确实现的示例:
live result: {"id": 1, "email": "john@example.com"}
output fields: [
{"key": "id", "type": "integer"},
{"key": "email", "type": "string", "required": true}
]
有关更多细节,请参阅样本数据。
T006 - 轮询样本包含实时结果的键子集
对于 REST Hook 触发器,我们要求提供 Perform List
URL(见 D006
),以让用户在 Zap 编辑器中获取实时样本。这称为轮询样本,在测试触发器前创建。
如果 Zap 使用轮询样本中的字段,而这些字段在 Hook 有效负载中不存在,会导致错误。
为此,此检查比较相应 Zap 中选定的轮询样本与Zap 历史中的最新项。要通过:
- 必须有一个使用该触发器的 Zap。
- 该 Zap 必须有至少一个 Zap 运行(使用最近运行)。
- 触发器必须通过 Perform List 方法在 Zap 编辑器中测试以获取轮询样本。
- 轮询样本应具有与 Zap 运行数据相同的键,或键的子集。
此检查使用集成管理员账户的Zap 历史进行,因此请在这些账户中构建测试 Zap。
不正确实现的示例:
polling sample: {"id": 1, "email": "john@example.com"}
live: {"id": 2, "name": "Alice"}
正确实现的示例:
polling sample: {"id": 1, "name": "John"}
live: {"id": 2, "name": "Alice", "email": "alice@example.com"}
有关更多细节,请参阅样本数据。
U001 - 开发者服务条款
您必须同意最新的开发者服务条款才能继续。请转到开发者主页同意。
Z001 - 轮询样本符合输出字段定义
对于 REST Hook 触发器,我们要求提供 Perform List
URL(见 D006
),以让用户在 Zap 编辑器中获取实时样本。这称为轮询样本。
此检查使用 Zap 中最新轮询样本,验证样本是否符合集成中触发器的输出字段(如果定义)。具体检查包括:
- “required” 字段必须在轮询样本中
- 轮询样本中的字段值必须匹配其字段类型
此检查使用集成管理员账户的 Zap 进行,因此请在这些账户中构建测试 Zap。
不正确实现的示例:
polling sample: {"id": "1"}
output fields: [
{"key": "id", "type": "integer"},
{"key": "email", "type": "string", "required": true}
]
正确实现的示例:
polling sample: {"id": 1, "email": "john@example.com"}
output fields: [
{"key": "id", "type": "integer"},
{"key": "email", "type": "string", "required": true}
]
需要帮助?告诉我们您的问题,我们会连接您到正确的资源或支持。