社内運用ChatbotへのフィードバックをGoogle Spreadsheetで受け取る
結論
Chatworkへの通知にフィードバック用のリンクを追加し
Google Spreadsheetで見られるようにしました。
背景
クローズドな環境(社内向けChatwork)でChatbotを運用しています。例えば、
- 定時通知
- 1日のスケジュールの通知
- gitの更新通知
Chatbotは運用すると、役に立っているかどうかフィードバックが欲しいです。
例えばgoogleのコードレビュー用のbotには、「使えないボタン」が存在しているそうです。
レビューについて自動化している部分はあるか?
— ブロッコリー (@nihonbuson) March 7, 2018
Tricorderというコードレビューの自動化はある。
静的解析のベンダーはレポーティングをしがち
botから来たレポートに対して「使えないボタン」が存在している
変更していないコードにはFBが来ないようにしている#JaSST
目的
なるべく簡単な手段で、ボットにフィードバック用のボタンを追加したいです。
そこで、Google Spreadsheet を簡易 Webサーバーとして動かして、手軽にWebHookを受け取る方法 - Qiita を使います。
単純にプラスとマイナスの評価を受け取るためのリンクを作成します。
URLのイメージは
https://script.google.com/feedback?vote=good
です。クエリパラメータでフィードバックの種類を受け取り、スプレッドシートに追記します。
実際のURLは、Google docsが生成するもっと長いURLです。
手段
Web APIとして公開する方法は前述の記事を参考にしてください。
公開するスクリプトは、次の処理を行うGoogle Apps Scriptです。
- GETリクエストに対応
- クエリパラメータの値を取得
- スプレッドシートに追記
実装
// GETリクエストに対する処理
function doGet(request) {
// クエリパラメータを取得
var vote = String(request.parameter.vote)
// スプレッドシートに追記
var ss = SpreadsheetApp.getActive()
var sheet = ss.getActiveSheet();
sheet.appendRow([new Date(), vote]);
// メッセージ表示
var output = ContentService.createTextOutput("フィードバックの送信感謝いたします。");
output.setMimeType(ContentService.MimeType.TEXT);
return output;
}
GETリクエストに対応
前述の記事通りです。
クエリパラメータの取得
ここは前述の記事に記載されていません。
Web Apps | Apps Script | Google Developers を見ると、引数オブジェクトのparameter
プロパティに、クエリパラメーターをパースしたオブジェクトが入っています。これを使います。
String(request.parameter.vote)
スプレッドシートに追記
前述の記事通りです。
メッセージを表示
returnした戻り値が、レスポンスBodyになります。
つまり、ブラウザでリンクを開いた場合、戻り値がページの内容として表示されます。
心ばかりの感謝の気持ちをメッセージとして表示します。
課題
詳細なフィードバック
本実装では
- 送信ユーザの特定
- 詳細な要望のフィードバック
は、行えません。
Googleフォームを作って、メッセージにフォームへのリンクなどを作れば実装できそうです。
忠誠度の高いユーザーが、フォームを使ってくれるかどうかは、やってみないとわかりません。
いたずら防止
Google Spreadsheetの公開権限は、以下の3つです。
- 自分
- 全員
- 全員(匿名を含む)
Googleドキュメントへのログインを強制しない場合は、全員(匿名を含む)
しか選択肢がありません。
またURLは固定で、定期的な変更ができません。(できても、chatbotのメッセージを更新する手間は必要です。)
「リンクのURLをスクリプトで自動的に複数回呼び出す」いたずらは簡単にできます。
不特定多数のユーザー向けに行うには、不適当に思えます。
参考
Author And Source
この問題について(社内運用ChatbotへのフィードバックをGoogle Spreadsheetで受け取る), 我々は、より多くの情報をここで見つけました https://qiita.com/ledsun/items/3061e6dee9941c93f41a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .