觸發器:賦予表單生命力
DMflow.chat 的觸發器系統是連接表單數據與自動化動作的橋樑。它支援廣泛的整合,包括 LINE, OpenAI (Chat, Image, Audio), SendGrid, Telegram, OpenRouter 以及 Google 生態系 (Calendar, Drive)。
觸發器的本質:JSON 結構
在 DMflow 中,每個邏輯節點在底層都是由 JSON (JavaScript Object Notation) 所構成的。您可以將其視為傳遞和儲存資料的標準容器。
節點儲存結構範例:
除了起始節點固定命名為 start 外,其餘節點均使用 UUID 作為唯一識別碼。
{
"start": {
"username": "dmflow.chat"
},
"97d860d4-5a7f-49e0-804a-7ce4891076bf": {
"datas": [
{"id": "001", "name": "測試"},
{"id": "002", "name": "測試2"}
]
}
}
兩大流程類型
觸發器分為兩個階段:
- 觸發流程 (Trigger Flow):
- 目的: 負責前端的資料驗證與互動。
- 功能: 檢查輸入文字是否有誤,並可調用預設的 LLM (Gemini 2.0 flash) 來自動補充或修正文字內容。
- 背景流程 (Background Flow):
- 目的: 負責後端的資料處理與副作用 (Side Effects)。
- 時機: 當觸發流程順利抵達
END,且資料已完成儲存、更新或刪除後,系統才會執行此流程。
觸發流程節點詳解
| 節點名稱 | 功能說明 |
|---|---|
| IF | 條件判斷。 包含條件式 (Conditions),根據結果導向 True 或 False 路徑。 |
| ASSIGN | 賦值。 將對話中獲取的內容或計算結果,儲存到特定欄位變數中。可用於覆蓋舊值或新增值。 |
| RESPONSE | 互動回應。 根據填寫的 Prompt 生成對話輸出。可設定 Response_only:- false: 根據 Fields 欄位抓取資料回填。- true: 直接取得 LLM 的回應文字(如翻譯結果)。 |
| ERROR | 錯誤終止。 當驗證失敗或格式錯誤時,回覆錯誤訊息並強制結束對話。 |
| STOREQUERY | 暫存詢問。 類似 ME 節點,但會等待用戶的下一次回應。用於從對話中擷取 JSON 資訊(文字、檔案等)並暫存。 |
| ROW_EXIST | 資料存在性檢查。 過濾並檢查特定資料是否存在(如:檢查 Email 是否已被註冊)。可設定是否無視訪客權限(Admin 模式)。 |
| ME | 訪客身分。 取得當前調用此觸發器的訪客資訊,且直接通過不等待。 |

RESPONSE 節點資料結構範例:
若 Fields: ["姓名", "信箱"],資料將儲存為:
node['UUID'].username
node['UUID'].email
若 Response_only: true,資料將儲存為:
node['UUID'].response
背景流程節點詳解
背景流程接手處理已儲存的資料,進行更複雜的邏輯運算。
| 節點名稱 | 功能說明 |
|---|---|
| HTTP | 調用外部 API。 |
| IF / ASSIGN | 同觸發流程。 |
| LOOPS | 迴圈處理。針對陣列資料進行迭代。 |
| SEARCH | 搜尋表單資料。 |
| INSERT | 插入新資料列 (Row)。 |
| UPDATE | 更新指定 ID 的資料。 |
| DELETE | 刪除指定 ID 的資料。 |
| NATIVE_UTILS | 平台原生工具。目前提供取得檔案 PresignedUrl 的功能,方便第三方讀取私有檔案。 |
參數與函數
- 參數引用: 使用
{{ }}包覆變數。支援自動搜尋可填寫參數。 - 常用函數庫 (Utils):
hash(text): 轉雜湊值。uuid(): 產生 UUID v7。randomValue(length): 產生亂數。now(timezone): 取得當前時間字串。toSeconds(dateString): 時間轉秒數。generateSignature(...): 生成簽章。encrypt/decrypt(...): 加解密(依賴租戶密鑰)。passwdEncode/Verify(...): BCrypt 密碼處理。atob(text): Base64 解碼。
測試與除錯
DMflow 提供基於 Server-Sent Events (SSE) 的即時測試介面。您可以視覺化地看到每一個節點的執行路徑,並點擊節點查看當下的參數狀態,讓除錯變得直觀簡單。

安全性宣告
背景流程中的第三方調用,均使用租戶層級的密鑰。 所有密鑰在資料庫中均經過高強度加密保存。觸發器的調用紀錄僅供租戶管理者查看,測試調用則不會被記錄。