OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Create a Simple Bot
SKILLS
Storyboard
Dialog Tasks
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Train
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Introduction
How to Configure Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Bot Versioning
Collaborative Development
Plan Management
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Create a Simple Bot
Create a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
RELEASE NOTES

BotKit SDK の関数

Kore.ai BotKit SDK は、ボットの制御を強化し、ユーザー体験を向上させるために使用できる関数を提供しています。
BotKit SDKでは、以下の関数がサポートされています。

sdk.sendUserMessage

この関数は、メッセージをボット ユーザーに送信します。
使用方法
on_bot_message イベント コールバック内で使用します。on_bot_message イベントは、ボットがユーザーにレスポンスを送信すると、呼び出されます。SDK では、 message のようなペイロード データを変更し、ボット プラットフォームに送信することができます。
構文

sdk.sendUserMessage(payload, callback)

パラメータ:

  • payload — 以下に示すような、JSON のレスポンス ペイロードです:
    { "message":"Spell-corrected message sent by bot to the user", "originalMessage":"Original message sent by bot to the user", "taskId":"Dialog task ID", "nodeId":"Current node ID in the dialog flow", "channel":"Channel name", "context": <context object> }

    上記のメッセージ ペイロードは、ユーザーの言語が検出され、スペルの修正が行われたときのものです。ユーザーの言語が検出されない場合は、以下のようなメッセージ構成になります。

    { "message":"Original message sent by bot to the user", "originalMessage":"Original message sent by bot to the user", "languageInfo": { "currentLanguage": "current user language", "detectedLanguages": [ "language detected 1", "language detected 2" ], "spellCorrectedInput": [ "language 1": "spell correction in language 1", "language 2": "spell correction in language 2" ] } }
  • callback ー イベント完了時に呼び出される関数で、更新されたメッセージとコンテキストを ボット プラットフォームに送信します。

サンプル
次のコードスニペットは、 sdk.sendUserMessage 関数がユーザーにエラーを返すサンプルを示しています。

