[kintone]GoogleFormsのアンケートが返ってきたことをお知らせするアプリ

GoogleForms

GoogleFormsがkintoneに自動反映されたらいいのに…

お客様との意見集めや申し込みフォームとして、GoogleFormsを使うことがあると思います。

GoogleFormsについての説明は割愛します。
簡単に言うと、Google関連クラウドサービスの1つで、無料でアンケートや申し込みフォームが作れます。

ある程度の数の回答が集まると、これがkintoneに自動反映されていれば、kintoneでデータを扱うことができるし、ほかのアプリ情報ともくっつけられるし、集計もできるしムフフフ…となってきます。

有料プラグインのフォーム設置も考えるけど

例えば、有料プラグインでkintoneの入力フォームを作ることも可能ですが、それは有料なのです。たくさん使うのであれば非常に便利で有効ですが、
「たま~にしかアンケート設置しないし、有料でやるほどでもないんだよね~」
というライトな使い方の場合は、無料で作成できるGoogleFormsが選択肢に入ってきます。

kintoneとGoogleFomrsの自動連携

kintoneとGoogleFomrsの連携については、Cybozu developer networkでも取り上げられています。

https://developer.cybozu.io/hc/ja/articles/115003856483-Google-%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%A8kintone%E3%82%92%E9%80%A3%E6%90%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-

この方法では、GoogleFormsの入力項目ごとに、kintoneアプリにフィールドを用意する必要があります。つまり、回答項目が増えたり、回答形式が変わったり(文字列→ラジオボタンとか)したときは、その都度、kintone側のアプリのフィールド項目を調整する必要があります。
また、別のアンケートを用意したときは、別の専用アプリを作成する必要もあります。

ハッキリ言って、非常に面倒です!

できたらさ~、どんなアンケートでも、どんな回答項目でも、1つのkintoneアプリで管理したいじゃん?
それでもって、GoogleFormsの回答結果をkintoneに自動で取り込みたいじゃん?
自動で取り込みができれば、kintoneのお知らせ通知もされるからGoogleFormsわざわざ見に行かなくてもいいじゃん?

全部同じkintoneアプリで受け取っちゃえ!

kintoneアプリ最高の形で受け取るとすれば、上記サンプルであったように、回答項目1つ1つがkintoneのフィールド1つ1つになっていることが望ましいです。そのまま集計できますしね。
ですが、運用時の手間を考えて、その形はちょっと止めておきまして、妥協案を考えました。

それが、
どんな回答も1つの複数行文字列で一括で受け取ってしまえ~~~~~
という荒業となります。

具体的な書き方は以下となります。
あ、コードはあくまでも参考程度にしてくださいね。

function getFormResponse(e) {
    'use strict';
    var itemResponses = e.response.getItemResponses();//アンケートの回答を取得

    //いっそのこと、全部複数行文字列で回答をもらう
    var retMoji = "質問と回答:";

    for (var i = 0; i < itemResponses.length; i++) {
        var itemResponse = itemResponses[i];
        
        retMoji += itemResponse.getItem().getTitle();

        retMoji += "/";

        retMoji += itemResponse.getResponse();

        retMoji += "\n";
    }

    Logger.log('情報:%s',retMoji);


    var records = '[';
    records += Utilities.formatString('{"Email": { "value": "%s" }', e.response.getRespondentEmail());//回答者のEmail
    records += Utilities.formatString(',"質問と回答" : { "value": "%s" }', retMoji);
    records += '}]';
    Logger.log('Response JSON is "%s"', records);
    return records;
}

kintone側はこんな感じ

フィールドコードは表示と同じ(Emailなら”Email”、質問と回答なら”質問と回答”)としています

kintoneと連携するためにはGoogleForms側のスクリプト設定が必要ですが、ここでは省略します。冒頭にご紹介したサンプルをご覧ください。(要望があれば改めて解説します!)

この状態で、GoogleFormsの回答をした結果

回答結果。すべての質問と回答が1つの塊で保存される

回答項目1つ1つに分かれてはいないものの、この形だと実質すべてのアンケートや申し込みフォームのお知らせアプリは1つで済むことになります。
とりあえず自動で情報だけ受け取っておいて、このあとkintone上でどう扱うかを考えるのもアリだと思いますし、まずは回答があったことをお知らせするアプリとして使っておいて、実際の集計用にはGoogleFormsのCSV出力機能を使って、別のkintoneアプリを用意するのも1つの方法ですね。

最高の形から少しグレードを下げることによって、実運用が格段に楽になることがあります。
ついつい、こうしたい!の気持ちが強いと突き進んでしまいがちですが、一歩引いて考えてみると、意外とスルッと解決することもありますので、肩の力を抜いて、ラク~に考えてみましょう(*‘ω‘ *)

今回はkintoneとGoogleForms連携のお話でした~(^_^)/

コメント

タイトルとURLをコピーしました