# 應用觸發器

Source: https://openflow.run/zh-tw/docs/nodes/integration/
Language: zh-TW
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-tw/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)
