Googleフォームの回答をkintoneに連携する

Googleフォームの回答をkintoneに連携する

アンケートや問い合わせ用のフォームを簡単に作成できるGoogleフォームの回答結果を、より効率良く管理するために、kintoneへ連携しています。 kintoneに連携することで、その後の集計やアクションなどをスムーズに行い、業務を効率化できますので、kintoneに連携するのはオススメです。
「カワリニ」編集部

問い合わせ用のフォームと回答を保存するkintoneアプリを作成する

今回は、問い合わせ用のフォームを作成し、その回答をkintoneに保存してみます。

準備するものは以下の通りです。

  • kintoneアプリ
  • 問い合わせ用Googleフォーム
  • kintone連携用GASプログラム

kintoneでアプリを作成する

まず、kintone側にアプリを作成します。

問い合わせ管理用には、kintoneアプリストアに「問い合わせ管理」というアプリがあったので、それを流用し、以下のようなアプリを作成しました。

kintoneアプリ

この時、各項目のフィールドコードはフィールド名と同じものを設定しておきます。

(例)
会社名のフィールドコードは「会社名」

また、受付日時と対応状況は初期値を設定して、Googleフォームからの連携対象外とします。

APIトークンの設定

外部のアプリからkintoneに連携するためには、APIトークンというものが必要です。

アプリの設定画面を開き、「APIトークン」をクリックします。

kintoneアプリの設定

APIトークンの画面が開くので、「生成する」ボタンをクリックします。

kintoneのAPIトークン

APIトークンが追加されます。

kintoneのAPIトークン

Googleフォームから連携するには、アクセス権の「レコード追加」にチェックを入れ、保存ボタンをクリックします。

レコード追加のアクセス権

アプリの設定画面に戻るので、「アプリを更新」ボタンをクリックします。

アプリを更新

ここまでで、kintoneアプリの作成が完了です。

問い合わせ用のGoogleフォームを作成する

続いて、Googleフォームの作成です。

今回は下記のようなフォームを作成しました。

Googleフォーム

kintone連携用のGASプログラムを作成する

Googleフォーム右上の…ボタンから、「スクリプトエディタ」を選択します。

エディタが開くので、以下のようにコードを入力します。

function registerAnswer(e){
  // postデータ
  var postRecord = {};
  
  // 入力データをJSON形式に変換
  var items = e.response.getItemResponses();
  for (var index = 0; index < items.length; index++) {
    var item = items[index];
    var question = item.getItem().getTitle();
    var answer = item.getResponse();

    if (question == "お名前") {
      // Googleフォームとkintoneで項目名が違うものは、項目名をkintoneに合わせて連携
      postRecord["ご担当者名"] = {"value" : answer};
    } else {
      // お名前以外は項目名が同じなので、そのまま連携
      postRecord[question] = {"value" : answer};
    }
  }
  postRecord["対応担当者"] = {"value" : [{"code": "[ここに担当者として設定するメンバーのメールアドレスを入力する]"}]};
  
  // 送信先URL
  var urlPost = "https://[ここにkintoneのURLを入力する]/k/v1/record.json";
  // トークン
  var apiToken = "[ここにAPIトークンを入力する]";
  // アプリID
  var appId = [ここにアプリのIDを入力する];

  var postData = {
    "app": appId,
    "record": postRecord
  };
  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "X-Cybozu-API-Token": apiToken
    },
    "payload": JSON.stringify(postData)
  };

  // kintoneへの登録
  UrlFetchApp.fetch(urlPost, options);
}

プログラムの内容

kintoneに連携するために以下の内容を設定します。

  • 20行目:担当者として設定するメンバーのメールアドレスを入力
    今回のkintoneアプリでは、「対応担当者」という項目でユーザー選択を使用しています。
    ユーザー選択の項目に値を登録する際には、対象者のメールアドレスをkintoneに連携します。
  • 23行目:連携先となるkintoneのURLを入力
    kintoneのURLとは、以下のようなログインページのURLの赤字部分です。
    (例)ログインページURL
    https://xxxxxxx.cybozu.com/login
  • 25行目:APIトークンを入力
    kintoneアプリを作成した時に生成したトークンを入力します。
  • 27行目:アプリのIDを入力
    kintoneアプリを開くと、URLが以下の形式になっています。
    https://xxxxxxx.cybozu.com/k/40/
    URLの末尾にある数字がアプリのIDです。

プログラムの実行

作成したプログラムを実行するには、エディタの画面上部のツールバーから「実行」をクリックします。
この時、実行する権限の承認確認が表示されると思いますので、承認してください。

GASの実行

通常のGASプログラムであれば、これで実行できるのですが、Googleフォーム回答時のプログラムの場合は、以下のようにエラーとなります。

GASの実行でエラー

このGASプログラムには関数の引数が存在していて、Googleフォーム回答時に引数が設定されるためです。
実行するには、Googleフォーム回答時にプログラムを実行するように設定する必要があります。

Googleフォーム回答時にkintoneに連携するように設定する

フォーム回答時に上記のプログラムを実行するには、トリガーを設定します。

エディタの画面上部のツールバーから「現在のプロジェクトのトリガー」をクリックします。
編集メニュー→「現在のプロジェクトのトリガー」を選択するのでも大丈夫です。

GASのトリガー

GASのトリガー設定画面が開くので、右下の「トリガーを追加」ボタンをクリックします。

GASのトリガー設定

以下のように選択し、「保存」ボタンをクリックします。

  • 実行する関数を選択:registerAnswer(上記のプログラムで定義した関数)
  • 実行するデプロイを選択:Head
  • イベントのソースを選択:フォームから
  • イベントの種類を選択:フォーム送信時

GASのトリガーを追加

追加が完了すると、以下のように表示されます。

GASのトリガーが追加完了

ここまでで、準備が完了です。

実際にGoogleフォームから回答する

それでは実際にフォームから回答してみます。

例として、以下のように入力して、「送信」ボタンをクリックします。

Googleフォームで回答を送信

送信が完了したら、kintoneアプリの画面を見てみます。
以下のように、Googleフォームで入力した内容が登録されています。
※受付日時と対応状況は初期値を設定しているので、Googleフォームからの連携対象外としています

Googleフォームで入力した内容がkintoneに登録される

もし、kintoneに登録されていない場合はエラーが発生している可能性があるので、確認してみてください。

確認するには、先ほどトリガーを設定した画面の左サイドメニューから、「実行数」メニューを選択します。
ここでは、GASプログラムを実行した結果を一覧で確認できます。

GASの実行数メニュー

一覧の一番上に、実行した結果が表示されると思います。

ステータスが「失敗しました」となっている場合は、エラーが発生しているので内容を確認してみてください。

Googleフォームの回答をkintoneに連携することで、情報を効率良く管理する

Googleフォームの回答をkintoneに連携することができました。

kintoneに連携することで、情報の管理や集計、その後のアクションの実行など、業務を効率化しやすくなると思いますので、ぜひGoogleフォームとkintoneの連携を行ってみてください。

 

ギルドプロジェクトではSaaSの導入や、マニュアルの作成、決裁者への意思決定の手助けなどの業務効率化を代行する「カワリニ」というサービス展開しております。
問い合わせは無料で対応させていただいております。
社内SEがおらず専門ではない方がこういった作業をされているような場合や、外部に委託したかった等お気軽にお問い合わせください。

カワリニに相談する