跳至主要内容

REFERENCE

開發者參考

認證、API、SDK、Flow Agent 處理節點與參數取值的完整參考。

Action Object - EMIT

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

  1. 基本用法​

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

  2. Action 結構​

    JSON 格式​

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

    屬性說明​

    type(必填)​

    動作類型,固定為 "EMIT"。

    eventName(必填)​

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

    payload(選填)​

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

  3. 使用範例​

    要在 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',
    },
    },
    },
    ],
    };
    })()

準備好開始了嗎?

想知道 Asgard 怎麼用在你的團隊?跟我們聊聊。

聯絡我們