浏览帮助中心

使用 Webhook 触发器实现 Transept 自动化

Vitalii Vlasiuk 维护Co-founder

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

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

在构建器中打开已保存的工作流,查看顶部的触发器卡片——即显示为 由您手动运行 的那个。这是一个切换开关。手动是默认设置:由您亲自点击“运行”。Webhook 会为工作流分配一个私有 URL,外部系统向其发送 POST 请求即可自动启动运行。触发器属于已保存的工作流,因此请先保存工作流——在未保存的草稿中,Webhook 选项将保持禁用状态。

触发器卡片,已设置为 Webhook。

如何获取和轮换 Webhook URL?

将卡片切换为 Webhook,设置触发运行的对象(见下文),然后保存。Transept 会为该 Workflow 生成一个私有 URL,且仅显示 一次 —— 请务必即刻复制,因为系统仅存储哈希值,完整 URL 无法再次显示。密钥存在于 URL ,而非请求头内,因为最简单的发送端可能无法设置请求头;因此,请像对待密码一样保护该 URL —— 任何拥有它的人都可以启动运行。

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

触发运行的对象

以下两项设置决定了触发 URL 时工作流的处理对象:

  • 目标——您指定的固定文档(每次触发都会作用于该文档及其语言组),或者是传入数据中指定的 Notion 页面(Transept 会将其与您的文档进行匹配,并在首次识别该页面时进行导入)。
  • 语言——所有语言版本(默认设置;运行会作为组运行分发到目标的每种语言),或者仅该单一文档
  • 仅更新内容——默认开启,因为自动化运行应仅重新处理自上次以来发生变化的内容,而不是在每次触发时都重新翻译整个文档。请参阅仅运行已更改的内容

通过 Notion 数据库自动化触发

Notion 数据库自动化可以通过其发送 Webhook 操作来调用触发器:只需将该操作指向触发器 URL,每当自动化运行时,Transept 就会对触发该操作的页面运行工作流。在正式使用前,有两点值得注意。

首先,Notion 自动化是在属性更改(或新建页面)时触发的,而不仅仅是修改正文——因此,仅编辑页面文本可能不会触发任何操作。一种可靠的模式是让自动化监测状态 (Status) 属性:切换状态(例如切换到准备翻译),这种更改即为触发信号。

其次,Notion Webhook 仅指定页面——它从不携带页面内容——因此 Transept 需要通过您的 Notion 连接来读取页面,而该连接必须在 Notion 中被授予访问该数据库的权限。这两个步骤(连接 Notion,然后与集成共享数据库)都在通过 API 自动化 Transept的“Notion 触发器:授予 Transept 访问权限”章节中进行了详细说明。如果跳过其中任何一步,每次触发都会因访问错误而被拒绝。

如何通过 Zapier、n8n 或脚本触发它?

任何能够发送 HTTP POST 请求的工具都能触发该触发器——比如 Zapier 或 n8n 步骤、CI 任务,或者构建结束时的 curl。对于固定文档目标,请求体无关紧要,发送一个空的 POST 即可;只有 Notion 页面目标会读取请求体,以确定具体是哪个页面发生了变动。无需 Authorization 请求头——URL 本身就是密钥。

触发后的运行机制

默认情况下,触发操作会针对所有语言版本运行工作流。如果开启了“仅更新内容”,则只会重新翻译自上次运行以来源内容发生变化的区块,这样微小的修改只需消耗少量区块,而非整个文档。此类运行的计费方式与应用内编辑器完全相同;若余额不足以支付本次运行,则不会执行任何操作,也不会产生计费。

设置为等待您的审核的步骤依然会停下:触发后的流程会运行到该环节并暂停,相关语言将出现在编辑器的“待审核”面板中供您审批——自动化并不会跳过审核环节。此外,如果无法读取 Notion 页面目标(通常是因为未向集成授权访问该数据库),触发器卡片会显示最近一次失败记录,并注明“无法读取 Notion 页面”及时间戳,以便您排查触发失效的原因。

探索功能

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