# 应用触发器

Source: https://openflow.run/zh-cn/docs/nodes/integration/
Language: zh-CN
Product version: 0.1.0-beta.77

在“触发器”页签按应用选择具体事件，再配置账号、条件和输出。

应用触发器按应用展示在添加面板中。打开“触发器”页签，选择应用，再选择具体事件，例如 Gmail 的“收到新邮件”或 Slack 的“提及或私信”。

## 选择目录中的事件

所选事件会提供自己的配置字段和输出。按面板要求选择账号、填写必需字段。可用事件取决于部署端目录和当前权限。

从应用目录选择 Slack 的“提及或私信”事件，由配置好的事件源向工作流投递消息。

**输入**
本例选择 app_mention 和 message.im，需要将占位值替换为已验证的事件源。

**预期结果**
Slack 事件被接受后，将 text 提供给起草回复的步骤。

**运行前准备**
创建并验证 Slack 事件源，选择对应账号，再发布并启用工作流。

[下载工作流](https://openflow.run/docs/examples/receive-slack-event.openflow.json)

使用 CLI/MCP 时，应先查询事件标识。下面使用 `slackbot.on_event`；`integration` 是它在接口中的表示，不是面板里另一个需要添加的选项：

```json
{
  "op": "node.add", "as": "mention", "type": "integration", "name": "Slack mention",
  "config": { "key": "slackbot.on_event", "connectionId": "CONNECTION_ID" },
  "inputs": {
    "sourceId": { "kind": "value", "value": "source_00000000000000000000000000000000" },
    "eventTypes": { "kind": "value", "value": ["app_mention", "message.im"] }
  }
}
```

这里的事件源 ID 仅作占位。发布前，需要创建并验证真实的 Slack 事件源，再选择与之匹配的已授权账号连接。

## 账号与事件源

部分应用事件需要验证回调或配置共享事件源，其他事件则由服务定期检查。这些是所选应用事件的投递方式，不需要再添加一个通用节点。

共享事件源有自己的应用或工作区身份及就绪状态。每个使用它的工作流保留独立配置，并分别接受运行创建检查。Connector 检查应用协议；Open Flow 保存投递进度并检查当前绑定。

## 输入与输出

事件配置在运行创建前就会使用，因此不能读取本次运行的下游结果。支持哪些静态来源、有哪些必填字段，应查看当前所选事件的实际 schema。

输出也由事件定义决定。Slack 案例提供 `text`、`channel` 和投递上下文；Gmail 事件则提供自己的邮件数据结构。具体配置见[Gmail 案例](https://openflow.run/zh-cn/docs/nodes/poll/index.md)。

## 发布与验证

准备好账号及必要的事件源，再发布并启用工作流。发送一个有代表性的真实事件，检查生成的运行记录。仅有回调成功或草稿模拟成功，不能证明事件已经完整投递并执行。

事件投递和恢复遵循部署端事件契约，不使用普通任务节点的重试或 `onError` 设置。

## 资料来源

*   [docs/triggers/shared-event-sources.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/triggers/shared-event-sources.md)
*   [docs/control/trigger-permissions.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/trigger-permissions.md)
*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#event-source-management)
*   [packages/open-flow/src/workbench/browser/runtime/stores/triggerStore.ts](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/packages/open-flow/src/workbench/browser/runtime/stores/triggerStore.ts)
