メインコンテンツまでスキップ

Action Object — EMIT

EMIT アクションは独自のイベントをワークフローへ送ります。

基本的な使い方​

EMIT アクションは、ボタンをタップすると独自のイベントを発生させます。そのイベントはワークフロー内の Listen Event プロセッサーが受け取って処理できます。SDK から payload を読み取ってさらに処理できるため、MESSAGE や URI アクションよりも柔軟な内部の仕組みになります。

構造​

JSON​

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

各項目​

type(必須)​

アクションの種類で、常に "EMIT" です。

eventName(必須)​

送るイベントの名前です。product_inquiry のようにアンダースコア区切りの命名が慣例です。

payload(任意)​

イベントが運ぶデータで、任意の構造を取れます。

使用例​

Push Message から EMIT アクション付きのボタンを送る手順です。

  1. Template 項目のドロップダウンで Expression を選びます。
  2. エディターに次の 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',
},
},
},
],
};
})()