浏览帮助中心

使用 Webhook 触发器自动化 Transept

由 Vitalii Vlasiuk 维护联合创始人

通常情况下,工作流在你点击“运行”时执行。Webhook 触发器则将其替换为一个 URL:只要将任何支持发送 HTTP 请求的系统指向该 URL,工作流就会自动运行。

本页内容

如何将工作流切换为 Webhook 触发器?

在构建器中打开已保存的工作流,查看顶部的触发器卡片——即显示为“手动运行”的那个。这是一个切换开关。手动是默认设置:由您亲自点击“运行”。Webhook 会为工作流分配一个私有 URL,外部系统向其发送 POST 请求即可自动启动运行。触发器属于已保存的工作流,因此请先保存工作流——在未保存的草稿中,Webhook 选项将保持禁用状态。Webhook 触发器包含在 Starter 和 Pro 套餐中:在 Free 套餐中,Webhook 选项不可用,对话框会转而显示查看套餐。降级到 Free 套餐之前创建的触发器仍会保持可见,方便您将其移除,但在重新订阅 Starter 或 Pro 套餐之前,它将停止触发。

触发器卡片:手动或 Webhook。

如何获取和轮换 Webhook URL?

将卡片切换为 Webhook,设置触发运行的对象(见下文),然后保存。Transept 会为该工作流生成一个私有 URL,且仅显示一次——请务必及时复制,因为系统仅存储哈希值,完整的 URL 无法再次显示。密钥直接包含在 URL 中,而不是放在请求头里,因为最简单的发送工具无法设置请求头;因此,请像对待密码一样保护该 URL——任何拥有它的人都可以启动运行。

稍后重新打开卡片,你会看到一个掩码前缀(whk_live_…)代替了完整 URL,此外还有一个轮换操作。一旦确认,轮换操作会生成一个新 URL 并立即废止旧 URL,这正是处理泄露链接的方法。你也可以在不删除触发器的情况下将其关闭,或者直接移除。卡片还会显示最近一次触发的时间。

运行中的触发器——掩码 URL、轮换操作、最近触发记录。

触发运行的对象

有两个设置项决定了当 URL 被请求时,工作流会处理哪些内容:

  • 目标 —— 可以是你指定的固定文档(每次触发都会作用于该文档及其语言组),也可以是传入负载中指定的 Notion 页面(Transept 会将其与你的文档进行匹配,并在首次识别时导入该页面)。
  • 语言 —— 所有语言版本(默认选项;运行将覆盖目标文档的所有语言,即组运行),或者仅该文档。
  • 仅限更新内容 —— 默认开启,因为自动化运行应当仅重新处理自上次运行以来的变更,而不是在每次触发时都重新翻译整个文档。请参阅仅运行已更改的内容。

通过 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)可实现精确控制。请求体最大支持 25 MB。

负载模式:请求体成为文档。
探索功能✦

仍有疑问?在应用内询问 Literess,或发送邮件至 [email protected]。