建立時間: 2024-12-25 | 最後修改時間: 2025-03-26 | 25 分鐘閱讀
嘿,DMflow 的戰友們!我們已經一起闖過了儀表板設定的叢林,也探索了知識庫的奧秘。現在,準備好迎接最終 Boss 了嗎?這篇終極指南將帶你深入 DMflow 最強大的武器之一——「觸發器 (Trigger)」,看看它如何讓你的表單瞬間變聰明,自動化處理各種大小事!


想像一下,觸發器就像你請來的小精靈,平常沒事,但只要滿足特定條件(例如有人填完表單、按了某個按鈕),它就會自動跳出來,按照你事先交代好的步驟去執行任務。
新增觸發器時,主要有兩種玩法:

DMflow 很貼心地提供了一個視覺化的「觸發流程」編輯器,讓你像玩積木一樣,用拖拉點選的方式設計自動化流程。
建立流程三步驟,超簡單:
是不是很直覺?就算沒寫過程式,也能輕鬆上手!

每個拖到畫布上的節點,點一下都可以進行詳細設定:
特別注意: 有些節點天生就是「終點站」,像是「回應 (Response)」、「錯誤回應 (Error Response)」和「儲存查詢 (Store Query)」。因為它們需要停下來等使用者回應,所以後面不能再接其他節點了。其他的節點則會一個接一個跑下去,直到碰到 End 節點為止。
這兩個節點沒什麼特別設定,但很重要:

If 節點就像是流程中的十字路口,它會根據你設定的條件,決定接下來要往左走還是往右走。
true 或 false。yyyy-MM-dd'T'HH:mm:ssZZZ 這種格式 (例如:2024-10-27T10:30:00+08:00),差一點都不行喔!= 或 ==)、不等於 (!= 或 <>)、大於 (>)、小於 (<)、大於等於 (>=)、小於等於 (<=),還有文字是否包含 (contains) 等等。AND (所有條件都要成立) 或 OR (只要一個條件成立就好) 把它們組合起來。不過目前限制是,一組條件裡只能全部用 AND,或是全部用 OR,不能混用。設定好條件後,If 節點就會有兩條出口線:一條是條件成立時走的,另一條是條件不成立時走的。

Assign 節點的功能很單純,就是把某個「值」指定給一個或多個「變數」。想像成幫變數貼標籤,或是把資料裝進變數這個盒子裡。
true、123、你好 這種。{{node['start'].key}} 就是抓取 start 節點裡 key 這個欄位的值。Assign 節點在流程中超級常用,用來暫存資料、轉換格式、做簡單計算等等。

Response 節點是你跟使用者「對話」的橋樑。它會跳出你設定好的訊息給使用者看,然後等待使用者輸入回應。它有兩種主要用法,取決於你有沒有設定 Fields (欄位):
模式一:不用 Fields (簡單問答)
Response Only 這個選項設成 True。node[...].response 來拿到使用者輸入的整段文字。模式二:使用 Fields (結構化輸入)
Fields 旁邊的「+」按鈕,新增一個或多個欄位,並為每個欄位取一個 key (例如 name, phone, email)。Response Only 設成 False。node[...].[你取的key] 來分別拿到使用者在對應欄位輸入的內容。例如,用 node[...].name 拿到姓名,用 node[...].phone 拿到電話。記得喔,Response 節點是終點站,後面不能再接其他節點了。

error-response 節點是流程的「緊急出口」。當流程跑到一半,發現有問題(例如使用者輸入格式錯誤、找不到資料),或是觸發了某個你不希望發生的條件時,就可以導向這個節點。
If 節點的後面,當 If 的條件成立時(表示出錯了),流程就走到 error-response。有了它,你就能優雅地處理錯誤,給使用者明確的回饋,而不是讓流程卡住或產生奇怪的結果。這也是終點站節點喔。

store query 節點跟 Response 有點像,也是用來接收使用者輸入的。但它的主要目的是把使用者輸入的「原始查詢內容」保存下來,方便後續使用。
store query。這也是一個會等待使用者輸入的終點站節點。

row-exist 節點很直接,就是幫你檢查「符合條件的資料到底存不存在」。例如,你想看看資料庫裡是不是已經有這個客戶的訂單了。

me 節點是用來直接取得「目前正在操作這個流程的使用者」的相關資訊。
store query 的差別:
store query 要等使用者輸入,me 不需要,直接抓當前使用者的資料。store query 會暫停流程,me 不會,抓完資料就繼續往下跑。userId)、管道 ID (channelId,代表他是從哪個管道來的,例如訪客)。me 就對了。有些任務比較花時間,或者需要跟外部系統打交道,這時候就要請出「背景流程」和一些特殊的節點來處理了。

http 節點讓你的流程可以跟外部世界溝通!你可以用它來發送 HTTP 請求(就像瀏覽器打開網頁一樣),去呼叫別人的 API、抓取網頁資料等等。

?key=value)、要 POST 出去的資料內容 (Request Body)、或是這次請求特有的 Header。
如果你的資料是一長串的列表或陣列 (Array),例如 API 回傳了好幾筆產品資料,你想針對「每一筆」資料都做同樣的處理,那就要用 loops 節點啦!
Node name:告訴它你的列表資料在哪個節點的輸出裡。Node key:告訴它列表資料在那個節點輸出的哪個 key 底下。node['api_result'].products[0].name)轉換成比較簡單的 data.property 形式(例如 data.name)。在迴圈的每一次執行中,data 就代表當前正在處理的那一筆資料。docs,裡面有三篇文章,每篇都有 title 和 description。
{
"start": {
"docs": [
{ "title": "xx", "description": "x" },
{ "title": "yy", "description": "y" },
{ "title": "zz", "description": "z" }
]
}
}
你設定 Node name 為 start,Node key 為 docs。那麼 loops 後面接的節點就會自動執行三次。在第一次執行時,你可以用 data.title 拿到 “xx”,第二次拿到 “yy”,第三次拿到 “zz”。

DMflow 還內建了很多可以直接跟特定應用程式(像 Google Sheets, Google Calendar, Slack 等)互動的節點。我們拿 google-calendar 當例子:
關於 Use FilterKey (使用者第三方串接):

很多應用節點都有 Use FilterKey 這個選項。簡單說,它就是決定:這次操作,要用使用者自己綁定的帳號權限,還是用系統預設或你在節點上設定的權限?
但要注意,不是每個第三方服務都支援讓 DMflow 這樣去使用使用者個人的憑證喔。

設計好流程後,當然要測試一下跑起來順不順!DMflow 提供了「測試」功能:
透過測試功能,你可以一步步檢查流程是否如預期般運作,快速找出問題並修正。
恭喜你!一路從表單的基礎設定,奮戰到強大的觸發器與自動化流程。我們一起解密了 DMflow 表單問答系統的各種核心功能。
現在你擁有的,不僅僅是建立表單的能力,更是打造智慧化、自動化工作流程的超能力!觸發器就像是你的魔法棒,只要發揮創意,就能讓重複性的工作自動完成,讓你的表單不只收集資料,更能主動解決問題、串連服務。
當然,DMflow 的世界還很大,還有更多細節和技巧等著你去探索。希望這三篇指南能為你打下堅實的基礎,讓你更有信心地駕馭這個強大的工具。
去吧!開始創造屬於你的自動化魔法吧!