見出し画像

【僕のスマホ活用アイデア#2】GoogleフォームのLINE通知で外出先でも即対応!

スマホを活用して日々の業務を効率化する方法について、自分の体験談をもとに発信する「僕のスマホ活用アイデア」第二弾として、
「Googleフォームの送信内容をLINEで確認する方法」についてご紹介いたします。

本編はより具体的な内容となっており、僕のスマホ活用に関する基本スタンスは以下の記事をご覧ください。

Googleフォームをもっと便利に使うために

Googleフォームは、お問い合わせフォーム、イベントの申込み受付、アンケートなど様々なシーンで活用できる上に、無料で使えるため、多くの方にとって便利な存在となっています。

しかしGoogleフォーム自体がパソコンからしか作成できず、またGoogleフォームの送信内容は、スマホで確認するよりも、パソコンで確認した方が見やすいため、主にパソコンでGoogleフォームを利用することが多いでしょう。

そのため外出先などでは不便です。
そこでスマートフォンの活用が重要になります。

では、Googleフォームを外出先でも便利に使うにはどうすればいいのでしょうか。

漠然な改善案だと、改善策も見つからないので、ここで以下の通り、要件(何を解決するのか)を定義しておきます。

■要件定義

Googleフォームが送信されたら、スマホで簡単に確認できるようにする。その際に、スマホに通知が来る仕様だと、さらに便利。


“Googleフォーム→LINE Notify”構想

Googleフォームの送信内容は、Googleスプレッドシートに連動させて記録することが可能です。
また、Googleスプレッドシートでは、GAS(Google App Script : Excelのマクロのような機能)が使えるので、任意のプログラムを実行することができます。

今回の要件定義を達成するためには、GASを使わない手はありません。
さらにGASを使えば、LINEに通知を送れるため、Googleフォームで送信されたらLINEに通知するGASを作成することにします。

LINE通知と連動することにより、リアルタイムでフォームからの問い合わせを確認でき、その後の迅速な対応が可能になり、お客様からの大切なお問い合わせを見逃すことがなくなるでしょう。

それでは具体的な設定手順について、ご紹介します。

今回参考にさせていただいた記事は、Qiitaに投稿されているぐちみなさんの「Googleフォームの回答内容をLINEで通知する」を参考にさせていただきました。
https://qiita.com/guchimina/items/aa36e27875ae26876d2c


具体的な実装方法

1.LINEグループにLINE Notifyアカウントを招待

LINE Notify(LINE通知API)は、グループに招待して使用するので、通知を送りたいグループを用意します。
もしなければ、1人用のグループを作り、そこにLINE Notifyアカウントを招待してください。

LINE Notifyアカウントを友だちに追加するにはこちら

2.LINE Notifyにアクセスし、APIトークンを取得

こちらからLINE Notifyにアクセスし、LINEでログインします。
そのあと「マイページ」から、「トークンを発行する」を選択し、先ほど用意したグループを選択して、トークンを発行します。

⚠️トークンを忘れないように一時的にコピーしておきましょう

3.送信内容の通知を送りたいGoogleフォームとGoogleスプレッドシートを連携させます

Googleフォームをパソコンから開いて、「回答の確認」の右上にあるスプレッドシートマークを選択して、スプレッドシートと連携します。

詳しくはこちらをご覧ください。

4.先ほど連携したスプレッドシートにGASを設定する

メニューバーの「ツール」>「スクリプトエディタ」を選択し、GASの編集画面に入ります。

デフォルトで記載されているコードを削除して、以下のコードを貼り付け。
(自動保存はされず、Ctrl + SまたはCommand + Sで保存すること)

function GoogleFormToLine(){
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var row = sheet.getLastRow(); 
  var column = sheet.getLastColumn(); 
  var range = sheet.getDataRange(); 
  var message = "";
  for(var i=1;i<=column;i++){
    var item = range.getCell(1, i).getValue(); 
    var value = range.getCell(row, i).getValue(); 
    message += "\n■"+item+"\n"+value; 
  }
  SendToLine(message);
}

function SendToLine(message){
  var token = PropertiesService.getScriptProperties().getProperty('LINE_TOKEN');
  var op =
    {
      "method" : "post",
      "Content-Type" : "application/x-www-form-urlencoded",
      "payload": "message=" + message,
      "headers":{"Authorization" : "Bearer " + token}
    };
  var res = UrlFetchApp.fetch("https://notify-api.line.me/api/notify",op);
  Logger.log(JSON.parse(res.getContentText()));
}

左側のメニューから、歯車⚙️のマークを選択し、
その画面内の「プロジェクトのプロパティ」>「スプリクト」の欄に、以下のように記載する。

プロパティ   | 値
LINE_TOKEN |(先ほどコピペしたトークン)

次に左のメニューより、時計🕐のマークを選択して、トリガーの管理画面を開きます。
そこで、以下のように設定します。

実行する関数を選択:GoogleFormToline
実行するデプロイを選択:Head
イベントのソースを選択:スプレッドシートから
イベントの種類を選択:フォーム送信時
エラー通知設定:※任意※

最後に保存をクリックする。
ここで、Googleアカウントへのログイン承認の画面でますが、
「安全なページに戻る」ではなく「詳細」をクリックし、「安全でないページに移動」を選択して、Googleアカウントへのアクセスを許可してください。

最後に動作確認して、無事LINEに通知が届けばOKです。


長くなりましたが、参考になれば嬉しいです。

よろしければ是非サポートお願いします!いただいたサポートは毎日のインプットのために使わせていただきます