跳至主要内容
把一段訊息立刻送給使用者,然後繼續往下跑。

Push Message

Push Message 是用於輸出訊息回應給使用者的 processor。

基本用法​

執行 Push Message 時,會立即將設定的訊息內容發送給使用者,然後繼續執行下一個 processor。

配置參數​

節點的屬性面板:

Push Message 的屬性面板:Message 必填,另有 Template、Flush 開關與 Payload

Name​

顯示在畫布上的名稱,用於在工作流程中識別此 processor。

Description​

用於補充此 processor 的用途,提升工作流程的可讀性。

Properties​

Message(必填)​

要發送給使用者的文字訊息內容。支援 Literal、Expression、Template 等設定類型,詳細說明請參考:Expression 介紹 - 取值方式。

Template​

Message template 設定,用於定義訊息的呈現格式,可設定按鈕、圖片、快速回覆等豐富的訊息格式。

Flush​

是否立即清空回覆緩衝區,預設值為 false。

回覆緩衝區的行為,就是將多個 Push Message 的訊息累積起來,例如 Push Message 1、Push Message 2、Push Message 3 等,直到對話完成後才清空。如下流程圖所示:


設定值行為適用場景
false累積所有階段訊息直到對話結束才清空預設對話行為或是第三方聊天平台(LINE、Discord 等)
true每則階段訊息立即清空緩衝區SDK 需要即時視覺效果的客製化介面

注意: 第三方聊天平台的 reply token 機制差異,開啟 true 可能會造成功能異常,請參考各聊天平台官方技術文件。

Payload​

附加的資料內容(如元資料)要推送的額外結構化資料,可包含額外的結構化資料供前端使用。

在 Workflow CRD 中的設定​

- name: proc-push-error-msg
type: push-message
labels:
display_name: Push Error Message
configs:
- name: message
value: 系統忙碌中,請稍後再試。
- name: flush
value: "false"
- name: template
expression: |-
(() => {
return { type: "HINT" };
})()
- name: payload
expression: |-
({ prevError })

flush 是布林值,但在 CRD 中一律寫成字串 "true" / "false"。

Automation Tool 類型的工作流程也用 type: push-message,但那裡只接受 payload 一個設定,扮演的是 Response 的角色。

連接關係​

Success​

當訊息成功發送後,工作流程會從此連接點繼續執行下一個 processor。

Failure​

當訊息發送失敗時,工作流程會從此連接點繼續執行,並產生 prevError 變數儲存錯誤資訊。

一個實際的例子​

把前一個節點查到的結果回給使用者。

欄位值
MessageExpression:'目前庫存 ' + low_stock.length + ' 筆'
Flush關閉

Message 也可以用 Template 模式寫成帶按鈕、圖片的訊息格式。

注意事項​

  • Message 支援 Expression 與 Template 兩種取值方式,兩者都能引用流程裡任何已存在的變數。
  • Flush 是開關,決定這則訊息是否立即送出。