kintone

kintoneで質問箱を作ってみた

最近、kintone界隈では社内版食べログというのが地味に盛り上がっている。
確かに身内だけで盛り上がりたいネタというのはあるもので、
知ってる人がやっているのは見たいという層がいるのは理解できる。

それを見てふと思ったのは、twitterでよく見かけるあれ、質問箱だ。

kintoneで質問箱を作ろう

これだ!これこそ身内で盛り上がれる、ってか社内で。
このサービス、匿名というのがすばらしくて、
直接だと聞けないことも、匿名ならば社長にだって質問したくなるじゃない!?って。

機能を決めよう

シンプルなものだから、シンプルに作ろうとも思うが、
匿名性は確実にしなければならないのと
シンプルに質問できないといけない。

これ重要。シンプルに見えるものの中身がシンプルとは限らないということだ。

  • 質問をしたい人を選んで、質問を投稿(投稿者は匿名)
  • 質問された人にプロセス管理が飛ぶ
  • 質問された人が答えると通知が行く

こんな感じで作っていくことにしよう。

まずはアプリのデザインから

アプリの見た目はシンプルに。

フィールドは全部で三つ。
フィールド名とフィールドコードはすべてそろえてある。(カスタマイズしやすいように)

プロセス管理を設定しよう

プロセス管理自体は単純だ。
質問前→質問中→回答済という3プロセスのみ。
差し戻しは発生しない。(答えたくない人がいたら今後考えよう笑)

通知を設定しよう

レコードの条件通知を使って、
質問を受けた人に「質問が来ました」通知、回答が来たら全員に「回答しました」通知を送る。

ここまでで基本の作りは終了。

匿名性を確保しよう

問題はここから。
社長に質問をすることもあるわけだから、匿名性は絶対だ。
「あの質問したのお前なんだってな?」なんてことがあってはならぬ…ならぬのだ…。

どこからバレるか

バレる場所をまずは考えよう。

  • 作成者フィールド
  • 変更履歴
  • プロセス履歴

おそらくこの3つだ。この3つをつぶせば、匿名性は保たれる!!

作成者フィールド

これはアプリのアクセス権でばちぼこに制限をかけておくしかない。
作成者フィールドはそもそも用意していなから、バレるとしたら
他の誰かがアプリを編集して作成者フィールドをこっそり追加するパターンだ。
あとはアプリの作成者(自分)が悪さをするぐらいか…ぐへへ。

変更履歴

変更履歴は高度な設定から使用しない、という設定ができる。

レコードのコメントについては運用の仕方次第だが、今回はチェックを外しておく。

プロセス履歴

こいつは大変だ。質問するというボタンを押すと、ボタンを押した人の名前が記録されちまう!!
自動でプロセスを進めるカスタマイズがTipsとしてCDNに紹介されていた。
https://developer.cybozu.io/hc/ja/articles/214639003-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%BF%9D%E5%AD%98%E5%BE%8C%E3%81%AB%E8%87%AA%E5%8B%95%E3%81%A7%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E6%9B%B4%E6%96%B0-

しかーし!これではやはり記録されてしまう…。
違うか。作業者を更新するAPIを叩けばいいのか。

ちょっとプロセス管理を変えて、

3つもプロセスいらなかった。追加したらもう質問中でOK。

そして追加したタイミングで質問したい人を作業者にするカスタマイズ。

(function() {
“use strict”;
//レコード追加画面の保存成功後イベント kintone.events.on(‘app.record.create.submit.success’, function(event) {
//レコード情報取得
var record = event.record;
var respondent = record.質問したい人.value[0].code;
var question = record.質問内容.value;
var answer = record.お答えします.value;
var recordId = record.$id.value;
//レコード更新
var body = {
“app”: 694,
“id”: recordId,
“assignees”: [respondent]
}
kintone.api(kintone.api.url(‘/k/v1/record/assignees’, true), ‘PUT’, body, function(resp) {
//success
console.log(resp);
}, function(error) {
//error
console.log(error);
});
return event; }); })();

完璧。これで匿名だ。

もう少し便利に

もっと便利に使えるようになったらいいな、を実現しておきたい。

通知が来た時に質問内容を見たい

質問した人以外はレコードを開くまで質問内容がわからない。
当然全部目を通したくない人もいるはずだ。
そんな時は質問内容をレコードのタイトルにすればOK!

回答した人が回答完了を押し忘れるのを防止したい

これはさっきのTipsを使って実現できる。
create.submitじゃなくてedit.submitで。

質問したい人以外が勝手に答えるのを防止したい

これ、意外と設定し忘れがち。
プロセス管理の作業者以外が編集するのを防ごう。

everyoneの閲覧チェックも外しておけば、回答くるまでは秘密感でますよ。

完成、使ってもらおう!

ワクワクが止まらないぜ~どんな質問がくるかな?

あ…。