使用 Webhook 触发器自动化 Transept
通常情况下,工作流在你点击“运行”时执行。Webhook 触发器则将其替换为一个 URL:只要将任何支持发送 HTTP 请求的系统指向该 URL,工作流就会自动运行。
本页内容
如何将工作流切换为 Webhook 触发器?
在构建器中打开一个已保存的工作流,查看顶部的触发器卡片——即显示为“你手动运行”的那个部分。这是一个切换开关。手动是默认选项:由你亲自点击“运行”。Webhook 则会为工作流分配一个私有 URL,外部系统向其发送 POST 请求,运行便会自动启动。触发器必须属于已保存的工作流,因此请先保存工作流——在未保存的草稿中,Webhook 选项将处于禁用状态。
如何获取和轮换 Webhook URL?
将卡片切换为 Webhook,设置触发运行的对象(见下文),然后保存。Transept 会为该工作流生成一个私有 URL,且仅显示一次——请务必及时复制,因为系统仅存储哈希值,完整的 URL 无法再次显示。密钥直接包含在 URL 中,而不是放在请求头里,因为最简单的发送工具无法设置请求头;因此,请像对待密码一样保护该 URL——任何拥有它的人都可以启动运行。
稍后重新打开卡片,你会看到一个掩码前缀(whk_live_…)代替了完整 URL,此外还有一个轮换操作。一旦确认,轮换操作会生成一个新 URL 并立即废止旧 URL,这正是处理泄露链接的方法。你也可以在不删除触发器的情况下将其关闭,或者直接移除。卡片还会显示最近一次触发的时间。
通过 Notion 数据库自动化触发
Notion 数据库自动化可以通过其发送 Webhook 操作来调用触发器:只需将该操作指向触发器 URL,每当自动化运行时,Transept 就会对触发该自动化的页面执行工作流。在正式使用之前,有两点需要了解。
首先,Notion 自动化是由属性变更(或新建页面)触发的,而非仅靠编辑正文——因此,单纯修改页面文本可能不会触发任何操作。比较稳妥的做法是设置一个供自动化监控的状态属性:只需切换该属性(例如,改为“准备翻译”),这一变更就是触发信号。
其次,Notion Webhook 仅指明页面,并不携带页面内容。因此,Transept 需要通过您的 Notion 连接来读取页面,而该连接必须在 Notion 内部获得该数据库的访问授权。这两个步骤(连接 Notion,然后将数据库共享给该集成)在 通过 API 实现 Transept 自动化 的“Notion 触发器:授予 Transept 访问权限”章节中有详细说明。只要漏掉其中任何一步,每次触发都会因访问错误而被拒绝。
如何通过 Zapier、n8n 或脚本触发?
任何能够发送 HTTP POST 请求的工具都可以触发该触发器——无论是 Zapier 或 n8n 的步骤、CI 任务,还是构建结束时的 curl 命令。对于固定文档目标,请求体并不重要,因此发送一个空的 POST 请求即可;只有 Notion 页面目标会读取请求体,以识别发生变化的页面。无需 Authorization 请求头——整个 URL 便是密钥。
触发后会发生什么
默认情况下,触发操作会在所有语言版本中运行工作流。而且,在开启“仅更新的内容”时,系统仅会重新翻译自上次运行以来原文发生变化的块,因此微小的修改只需消耗少数几个块的额度,而非整个文档。通过这种方式启动的运行,其字数计费方式与应用内编辑器完全相同;如果余额不足以支付本次运行,则不会执行任何任务,也不会产生费用。
设置为等待您的审核的步骤依然会停驻:触发操作会将翻译执行到该节点并保持等待,随后该语言会出现在编辑器的“待审核”面板中供您批准——自动化不会跳过您的审核环节。此外,当无法读取 Notion 页面目标时(通常是因为数据库未与集成共享),触发器卡片会以“无法读取 Notion 页面”备注的形式显示最近一次失败记录,并附带时间戳,以便您了解触发操作未生效的原因。
Webhook 能否直接携带内容?
可以。将触发器的目标设置为“请求体即内容”,您通过 POST 发送到该 URL 的任何内容都会直接转换为文档:可以是原始 Markdown、HTML 或纯文本(请发送相应的 Content-Type),也可以是类似 {"content": "…", "content_type": "markdown"} 的 JSON。您可以针对每个触发器选择:每次交付是创建新文档,还是更新一个固定文档——更新操作会重新对齐内容,因此只有发生变化的块会重新翻译。这样,邮件平台、Zapier/n8n 步骤或任何脚本都能将模板或文章直接推送至翻译工作流,无需手动上传。重试的交付内容在 24 小时内会自动去重;在 JSON 中包含 external_id(即您的消息 ID)可实现精确控制。请求体最大支持 10 MB。
仍有疑问?在应用内询问 Literess,或发送邮件至 [email protected]。