Skip to main content

Action Object - EMIT

EMIT Action 在聊天介面中發送自訂事件到工作流程。

基本用法

EMIT Action 讓使用者點擊按鈕時觸發自訂事件,這些事件可以被工作流程中的 Listen Event processor 接收並處理。自訂事件可透過 SDK 解析 Payload 資料作進一步的處理,提供比 MESSAGEURI Action 更靈活的內部事件處理機制。

Action 結構

JSON 格式

{
"type": "EMIT",
"eventName": "product_inquiry",
"payload": {
"productId": "P001",
"category": "electronics"
}
}

屬性說明

type(必填)

動作類型,固定為 "EMIT"

eventName(必填)

要發送的事件名稱,建議使用底線分隔的命名格式(如 product_inquiry)。

payload(選填)

事件攜帶的資料內容,可以是任意型態的結構化資料。

使用範例

要在 Push Message 中發送帶有 EMIT Action 的按鈕,請按照以下步驟操作:

  1. 在 Template 欄位的下拉選單中選擇 Expression
  2. 在 Editor 編輯器中輸入以下 JavaScript 程式碼。

客服分類選單

(() => {
return {
type: 'BUTTON',
title: '客服選項',
text: '請選擇您需要的服務類型:',
buttons: [
{
label: '技術支援',
action: {
type: 'EMIT',
eventName: 'support_request',
payload: {
category: 'technical',
priority: 'normal',
},
},
},
{
label: '帳務問題',
action: {
type: 'EMIT',
eventName: 'support_request',
payload: {
category: 'billing',
priority: 'high',
},
},
},
],
};
})();

產品查詢流程

(() => {
return {
type: 'BUTTON',
title: '產品服務',
text: '選擇您需要的服務:',
buttons: [
{
label: '查詢詳情',
action: {
type: 'EMIT',
eventName: 'product_inquiry',
payload: {
productId: 'laptop_001',
inquiryType: 'details',
},
},
},
{
label: '立即預約',
action: {
type: 'EMIT',
eventName: 'booking_flow_start',
payload: {
serviceType: 'restaurant',
restaurantId: 'brown_cafe_001',
priority: 'high',
},
},
},
],
};
})();