済 Googleスプレッドシートのデータを検索する

チャットボットプラスでは、テキストフォームに入力した内容を、Googleスプレッドシートに検索をかけ、必要な情報をチャット上に返すことができます。
GoogleスプレッドシートとはGoogle社が提供している表計算ソフトで、Excelの様に関数を入力したり、グラフを作成できます。またExcelと異なる点としては、同時編集が可能なこと自動保存機能が備わっていることです。大変便利なこのGoogleスプレッドシートとチャットプラスを連携させる方法を、今回ご案内します。
 

このページでは、Googleスプレッドシートに保有している会社名、担当者、電話番号、メールアドレスのリストに、チャットプラスからキーワードを送信し、該当するワードを含む会社情報を返答する手順をご案内します。
 
※分かりやすくするために、以下の条件で設定します。
・キーワードを入力できるテキストフォームは1つ
・送信されたキーワードを会社名、担当者、電話番号、メールアドレス全ての要素で検索する
少しでも一致する箇所が存在した場合、その会社のメールアドレスを担当者発言として返答する

Googleスプレッドシートの準備

APIトークンの取得

(1) 管理画面右上の設定ボタンをクリックします。


(2) 画面左「外部連携」>「API入力」をクリックします。


(3) 画面左「APIトークン発行」をクリックします。


(4) パスワード欄にチャットプラスアカウントのパスワードを入力し、「APIトークン発行」ボタンをクリックします。


(5)「注意!」と書かれたメッセージが表示されるので、内容確認の後「発行」ボタンをクリックします。


(6) 赤字でAPIトークンが表示されるので、コピーしておきます。

 

コードの設置

(1) データが存在するGoogleスプレッドシートを開き、「ツール」>「スクリプトエディタ」をクリックします。


(2)「function myFunction() { }」と書かれたエディタが表示されるので、以下のコードをコピーし、このエディタに上書きしてペーストします。

function doPost(e) {
  var jsonString = e.postData.getDataAsString();
  var data = JSON.parse(jsonString);

  var keyword = data.word;
  var room_id = data.room_id;
  var agent = data.agent;
  var site_id = data.siteId;

  var ss = SpreadsheetApp.getActiveSheet();
  var sheet = ss.getDataRange().getValues();

  var message;
  if (keyword == "") {
    message = "検索ワードを入力してください。";
  } else {
    var lists = [];
    for (var i = 0; i < sheet.length; i++) {
      var word = new RegExp(keyword, 'g');
      var search = word.test(sheet[i]);
      if (search != false) {
        lists.push("\n" + sheet[i][3]);
      }
    }
    if (lists.length == false) {
      message = "”" + keyword + "”に該当する項目はありません。"
    } else {
      message = "キーワード: ”" + keyword + "” に該当する連絡先は" + lists + "\nです。";    //sheet[i][3]がメアドに該当する
    }
  }

  var sendToChat = {
    "to": room_id,
    "agent": agent,
    "messages": [{
      "type": "text",
      "text": message
    }],
    //APIトークン
    "accessToken": "APIトークン",
    "siteId": site_id
  };
  
  var options = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload': JSON.stringify(sendToChat)
  };
  
  UrlFetchApp.fetch('https://app.chatplus.jp/api/v1/send', options);
}



(3) ペーストしたコードの40行目に「"accessToken": "APIトークン"」と書かれたコードがあるので、「APIトークン」という文字を、手順「APIトークンの取得」(6)でコピーしたAPIトークンで上書きします。
※「""」は削除せず、そのまま残します。


 

Googleスプレッドシートに反映

(1) Googleスプレッドシートのメニューから、「公開」>「ウェブアプリケーションとして導入...」をクリックします。


(2) プロジェクト名を変更する様表示されるので、任意のプロジェクト名を入力します。


(3) 以下の画面が表示されるので、「Project version」のプルダウンから「New」を、「Execute the app as」のプルダウンから「Me」を、「Who has access to the app」のプルダウンから「Anyone, even anonymous」を、それぞれクリックして選択します。
※「Project version」のプルダウンで「New」を選択した後、枠内には任意の値を入力します(空欄でも可)


(4)「Deploy」ボタンをクリックします。

場合によっては、下図の画面が表示され、「許可を確認」する必要があります。

その場合、「許可を確認」>「アカウントを選択」>「詳細」>「会社検索に移動」>「許可」をクリックし、Googleスプレッドシートにアクセスすることを許可します。

(5)「Deployが完了」したことを伝える画面が表示されるので、「Current web app URL」枠内のURLをコピーします。


(6)「OK」ボタンをクリックします。

これでGoogleスプレッドシートの準備は完了です。
続いて、チャットボットの準備に移ります。

チャットボットの準備

(1) 管理画面右上の設定ボタンをクリックします。


(2) 画面左「チャット」>「機能」>「チャットボット+」をクリックします。


(3)「パーツ追加」をクリックします。


(4)「パーツ名」「概要」を入力します。
※画面右上のIDの欄は空欄で構いません。チャットボットプラス作成時に自動でIDが割り振られます。


(5)「ルールを追加」ボタンをクリックします。


(6) 表示ルール1つ目のプルダウンから「お客様の発言」をクリックして選択し、2つ目の枠内に「検索」と入力、3つ目のプルダウンから「一致する」をクリックして選択します。


(7) アクションのプルダウンから「テキストフォーム」をクリックして選択します。


(8) 手順(7)下のプルダウンから、「postback(JSON)」をクリックして選択し、「送信先URL」枠内に、上記手順「Googleスプレッドシートに反映」(5)でコピーした「Current web app URL」をペーストします。


(9)「POSTデータにチャット情報を含める」にチェックを入れます。


(10) テキストフォームの「名前」欄に、「word」と入力し、「ラベル」欄、「候補1,候補2,・・・」欄に任意の文字列を入力します。
※ラベルには入力する内容を表すタイトルを入力し、候補には入力例を記入すると、わかりやすいです。


(11)「更新」ボタンをクリックします。


(12) チャットボットプラスのルール一覧から、設定したルールを「ON」にします。
※クリックすると、「ON/OFF」が切り替わります。

動作確認

(1) チャット画面を開き、「検索」の選択肢をクリックします。


(2) (1)の発言を受け、チャットにGoogleスプレッドシートへの、データ検索フォームが表示されます。


(3) 表示されたフォームに、連絡先を知りたい会社の名前等を入力・送信します。
※「山田太郎」という担当者を検索したとき、「山田」「太郎」「山」など部分的に一致すれば、該当するメールアドレスを返答します。


(4) プログラミングが処理し終わるまで数秒お待ちいただくと、画面上に担当者の発言として「キーワード: "〇〇" に該当する連絡先は~~です。」と表示されます。
※複数該当するときは、該当分全て表示されます。

該当する要素がないとき:「"〇〇"に該当する項目はありません。」と表示されます。
未入力で送信した場合:「検索ワードを入力してください」と表示されます。

 

以上が、チャットプラスで入力した内容を、Googleスプレッドシートから検索して、チャット上に返答させる方法です