Rocket.ChatとENOKIを連携しよう

 2021.08.27  三和コムテック

本記事は『Rocket.Chat』と株式会社エノキ様(2021年10月1日にアイフォーカス・ネットワーク株式会社より社名変更)が提供している会話プラットフォーム『ENOKI』との連携方法のご紹介となります。
『ENOKI』と連携することで簡単なQA対応を自動化することができ、応答の迅速化、工数削減、などが期待できます。

本記事による連携設定にて以下の利用が可能となります。

  • Rocket.Chatワークスペース内でのENOKIとの対話

ENOKIとは

ENOKIは、CSVファイルによるデータ連携などにより既存のFAQデータを活用することで短期間での運用開始を可能とした、企業向けの会話プラットフォームを提供しています。
顧客との会話によるコミュニケーションのデジタル化に貢献するAIチャットボットとして、状況に応じて最適なパフォーマンスを得るために複数のAIエンジンから構成されたハイブリットなAIエンジンを持ち、またENOKI独自のデータ構造によりシナリオの作成も不要となっています。

ENOKIの詳細はこちら

新しい着信Webhookを作成する

  1. 管理者用パネルを開きます。
  2. パネル左側にある一覧から、「サービス連携」をクリックします。
  3. 表示されたWebhook一覧画面の右上にある「+New」ボタンをクリックします。
  4. 左上のタブから「Outgoing」を選択し、表示される項目を以下のように設定していきます。
  • イベントトリガーは『メッセージが送信されました』を選択します。
  • 着信Webhookの設定を有効にするため有効のトグルボタンをオンにします。

Rocket.ChatとENOKIを連携しよう1

  • 名前では作成中の着信Webhookに任意の名前を設定します。
  • チャンネルではENOKIと対話を行うRocket.Chatワークスペース上のチャンネルを設定します。
    チャンネル名の前に"#"をつける必要があります。

Rocket.ChatとENOKIを連携しよう2

  • URLsには連携先となるENOKIが提供しているAPIエンドポイントを設定します。
  • 投稿ユーザーにはRocket.Chatワークスぺ―ス上に存在する任意のユーザー名を設定します。
Rocket.ChatとENOKIを連携しよう3
  • スクリプトを有効にするのトグルボタンをオンにします。
    Scriptに以下のコードを設定します。

 

class Script {
 prepare_outgoing_request({ request }) {
  if (request.data.text == 'はい') {
   request.data.text= '@@yes';
  } else if (request.data.text == 'いいえ') {
   request.data.text= '@@no';
  } else if (request.data.text == '別の質問') {
   request.data.text = 'reset';
  } else {
  }
  paramtext = encodeURIComponent(request.data.text);
  //botによる投稿を除外
  if (request.data.bot) {
   return { };
  } else {
   //ENOKIへパラメータを送信
   return {
    url: request.url + '?cuid=' + request.data.user_id + '&text=..' + paramtext + '&version=16'
   };
  }
 }
 //ENOKIからのレスポンスに対する処理
 process_outgoing_response({ request, response }) {
  let content = {};
  let textItem = "";
  let title = response.content.tts.ttsItem;
  let enter_msg = "";
  //メッセージの抽出
  for (const elem of title) {
   for (const elem2 of elem["text"]) {
    if (elem2.includes("{")) {
     const enter_msg2 = JSON.parse(elem2);
     enter_msg = enter_msg2.button;
    } else if (elem2.includes("<")) {
    } else {
     textItem = textItem + elem2 +"\n";
    }
   }
  }
  content.text = textItem;
  let btn = response.content.recommends.hint;
  let counter = 0;
  let b_counter = 0;
  if (enter_msg.length > 0) {
   content.attachments = [ {"title": "選択肢", "actions": [ {"type": "button", "text" : "text", "msg" : "text", "msg_in_chat_window" : true} ] } ];
   for (const enter_btn of enter_msg) {
    content.attachments[0].actions[b_counter] = {"type": "button", "text" : enter_btn["label"], "msg" : enter_btn["label"], "msg_in_chat_window" : true };
    b_counter += 1;
   }
  } else {
  }
  //回答に選択肢を含む場合の処理
  if (btn.length > 0) {
   content.attachments = [ {"title": "選択肢", "actions": [ {"type": "button", "text" : "text", "msg" : "text", "msg_in_chat_window" : true} ] } ];
   for (const name of btn) {
    content.attachments[0].actions[counter] = {"type": "button", "text" : name["title"], "msg" : name["title"], "msg_in_chat_window" : true };
    counter += 1;
   }
  } else {
   if (textItem.includes("問題は解決しましたか?")) {
     content.attachments = [ {"title": "フィードバック", "actions": [ {"type": "button", "text" : "はい", "msg" : "はい", "msg_in_chat_window" : true} ,{"type": "button", "text" : "いいえ", "msg" : "いいえ", "msg_in_chat_window" : true} ,{"type": "button", "text" : "別の質問", "msg" : "別の質問", "msg_in_chat_window" : true} ] } ];
   } else {
   }
  }
  return {
   content: content
  };
 }
}

Rocket.ChatとENOKIを連携しよう4

 

各項目の設定完了後、「保存」をクリックします。



連携の設定は以上となります。
こちらの設定を行うことで、Rocket.Chatのワークスぺ―スの連携チャンネル上で以下のようなENOKIチャットボットとの対話が可能となります。

Rocket.ChatとENOKIを連携しよう5

本製品の詳細は製品ページまで。
Rocket.ChatのFAQページもございます。

お問合せについては、こちらよりお願いいたします

Rocket.Chatソリューションカタログ

RECENT POST「Rocket.Chat」の最新記事


Rocket.Chat

閉域網のビジネスチャットとは?導入するメリット・デメリットを解説

Rocket.Chat

自治体でビジネスチャットの導入が増えている理由とは?導入するメリット

Rocket.Chat

ビジネスチャットのセキュリティリスクは? 安全性を高める対策も解説

Rocket.Chat

ビジネスチャットは情報漏洩やアカウント乗っ取りなどのリスクは大丈夫?

Rocket.ChatとENOKIを連携しよう

PAGETOP