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 アクション付きのボタンを送る手順です。
- Template 項目のドロップダウンで
Expressionを選びます。 - エディターに次の 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',
},
},
},
],
};
})()