return sdk.sendUserMessage(payload, function(err){ if(err) console.log("err", err);

以下のコード サンプルでは、ユーザーがライブ エージェントに切り替わったときのユーザーへの初期メッセージを表示しています。

formdata.welcome_message = ""; var visitorId = _.get(payload, 'channel.channelInfos.from'); if (!visitorId) { visitorId = _.get(payload, 'channel.from'); } visitorId = payload.context.session.UserContext._id; userDataMap[visitorId] = payload; data.message = "An Agent will be assigned to you shortly!!!"; sdk.sendUserMessage(payload, callback);

次のコード サンプルでは、 sdk.sendUserMessage 関数でユーザーに送信されるメッセージは、ユーザーが選択した通貨変換に基づいています。isTemplate パラメータは、カスタム メッセージ フォーマットを使用するか、デフォルト メッセージ フォーマットを使用するかを決定します。

on_user_message : function(requestId, payload, callback) { message = payload.message.toLowerCase();console.log("MESSAGE",payload.message); //payload .context.session.BotContext.currency = "koko"; if ( message == "Yes" || message == "yes") { var overrideMessagePayload = { body : " Enter the currency code for which the amount will be converted", isTemplate :false }; data.overrideMessagePayload = overrideMessagePayload; currCode = true; return sdk.sendUserMessage(payload); } else if ( message == "No" || message == "no" ) { var overrideMessagePayload = { body : "Ok, Enter the country name so that I can fetch it on your behalf", isTemplate :false }; payload.overrideMessagePayload = overrideMessagePayload; countryname = true; return sdk.sendUserMessage(payload);

プラットフォームの Ver 8.0 のリリース後は、ユーザー、メッセージ、およびセッションのメタタグを追加できるようになりました。必要なペイロードの構文は以下のようになります:

metaTags":{ "userMetaTags":[ { "name":"<string>", "value":"<string>" } ], "sessionMetaTags":[ { "name":"<string>", "value":"<string>" } ], "messageMetaTags":[ { "name":"<string>", "value":"<string>" } ] }

sdk.sendBotMessage

<span style="font-weight: 400">この関数は、ボットにメッセージを送信します。</span><br /><strong>使用方法
使用法
on_user_message イベントコールバック内で使用されます。ユーザーがボットにメッセージを送信すると on_user_message イベントが呼び出されます。SDK では、 message のようなペイロード データを変更して、ボット プラットフォームに送信することができます。
ユーザー メッセージの検証チェックが行われます。メッセージは 3,000 文字以下で、各単語は 1,200 文字以下です。
構文:

sdk.sendBotMessage(payload, callback)

パラメータ:

  • payload — 以下に示すような、JSON のレスポンス ペイロードです:
    { "message":"Message sent by the user", "channel":"Channel name", "context": <context object> }
  • callback ー イベント完了時に呼び出される関数で、更新されたメッセージとコンテキストを ボット プラットフォームに送信します。

サンプル
以下のコードスニペットは、ユーザーのレスポンスをボットに送信します。

on_user_message: function(requestId, payload, callback) { sdk.sendBotMessage(payload, callback); },

この on_user_message の関数では、メッセージはユーザーに直接返され、ライブ エージェントへの転送でない場合は、ボットに送られます。

on_user_message: function(requestId, payload, callback) { if (payload.message === "Hi") { payload.message = "Hello"; //Sends back 'Hello' to user. return sdk.sendUserMessage(payload, callback); } else if (!payload.agent_transfer) { //Forward the message to bot return sdk.sendBotMessage(payload, callback); } else { payload.message = "Agent Message"; return sdk.sendUserMessage(payload, callback); } };

プラットフォームの Ver 8.0 のリリース後は、ユーザー、メッセージ、およびセッションのメタタグを追加できるようになりました。必要なペイロードの構文は以下のようになります:

metaTags":{ "userMetaTags":[ { "name":"<string>", "value":"<string>" } ], "sessionMetaTags":[ { "name":"<string>", "value":"<string>" } ], "messageMetaTags":[ { "name":"<string>", "value":"<string>" } ] }

sdk.AsyncResponse

この関数は、ボット プラットフォームに送信する非同期レスポンスを用意します。
使用方法
ダイアログ タスクの実行フローが Webhook ノードに到達した場合、ボット プラットフォームは SDK に対して on_webhook イベント呼出しを行います。on_webhook イベント呼出しは、2 種類のレスポンスをサポートしています:

  • 同期レスポンス ー ビジネス ロジックの実行が許容時間内に完了できる場合、SDKは callback(null, payload) 関数を使用して同期レスポンスを行うことができます。
  • 非同期レスポンス ー ビジネス ロジックの実行に時間が必要な場合、SDKは callback(null, new sdk.AsyncResponse()) 関数を呼び出し、HTTPコード202 を ボット プラットフォームに送信することで、非同期レスポンスを行うことができます。レスポンスの準備ができると、SDK は sdk.respondToHook(payload) 関数を呼び出すことができます。

構文:

sdk.AsyncResponse() callback(null, new sdk.AsyncResponse())

パラメータ:
なし。
サンプル
この on_webhook 関数のサンプルでは、ボットはユーザーが選択したタクシーの予約を非同期的に待機します。

on_webhook : function(requestId, payload, componentName, callback) { var context = payload.context; if (componentName === 'FindNearbyCabs') { findCabs() .then(function(cabList) { context.cabList = cabList; callback(null, data); }); } else if (componentName === 'BookTheCab') { sdk.saveData(requestId, payload) .then(function() { bookTheCab(requestId, context.entities.selectedCab.id, context.session.UserSession.location, context.entities.whereTo); callback(null, new sdk.AsyncResponse()); }); } }

sdk.respondToHook

この関数は、Webhook のレスポンスをボット プラットフォームに 送信します。
使用方法
ダイアログ タスクの実行フローが Webhook ノードに到達した場合、ボット プラットフォームは SDK に対して on_webhook イベント呼出しを行います。on_webhook イベント呼出しでは、2 種類のレスポンスをサポートしています。

  • 同期レスポンス ー ビジネス ロジックの実行が許容時間内に完了できる場合、SDKは callback(null, payload) 関数を使用して同期レスポンスを行うことができます。
  • 非同期レスポンス ー ビジネス ロジックの実行に時間が必要な場合、SDKは callback(null, new sdk.AsyncResponse()) 関数を呼び出し、HTTPコード202 をボット プラットフォームに送信することで、非同期レスポンスを行うことができます。応答の準備ができると、SDK は sdk.respondToHook(payload) 関数を呼び出すことができます。

構文:

sdk.respondToHook(payload)

パラメータ:

  • payload – 以下に示すような、JSON のレスポンス ペイロードです:
    { "taskId":"Dialog task ID", "nodeId":"Current node ID in the dialog flow", "channel":"Channel name", "context": <context object> }

サンプル
以下のコードスニペットでは、タクシーの予約に失敗した場合、イベントが同期的に処理されます。逆に、タクシーの予約は Webhook で非同期に処理されます。

function onBookingFailure(requestId) { sdk.getSavedData(requestId) .then(function(payload) { payload.context.successful = false; sdk.respondToHook(payload); }); } //call cabBookingService with the requestId.このサービスは、非同期にレスポンスすることが期待されています。//'requestId' must be passed along all asynchronous flows, to allow the BotKit to respond // back to the hook once the async process is completed. function bookTheCab(requestId, cabId, userLoc, destination) { cabBookingService(requestId, cabId, userLoc, destination, { on_success: onBookingSuccess, on_failure: onBookingFailure }); }

sdk.registerBot

この関数は、ボットを登録し、ランタイムにコールバック イベントを利用できるようにします。
使用方法
BotKit SDK は、各ボットに対して 1 つの Node.js ファイルを作成するように設計されています。ボットのコールバックはすべて、この Node.js ファイルで管理されます。ボットを登録するには、以下のような変数や関数をエクスポートする必要があります:

module.exports = {       botId : “xxxxx”,       botName : ““xxxxx”,       on_user_message : function(requestId, data, callback) {            //code goes here       },       on_bot_message : function(requestId, data, componentName, callback) {            //code goes here       },      on_webhook : function(requestId, data, componentName, callback) {            //code goes here       }, }

構文:
ボットを登録するには、次を呼び出します

sdk.registerBot(require('./<Bot Name>.js'));

パラメータ:

  • ボットが登録するための Node.js ファイル

サンプル
以下のコード サンプルでは、 botIdbotNameによるボットの登録を示しています。

module.exports = { botId : botId, botName : botName, on_user_message : function(requestId, payload, callback) { debug('on_user_message'); onUserMessage(requestId, payload, callback); }, on_bot_message : function(requestId, payload, callback) { debug('on_bot_message'); onBotMessage(requestId, payload, callback); }, on_agent_transfer : function(requestId, payload, callback) { console.log("on agent transfer event"); debug('on_webhook'); onAgentTransfer(requestId, payload, callback); }, gethistory: gethistory };

sdk.saveData

この関数は、データを Redis インメモリ データ構造ストアに保存します。
使用方法
on_webhook イベント呼出しに非同期に応答する場合、requestIdでペイロードを Redis ストアに保存できます。ビジネス ロジックの実行が完了したら、Webhook の応答を準備しながら、 sdk.getSavedData(requestId)function を使用してデータを読み取ることができます。
構文:

sdk.saveData(requestId, payload)

パラメータ:

  • requestId ー 非同期の on_webhook イベント呼出しからの requestId 。
  • payload — 以下に示すような、JSON のレスポンス ペイロードです:
    { "taskId":"Dialog task ID", "nodeId":"Current node ID in the dialog flow", "channel":"Channel name", "context": <context object> }

サンプル
この on_webhook イベントでは、タクシーを予約したいというユーザーのリクエストがRedis ストアに保存され、予約の非同期処理が開始されます。

on_webhook : function(requestId, payload, componentId, callback) { var context = data.context; if (componentId === 'FindNearbyCabs') { findCabs() .then(function(cabList) { context.cabList = cabList; callback(null, payload); }); } else if (componentName === 'BookTheCab') { sdk.saveData(requestId, payload) .then(function() { //Assuming the cab booking was successful.A mock service to book the cab can be called here. payload.successful = 'true'; payload.bookedCab = context.entities.selectedCab || {}; callback(null, payload); }); } }

sdk.getSavedData

この関数は、Redis インメモリデータ構造ストアのデータを読み込みます。
使用方法
on_webhook イベント呼びたしに非同期で応答する場合、 requestIdでペイロードを Redis ストアに保存できます。ビジネス ロジックの実行が完了すると、Webhook のレスポンスを準備しながら、 sdk.getSavedData(requestId)function を使用してデータを読み取ることができます。
構文:

sdk.getSavedData(requestId, payload)

パラメータ:

  • requestIdrequestId  非同期のon_webhookイベント呼出し 。(非同期の <on_webhook> イベント呼出しからの <requestId/>。
  • payload — 以下に示すような、JSON のレスポンス ペイロードです:
    {{ "taskId":"Dialog task ID", "nodeId":"Current node ID in the dialog flow", "channel":"Channel name", "context": <context object> }

サンプル
このコード サンプルでは、 sdk.getSavedData 関数を使用して、選択したタクシーと予約情報を返したり、非同期予約 webhook イベントが失敗した場合に、選択した予約の失敗メッセージをユーザーに送信します。

/*/ * Webhook に成功フラグで非同期に応答します。*/ function onBookingSuccess(requestId) { sdk.getSavedData(requestId) .then(function(payload) { payload.context.bookedCab = payload.entities.selectedCab; payload.context.successful = true; sdk.respondToHook(payload); }); } function onBookingFailure(requestId) { sdk.getSavedData(requestId) .then(function(payload) { payload.context.successful = false; sdk.respondToHook(payload); }); }

sdk.getMessages

この関数は、ボットとユーザーの過去の会話のトランスクリプトを取得するために使用します。公開 API の会話履歴と同様に動作をします (会話履歴 API についてはこちらをご覧ください)
使い方
ボットとユーザーの間で交わされた会話メッセージを逆の時系列で取得します。この API は、改ページをサポートしています。オフセット/スキップや、一度に特定の数のメッセージを取得する制限を設けることができます。
構文:

sdk.getMessages(requestData, callback)

パラメータ:

  • requestData — 以下のように記述します:
    requestData.baseUrl + '/getMessages?'+ "skip=" + offset + "&limit=" + limit + "&userId=" + userId+"&channelType"=channel-type

    位置?

    • stream_id ー Bot ビルダーの「設定」ページからアクセスできるボット ID
    • user_id ー 会話履歴にアクセスするユーザーの ID
    • skip ー スキップするメッセージの数。
    • limit ー 各ページに表示されるメッセージの数。
    • channelType ー オプションで、会話をホストするチャネルを指定します。
  • callback ー イベント完了時に呼び出す関数で、メッセージの履歴をボット プラットフォームに送り返します。

サンプル

//this example is from the LiveChat.js //where the gethistory() function uses getMessage() to extract the messages var userId = req.query.userId; var data = userDataMap[userId]; if(data) { data.limit = 100; return sdk.getMessages(data, function(err, resp){ if(err){ res.status(400); return res.json(err); } var messages = resp.messages; res.status(200); return res.json(messages); });

sdk.clearAgentSession

この関数は、エージェントのセッションをクリアし、ボットとの会話を再構築するために使用されます。
使用方法
エージェント転送のシナリオでは、エージェントがユーザーとの会話を終了すると、サードパーティのプロバイダから chat_closed イベントがトリガーされます。このような状況で、ボットとの会話を再確立するために、この関数が呼び出されます
構文:

sdk.clearAgentSession(requestData, callback)

パラメータ:

  • requestData — 以下のように記述します:
    requestData.baseUrl+ '/clearAgentSession/' + requestData.requestId

    位置?

    • requestId ー セッション ID
  • callback ー イベント完了時に呼び出される関数です。

サンプル

//this example is from the LiveChat.js //where the function is invoked to clear agent session when the chat is closed by the user if (event.type==="chat_closed"){ console.log('chat_closed'); delete userResponseDataMap[visitorId]; delete _map[visitorId]; sdk.clearAgentSession(data); }

プラットフォームの Ver 8.0 のリリース後は、ユーザー、メッセージ、およびセッションのメタタグを追加できるようになりました。必要なペイロードの構文は以下のようになります:

metaTags":{ "userMetaTags":[ { "name":"<string>", "value":"<string>" } ], "sessionMetaTags":[ { "name":"<string>", "value":"<string>" } ], "messageMetaTags":[ { "name":"<string>", "value":"<string>" } ] }

sdk.startAgentSession

この関数は、エージェント セッションが開始されたことをプラットフォームに通知するために使用されます。
使用方法
この関数は、エージェント転送が開始され、エージェント転送が進行中であることをボットに表示したい場合に使用します。これに従うと、たとえば onMessages() で BotKit が受け取るデータ オブジェクトは、エージェント セッションが true になります。さらに、BotKit から sdk.clearAgentSession が呼び出されると、エージェント セッションが完了したことがプラットフォームに通知され、BotKit が受信したデータ オブジェクトのエージェント セッションが false に設定されます。
構文:

sdk.startAgentSession(requestData, callback)

パラメータ:

  • requestData — 以下のように記述します:
    requestData.baseUrl + '/startAgentSession/' + requestData.requestId

    位置?

    • requestId ー セッション ID
  • callback ー イベント完了時に呼び出される関数です。

サンプル

//The following function call is used in the LiveChat.js for connectToAgent() function //Invoking the startAgentSession before invoking the initChat function will ensure that // the Bot is aware of the Agent transfer in progress function connectToAgent(requestId, data, cb){ var formdata = {}; formdata.licence_id = config.liveagentlicense; formdata.welcome_message = ""; var visitorId = _.get(data, 'channel.channelInfos.from'); if(!visitorId){ visitorId = _.get(data, 'channel.from'); } userDataMap[visitorId] = data; data.message="An Agent will be assigned to you shortly!!!"; sdk.sendUserMessage(data, cb); sdk.startAgentSession(data, cb); formdata.welcome_message = "Link for user Chat history with bot: "+ config.app.url +"/history/index.html?visitorId=" + visitorId; return api.initChat(visitorId, formdata) .then(function(res){ _map[visitorId] = { secured_session_id: res.secured_session_id, visitorId: visitorId, last_message_id: 0 }; }); }

プラットフォームの Ver 8.0 のリリース後は、ユーザー、メッセージ、およびセッションのメタタグを追加できるようになりました。必要なペイロードの構文は以下のようになります:

metaTags":{ "userMetaTags":[ { "name":"<string>", "value":"<string>" } ], "sessionMetaTags":[ { "name":"<string>", "value":"<string>" } ], "messageMetaTags":[ { "name":"<string>", "value":"<string>" } ] }

sdk.resetBot

この関数は、コンテキストを消去して、現在のタスクを表示せずに破棄するために使用されます。
使用方法
実行時、ダイアログの実行中に、ユーザー入力が「ボットのリセット」コマンドを使用してボットを消去したい場合に使用します。コンテキストを消去して、タスクを破棄することができます。
構文:

sdk.resetBot(requestData, callback)

パラメータ:

  • requestData — 以下のように記述します:
    requestData.resetBotUrl
  • callback ー イベント完了時に呼び出される関数です。

サンプル

on_user_message : function(requestId, data, callback) { if (data.message==="reset bot"){ sdk.resetBot(data, callback); }

sdk.extendRequestId

この関数は、BotKit がプラットフォームにメッセージを送信するために割り当てられた時間を延長するために使用されます。
使用方法
この関数は、エージェント転送が開始され、しばらくするとプラットフォームがメッセージを受信できなくなる場合に使用します。これは、BotKit がプラットフォームにメッセージを送信するための時間を延長することで対応できます。
構文:

sdk.extendRequestId(requestData, callback)

サンプル

function onBotMessage(requestId, data, cb) { console.log("bot message",JSON.stringify(data)); var visitorId = _.get(data, 'channel.from'); event = schedular.scheduleJob("*/4 * * * *", function() { pub.get(visitorId+':data',function(err,reply){ if(err) throw err; sdk.extendRequestId(data, cb); })}); }
on_user_message: function(requestId, data, callback) { var visitorId = _.get(data, 'channel.from'); registerEvent(visitorId, data); if(event){ event.cancel(); }else{ console.log(new Date(),'event not found'); } event = schedular.schedular.scheduleJob("*/4 * * * *", function() { pub.get(visitorId+':data',function(err,reply){ if(err) throw err; sdk.extendRequestId(data,callback); })});

メモ: 15 分間アクティブな会話がない場合は、時間延長は有効ではありません。非アクティブなセッションでは、それとは無関係に agent_transfer モードがリセットされます。

sdk.skipBotMessage

この関数は、特定のビジネス ユース ケースにおいて、特定のメッセージをスキップするために使用されます。
使用方法
実行時、ダイアログの実行中に、システムは BotKit が進行メッセージを送信するのを待たずに次のステップに進みます。。

構文:

sdk.skipBotMessage(requestData, callback)

パラメータ:

  • requestData ー データ
  • callback ー イベント完了時に呼び出される関数です。

サンプル

if(data.message === "skipBotMessage"){ // condition for skipping a Bot message sdk.skipBotMessage(data, cb); }

プラットフォームの Ver 8.0 のリリース後は、ユーザー、メッセージ、およびセッションのメタタグを追加できるようになりました。必要なペイロードの構文は以下のようになります:

metaTags":{ "userMetaTags":[ { "name":"<string>", "value":"<string>" } ], "sessionMetaTags":[ { "name":"<string>", "value":"<string>" } ], "messageMetaTags":[ { "name":"<string>", "value":"<string>" } ] }

sdk.skipUserMessage

この関数は、特定のビジネス ユース ケースにおいて、特定のメッセージをスキップするために使用されます。
使用方法
実行時、ダイアログの実行中に、システムは BotKit が確認メッセージを送信するのを待たずに次のステップに進みます。
構文:

sdk.skipUserMessage(requestData, callback)

パラメータ:

  • requestData ー データ
  • callback ー イベント完了時に呼び出される関数です。

サンプル

if(data.message === "closeConversationSession"){ // condition for skipping a user message sdk.closeConversationSession(data, cb); }

プラットフォームの Ver 8.0 のリリース後は、ユーザー、メッセージ、およびセッションのメタタグを追加できるようになりました。必要なペイロードの構文は以下のようになります:

metaTags":{ "userMetaTags":[ { "name":"<string>", "value":"<string>" } ], "sessionMetaTags":[ { "name":"<string>", "value":"<string>" } ], "messageMetaTags":[ { "name":"<string>", "value":"<string>" } ] }

sdk.closeConversationSession

この関数は、会話セッションを閉じるために使用します。
使用方法
構文:

sdk.closeConversationSession(requestData, callback)

パラメータ:

  • requestData ー データ
  • callback ー イベント完了時に呼び出される関数です。

サンプル

if(data.message === "closeConversationSession"){ // condition for skipping a user message sdk.closeConversationSession(data, cb); }

プラットフォームの Ver8.0 のリリース後は、ユーザー、メッセージ、およびセッションのメタタグを追加できるようになりました。必要なペイロードの構文は以下のようになります:

metaTags":{ "userMetaTags":[ { "name":"<string>", "value":"<string>" } ], "sessionMetaTags":[ { "name":"<string>", "value":"<string>" } ], "messageMetaTags":[ { "name":"<string>", "value":"<string>" } ] }
OVERVIEW
Virtual Assistants
Kore.ai Platform
Key Concepts
Natural Language Processing (NLP)
Accessing Platform
VIRTUAL ASSISTANTS
Virtual Assistant Builder
Virtual Assistant Types
Getting Started
Create a Simple Bot
SKILLS
Storyboard
Dialog Tasks
Introduction
Dialog Builder (New)
Dialog Builder (Legacy)
User Intent Node
Dialog Node
Entity Node
Supported Entity Types
Composite Entities
Supported Colors
Supported Company Names
Form Node
Logic Node
Message Nodes
Confirmation Nodes
Bot Action Node
Service Node
Custom Authentication
2-way SSL for Service nodes
Script Node
Agent Transfer Node
WebHook Node
Grouping Nodes
Connections & Transitions
Manage Dialogs
User Prompts
Knowledge Graph
Terminology
Building
Generation
Importing and Exporting
Analysis
Knowledge Extraction
Train
Build
Alert Tasks
Introduction
Ignore Words and Field Memory
How to Schedule a Smart Alert
Small Talk
Digital Views
Introduction
How to Configure Digital Views
Digital Forms
Overview
How to Configure Digital Forms
NATURAL LANGUAGE
Overview
Machine Learning
Introduction
Model Validation
Fundamental Meaning
Introduction
NLP Guidelines
Knowledge Graph
Traits
Introduction
How to Use Traits
Ranking and Resolver
Advanced NLP Configurations
INTELLIGENCE
Overview
Context Management
Overview
Session and Context Variables
Context Object
How to Manage Context Switching
Manage Interruptions
Dialog Management
Sub Intents & Follow-up Intents
Amend Entity
Multi-Intent Detection
Sentiment Management
Tone Analysis
Sentiment Management
Event Based Bot Actions
Default Conversations
Default Standard Responses
TEST & DEBUG
Talk to Bot
Utterance Testing
Batch Testing
Record Conversations
Conversation Testing
CHANNELS
PUBLISH
ANALYZE
Overview
Dashboard
Custom Dashboard
Overview
How to Create Custom Dashboard
Conversation Flows
NLP Metrics
ADVANCED TOPICS
Universal Bots
Overview
Defining
Creating
Training
Customizing
Enabling Languages
Store
Smart Bots
Defining
koreUtil Libraries
SETTINGS
Authorization
Language Management
PII Settings
Variables
Functions
IVR Integration
General Settings
Management
Import & Export
Delete
Bot Versioning
Collaborative Development
Plan Management
API GUIDE
API Overview
API List
API Collection
SDKs
SDK Overview
SDK Security
SDK App Registration
Web SDK Tutorial
Message Formatting and Templates
Mobile SDK Push Notification
Widget SDK Tutorial
Widget SDK – Message Formatting and Templates
Web Socket Connect & RTM
Using the BotKit SDK
Installing
Configuring
Events
Functions
BotKit SDK Tutorial – Agent Transfer
BotKit SDK Tutorial – Flight Search Sample Bot
Using an External NLP Engine
ADMINISTRATION
HOW TOs
Create a Simple Bot
Create a Banking Bot
Transfer Funds Task
Update Balance Task
Context Switching
Using Traits
Schedule a Smart Alert
Configure UI Forms
Add Form Data into Data Tables
Configuring Digital Views
Add Data to Data Tables
Update Data in Data Tables
Custom Dashboard
Custom Tags to filter Bot Metrics
Patterns for Intents & Entities
Build Knowledge Graph
Global Variables
Content Variables
Using Bot Functions
Configure Agent Transfer
RELEASE NOTES

Functions for the BotKit SDK

The Kore.ai BotKit SDK provides functions that you can use for greater control of your bot and provide a better user experience.
The following functions are supported by the BotKit SDK.

sdk.sendUserMessage

This function sends the message to the bot user.
Usage
Used inside the on_bot_message event callback. An on_bot_message event is called when the bot sends the reply to the user. In the SDK, payload data such as message can be modified and sent to the Bots Platform.
Syntax

sdk.sendUserMessage(payload, callback)

Parameters:

  • payload – A JSON response payload as follows:
     {
       "message":"Spell-corrected message sent by bot to the user",
       "originalMessage":"Original message sent by bot to the user",
       "taskId":"Dialog task ID",
       "nodeId":"Current node ID in the dialog flow",
       "channel":"Channel name",
       "context": <context object>
    }
    

    The above message payload is when the user language is detected and the spell correction is done. In case the user language is not detected then the following would be the message structure

     {
       "message":"Original message sent by bot to the user",
       "originalMessage":"Original message sent by bot to the user",
       "languageInfo": {
            "currentLanguage": "current user language",
            "detectedLanguages": [
                "language detected 1",
                "language detected 2"
            ],
            "spellCorrectedInput": [
                "language 1": "spell correction in language 1",
                "language 2": "spell correction in language 2"
            ]
         }
    }
  • callback – The function to call at event completion used to send the updated message and context back to the Bots Platform.

Examples
The following code snippet shows an example of the sdk.sendUserMessage function returning an error to the user.

return sdk.sendUserMessage(payload, function(err){
    if(err)
       console.log("err", err);

In the following code example, the initial message to a user is displayed when a user switches to a Live Agent.

    formdata.welcome_message = "";
    var visitorId = _.get(payload, 'channel.channelInfos.from');
    if (!visitorId) {
        visitorId = _.get(payload, 'channel.from');
    }
    visitorId = payload.context.session.UserContext._id;
    userDataMap[visitorId] = payload;
    data.message = "An Agent will be assigned to you shortly!!!";
    sdk.sendUserMessage(payload, callback);

In the next code example, the message sent to the user with the sdk.sendUserMessage function is based on user selection for converting currency. The isTemplate parameter determines if custom or default message formatting should be used.

    on_user_message : function(requestId, payload, callback) {
		message = payload.message.toLowerCase();console.log("MESSAGE",payload.message);
		//payload .context.session.BotContext.currency = "koko";
		if ( message == "Yes" || message == "yes")
		{
			var overrideMessagePayload = {
				body : " Enter the currency code for which the amount will be converted",
				isTemplate :false
			};
			data.overrideMessagePayload = overrideMessagePayload;
			currCode = true;
			return sdk.sendUserMessage(payload);
		}
		else if ( message == "No" || message == "no" )
		{
			 var overrideMessagePayload = {
				body : "Ok, Enter the country name so that I can fetch it on your behalf",
				isTemplate :false
			};
			payload.overrideMessagePayload = overrideMessagePayload;
			countryname = true;
			return sdk.sendUserMessage(payload);

Post the release of ver8.0 of the platform, you can add User, Message, and Session Meta Tags. The following would be the syntax for the necessary payload:

metaTags":{
     "userMetaTags":[
        {
            "name":"<string>",
           "value":"<string>"
       }
    ],
   "sessionMetaTags":[
      {
         "name":"<string>",
         "value":"<string>"
      }
    ],
 "messageMetaTags":[
     {
          "name":"<string>",
          "value":"<string>"
     }
  ]
}

sdk.sendBotMessage

This function sends the message to the bot.
Usage
Used inside the on_user_message event callback. An on_user_message event is called when the user sends a message to the bot. In the SDK, payload data such as message can be modified and sent to the Bots Platform.
A validation check is performed on the user message – the message cannot have more than 3000 characters and each word cannot have more than 1200 letters.
Syntax:

sdk.sendBotMessage(payload, callback)

Parameters:

  • payload – A JSON response payload as follows:
     {
       "message":"Message sent by the user",
       "channel":"Channel name",
       "context": <context object>
    }
    
  • callback – The function to call at event completion used to send the updated message and context back to the Bots Platform.

Examples
The following code snippet send the user response to the bot.

    on_user_message: function(requestId, payload, callback) {
        sdk.sendBotMessage(payload, callback);
    },

In this on_user_message function, the message is returned directly to the user, and if not a transfer to a Live Agent, then is sent to the bot.

    on_user_message: function(requestId, payload, callback) {
        if (payload.message === "Hi") {
            payload.message = "Hello";
            //Sends back 'Hello' to user.
            return sdk.sendUserMessage(payload, callback);
        } else if (!payload.agent_transfer) {
            //Forward the message to bot
            return sdk.sendBotMessage(payload, callback);
        } else {
            payload.message = "Agent Message";
            return sdk.sendUserMessage(payload, callback);
        }
    };

Post the release of ver8.0 of the platform, you can add User, Message, and Session Meta Tags. The following would be the syntax for the necessary payload:

metaTags":{
     "userMetaTags":[
        {
            "name":"<string>",
           "value":"<string>"
       }
    ],
   "sessionMetaTags":[
      {
         "name":"<string>",
         "value":"<string>"
      }
    ],
 "messageMetaTags":[
     {
          "name":"<string>",
          "value":"<string>"
     }
  ]
}

sdk.AsyncResponse

This function prepares the asynchronous response to send to the Bots Platform.
Usage
If the dialog task execution flow reaches a webhook node, the Bots Platform makes an on_webhook event call to the SDK. The on_webhook event call supports two types of responses:

  • Synchronous response – If the business logic execution can be completed within an acceptable time, the SDK can respond synchronously using the callback(null, payload) function.
  • Asynchronous response – If the business logic execution needs more time, the SDK can send the asynchronous response to the Bots Platform by calling the callback(null, new sdk.AsyncResponse()) function to send an HTTP code 202 to the Bots Platform. When the response is ready, the SDK can call the sdk.respondToHook(payload) function.

Syntax:

sdk.AsyncResponse()
callback(null, new sdk.AsyncResponse())

Parameters:
None.
Examples
This example of an on_webhook function, the Bot waits asynchronously for the booking of the cab selected by the user.

on_webhook : function(requestId, payload, componentName, callback) {
        var context = payload.context;
        if (componentName === 'FindNearbyCabs') {
            findCabs()
                .then(function(cabList) {
                    context.cabList = cabList;
                    callback(null, data);
                });
        } else if (componentName === 'BookTheCab') {
            sdk.saveData(requestId, payload)
                .then(function() {
                    bookTheCab(requestId, context.entities.selectedCab.id, context.session.UserSession.location, context.entities.whereTo);
                    callback(null, new sdk.AsyncResponse());
                });
        }
    }

sdk.respondToHook

This function sends the webhook response to the Bots Platform.
Usage
If the dialog task execution flow reaches a webhook node, the Bots Platform makes an on_webhook event call to the SDK. The on_webhook event call supports two types of responses:

  • Synchronous response – If the business logic execution can be completed within an acceptable time, the SDK can respond synchronously using the callback(null, payload) function.
  • Asynchronous response – If the business logic execution needs more time, the SDK can send the asynchronous response to the Bots Platform by calling the callback(null, new sdk.AsyncResponse()) function to send an HTTP code 202 to the Bots Platform. When the response is ready, the SDK can call the sdk.respondToHook(payload) function.

Syntax:

sdk.respondToHook(payload)

Parameters:

  • payload – A JSON response payload as follows:
     {
       "taskId":"Dialog task ID",
       "nodeId":"Current node ID in the dialog flow",
       "channel":"Channel name",
       "context": <context object>
    }

Examples
In the following code snippet, if the booking of the cab fails, the event is handled synchronously. Conversely, the booking of the cab is handled asynchronously via a webhook.

function onBookingFailure(requestId) {
    sdk.getSavedData(requestId)
        .then(function(payload) {
            payload.context.successful = false;
            sdk.respondToHook(payload);
        });
}
//call cabBookingService with the requestId. This service is expected to respond asynchronously.
//'requestId' must be passed along all asynchronous flows, to allow the BotKit to respond
// back to the hook once the async process is completed.
function bookTheCab(requestId, cabId, userLoc, destination) {
    cabBookingService(requestId, cabId, userLoc, destination, {
        on_success: onBookingSuccess,
        on_failure: onBookingFailure
    });
}

sdk.registerBot

This function registers the bot and makes callback events available at runtime.
Usage
The BotKit SDK is designed to require you to create one Node.js file for each bot. All callbacks for that bot are maintained in the Node.js file. To register a bot, you must export the following variables and functions as:

module.exports = {
      botId : “xxxxx”,
      botName : ““xxxxx”,
      on_user_message : function(requestId, data, callback) {
           //code goes here
      },
      on_bot_message : function(requestId, data, componentName, callback) {
           //code goes here
      },
     on_webhook : function(requestId, data, componentName, callback) {
           //code goes here
      },
}

Syntax:
To register the bot, call

sdk.registerBot(require('./<Bot Name>.js'));

Parameters:

  • Node.js file for the bot to register

Examples
The following code example shows registration of the bot by botId and botName.

module.exports = {
    botId : botId,
    botName : botName,
    on_user_message : function(requestId, payload, callback) {
        debug('on_user_message');
        onUserMessage(requestId, payload, callback);
    },
    on_bot_message : function(requestId, payload, callback) {
        debug('on_bot_message');
        onBotMessage(requestId, payload, callback);
    },
    on_agent_transfer : function(requestId, payload, callback) { console.log("on agent transfer event");
        debug('on_webhook');
        onAgentTransfer(requestId, payload, callback);
    },
    gethistory: gethistory
};

sdk.saveData

This function saves the data in the Redis in-memory data structure store.
Usage
When you respond to an on_webhook event call asynchronously, you can store the payload in the Redis store by requestId. After completion of your business logic execution, you can read the data using the sdk.getSavedData(requestId)function while preparing the webhook response.
Syntax:

sdk.saveData(requestId, payload)

Parameters:

  • requestId – The requestId from the asynchronous on_webhook event call.
  • payload – A JSON response payload as follows:
     {
       "taskId":"Dialog task ID",
       "nodeId":"Current node ID in the dialog flow",
       "channel":"Channel name",
       "context": <context object>
    }

Examples
In this on_webhook event, the user request to book a cab is saved in the Redis store and the asynchronous processing of the booking begins.

on_webhook : function(requestId, payload, componentId, callback) {
        var context = data.context;
        if (componentId === 'FindNearbyCabs') {
            findCabs()
                .then(function(cabList) {
                    context.cabList = cabList;
                    callback(null, payload);
                });
        } else if (componentName === 'BookTheCab') {
            sdk.saveData(requestId, payload)
                .then(function() {
                    //Assuming the cab booking was successful. A mock service to book the cab can be called here.
                    payload.successful = 'true';
                    payload.bookedCab = context.entities.selectedCab || {};
                    callback(null, payload);
                });
        }
    }

sdk.getSavedData

This function reads the data in the Redis in-memory data structure store.
Usage
When you respond to an on_webhook event call asynchronously, you can store the payload in the Redis store by requestId. After completion of your business logic execution, you can read the data using the sdk.getSavedData(requestId)function while preparing the webhook response.
Syntax:

sdk.getSavedData(requestId, payload)

Parameters:

  • requestId – The requestId from the asynchronous on_webhook event call.
  • payload – A JSON response payload as follows:
     {
       "taskId":"Dialog task ID",
       "nodeId":"Current node ID in the dialog flow",
       "channel":"Channel name",
       "context": <context object>
    }

Examples
In this code example, the sdk.getSavedData function is used to return the selected cab and booking information, or if the asynchronous booking webhook event fails, sends the failure message for the selected booking to the user.

/*/
 * Responds to the webhook asynchronously with the success flag.
 */
function onBookingSuccess(requestId) {
    sdk.getSavedData(requestId)
        .then(function(payload) {
            payload.context.bookedCab = payload.entities.selectedCab;
            payload.context.successful = true;
            sdk.respondToHook(payload);
        });
}
function onBookingFailure(requestId) {
    sdk.getSavedData(requestId)
        .then(function(payload) {
            payload.context.successful = false;
            sdk.respondToHook(payload);
        });
}

sdk.getMessages

This function is used to get the transcript of previous conversations between the Bot and the user. It works similar to the public API Conversation History (see here for Conversation History API)
Usage
Fetches the conversational messages between the bot and user in reverse chronological order. This API supports pagination. You can provide offset/skip and limit to get a certain number of messages at a time.
Syntax:

sdk.getMessages(requestData, callback)

Parameters:

  • requestData – as follows:
    requestData.baseUrl + '/getMessages?' + "skip=" + offset + "&limit=" + limit + "&userId=" + userId+"&channelType"=channel-type

    where

    • stream_id – Bot ID accessible from the Config Settings page of the Bot Builder
    • user_id – The ID of the user whose conversation history to access
    • skip – The number of messages to be skipped.
    • limit – The number of messages to be shown on each page.
    • channelType – Optional, the channel where the conversation was hosted.
  • callback – The function to call at event completion used to send the message history back to the Bots Platform.

Examples

//this example is from the LiveChat.js
//where the gethistory() function uses getMessage() to extract the messages
    var userId = req.query.userId;
    var data = userDataMap[userId];
    if(data) {
        data.limit = 100;
        return sdk.getMessages(data, function(err, resp){
            if(err){
                res.status(400);
                return res.json(err);
            }
            var messages = resp.messages;
            res.status(200);
            return res.json(messages);
        });

sdk.clearAgentSession

This function is used to clear the Agent session and reestablish the conversation with the Bot.
Usage
In an Agent Transfer scenario, when the agent closes the conversation with the user, chat_closed event gets triggered from 3rd party provider. In such situations, this function is invoked to re-establish the conversation with the bot
Syntax:

sdk.clearAgentSession(requestData, callback)

Parameters:

  • requestData – as follows:
    requestData.baseUrl+ '/clearAgentSession/' + requestData.requestId

    where

    • requestId – the session id
  • callback – The function to call at event completion.

Examples

//this example is from the LiveChat.js
//where the function is invoked to clear agent session when the chat is closed by the user
    if (event.type==="chat_closed"){
       console.log('chat_closed');
       delete userResponseDataMap[visitorId];
       delete _map[visitorId];
       sdk.clearAgentSession(data);
    }

Post the release of ver8.0 of the platform, you can add User, Message, and Session Meta Tags. The following would be the syntax for the necessary payload:

metaTags":{
     "userMetaTags":[
        {
            "name":"<string>",
           "value":"<string>"
       }
    ],
   "sessionMetaTags":[
      {
         "name":"<string>",
         "value":"<string>"
      }
    ],
 "messageMetaTags":[
     {
          "name":"<string>",
          "value":"<string>"
     }
  ]
}

sdk.startAgentSession

This function is used to notify the platform that an Agent session has started.
Usage
This function is used when an Agent Transfer is initiated and you want to indicate to the Bot that the agent transfer is in progress. Followed by this, the data object received by BotKit at onMessages(), for instance, would have agent session as true. Further, if the sdk.clearAgentSession is called from BotKit, the platform is notified that agent session is completed and the data object received by the BotKit would have the agent session set to false.
Syntax:

sdk.startAgentSession(requestData, callback)

Parameters:

  • requestData – as follows:
     requestData.baseUrl + '/startAgentSession/' + requestData.requestId

    where

    • requestId – the session id
  • callback – The function to call at event completion.

Examples

//The following function call is used in the LiveChat.js for connectToAgent() function
//Invoking the startAgentSession before invoking the initChat function will ensure that
// the Bot is aware of the Agent transfer in progress
function connectToAgent(requestId, data, cb){
    var formdata = {};
    formdata.licence_id = config.liveagentlicense;
    formdata.welcome_message = "";
    var visitorId = _.get(data, 'channel.channelInfos.from');
    if(!visitorId){
       visitorId = _.get(data, 'channel.from');
      }
    userDataMap[visitorId] = data;
     data.message="An Agent will be assigned to you shortly!!!";
     sdk.sendUserMessage(data, cb);
     sdk.startAgentSession(data, cb);
    formdata.welcome_message = "Link for user Chat history with bot: "+ config.app.url +"/history/index.html?visitorId=" + visitorId;
    return api.initChat(visitorId, formdata)
     .then(function(res){
     _map[visitorId] = {
     secured_session_id: res.secured_session_id,
     visitorId: visitorId,
     last_message_id: 0
    };
   });
 }

Post the release of ver8.0 of the platform, you can add User, Message, and Session Meta Tags. The following would be the syntax for the necessary payload:

metaTags":{
     "userMetaTags":[
        {
            "name":"<string>",
           "value":"<string>"
       }
    ],
   "sessionMetaTags":[
      {
         "name":"<string>",
         "value":"<string>"
      }
    ],
 "messageMetaTags":[
     {
          "name":"<string>",
          "value":"<string>"
     }
  ]
}

sdk.resetBot

This function is used to clear the context and discard the current task silently.
Usage
At run time, during the execution of dialog, if the user input might want to clear the Bot using “reset bot” command. Then the context can be cleared and the task discarded.
Syntax:

sdk.resetBot(requestData, callback)

Parameters:

  • requestData – as follows:
    requestData.resetBotUrl
  • callback – The function to call at event completion.

Examples

on_user_message : function(requestId, data, callback) {
     if (data.message==="reset bot"){
	sdk.resetBot(data, callback);
      }

sdk.extendRequestId

This function is used to extend the time allocated for botKit to send messages to the platform.
Usage
This function is used when an Agent Transfer is initiated and after sometime platform might not be receiving messages. This can be addressed by extending the time allocated for the botKit to send messages to the platform.
Syntax:

sdk.extendRequestId(requestData, callback)

Examples

function onBotMessage(requestId, data, cb) {
    console.log("bot message",JSON.stringify(data));
    var visitorId = _.get(data, 'channel.from');
     event =  schedular.scheduleJob("*/4 * * * *", function() {
                pub.get(visitorId+':data',function(err,reply){
                    if(err) throw err;
                    sdk.extendRequestId(data,cb);
                })
    });
	}
 on_user_message: function(requestId, data, callback) { 
        var visitorId = _.get(data, 'channel.from');
        registerEvent(visitorId, data);
        if(event){
            event.cancel();
        }else{
            console.log(new Date(),'event not found');
        }
        event =  schedular.scheduleJob("*/4 * * * *", function() {
            pub.get(visitorId+':data',function(err,reply){
                if(err) throw err;
                    sdk.extendRequestId(data,callback);
            })
        });

Note: Extending the time will not be effective in case of no active conversation for a period of 15 minutes. An inactive session would cause the agent_transfer mode to be reset irrespective.

sdk.skipBotMessage

This function is used to skip a specific message for a specific business use case.
Usage
At run time, during the execution of dialog, instead of waiting for the BotKit to send a message to proceed, the system will proceed to the next step.

Syntax:

sdk.skipBotMessage(requestData, callback)

Parameters:

  • requestData – data
  • callback – The function to call at event completion.

Examples

if(data.message === "skipBotMessage"){ // condition for skipping a Bot message
	sdk.skipBotMessage(data, cb);
}

Post the release of ver8.0 of the platform, you can add User, Message, and Session Meta Tags. The following would be the syntax for the necessary payload:

metaTags":{
     "userMetaTags":[
        {
            "name":"<string>",
           "value":"<string>"
       }
    ],
   "sessionMetaTags":[
      {
         "name":"<string>",
         "value":"<string>"
      }
    ],
 "messageMetaTags":[
     {
          "name":"<string>",
          "value":"<string>"
     }
  ]
}

sdk.skipUserMessage

This function is used to skip a specific message for a specific business use case.
Usage
At run time, during the execution of dialog, instead of waiting for the BotKit to send a confirmation message to proceed, the system will proceed with the next step.
Syntax:

sdk.skipUserMessage(requestData, callback)

Parameters:

  • requestData – data
  • callback – The function to call at event completion.

Examples

if(data.message === "skipUserMessage"){ // condition for skipping a user message
	sdk.skipUserMessage(data, cb);
}

Post the release of ver8.0 of the platform, you can add User, Message, and Session Meta Tags. The following would be the syntax for the necessary payload:

metaTags":{
     "userMetaTags":[
        {
            "name":"<string>",
           "value":"<string>"
       }
    ],
   "sessionMetaTags":[
      {
         "name":"<string>",
         "value":"<string>"
      }
    ],
 "messageMetaTags":[
     {
          "name":"<string>",
          "value":"<string>"
     }
  ]
}

sdk.closeConversationSession

This function is used to close a conversation session.
Usage
Syntax:

sdk.closeConversationSession(requestData, callback)

Parameters:

  • requestData – data
  • callback – The function to call at event completion.

Examples

if(data.message === "closeConversationSession"){ // condition for skipping a user message
	sdk.closeConversationSession(data, cb);
}

Post the release of ver8.0 of the platform, you can add User, Message, and Session Meta Tags. The following would be the syntax for the necessary payload:

metaTags":{
     "userMetaTags":[
        {
            "name":"<string>",
           "value":"<string>"
       }
    ],
   "sessionMetaTags":[
      {
         "name":"<string>",
         "value":"<string>"
      }
    ],
 "messageMetaTags":[
     {
          "name":"<string>",
          "value":"<string>"
     }
  ]
}