自動通知で業務効率UP!Googleフォームの回答がLINEで通知される!設定方法を丁寧に解説!作業がスムーズになる便利テクニック

業務効率化
スポンサーリンク
新米くん
新米くん

ジョータローさーん・・・

ジョータロー
ジョータロー

あはは。なんだその顔は!?

スカムが飛び散って口にでも入ったか?

あれ最悪だよなw

新米くん
新米くん

げぇ!!口に入ったことあるんすか!?

ちょっと近寄らないでもらえますかね・・・

新米くん
新米くん

・・・ご・・・ごめんなさい・・・

新米くん
新米くん

QRコードとGoogleフォームで、お客さんから汲み取り清掃の回答をもらえるようになったのですが、今度は僕が回答のチェックが遅れたり、忘れたりして、お客さんから汲み取り業者さんから連絡がない!!って怒られたんです・・・

新米くん
新米くん

色々な業務があるから、回答を確認するのが面倒臭いデス・・・

ジョータロー
ジョータロー

じゃぁ、お客さんからの回答がLINEで確認できたらどう?

LINEなら普段から使ってるだろ?

新米くん
新米くん

そうですね。

業務連絡でもLINE使ってますから

LINEで確認できると便利です。

ジョータロー
ジョータロー

じゃぁ、チェックを忘れないようにLINEに通知が来るようにしようか。

こんにちは、浄化槽管理士歴10年 浄化槽管理士の浄島ジョータローです。

今回は、Googleフォームの回答をLINEに通知させる方法について解説します。

  • 「いちいち回答をチェックするのが面倒…。」
  • 「メールボックスを確認するのを忘れてしまう…。」
  • 「回答をもらったのに清掃の手配を忘れて怒られた…( ノД`)シクシク」

など、

点検業務が忙しくて、チェックする業務が増えてしまうと効率化しきれない場合がありますよね。

そこで今回は、Googleフォームの回答をLINEに通知させる方法について解説します。

もし、通常業務でLINEを活用していれば、チェック漏れを減らせます。

ジョータロー
ジョータロー

そんじゃ解説するぞ。

今回の記事でわかること
  • Googleフォームの回答をLINEに通知させる設定方法
  • 設定に必要なプログラムコードを公開
  • LINE Notifyのアクセストークンの取得方法
  • プログラムの動作テストする方法
  • LINE通知からの運用方法
新米くん
新米くん

なんか難しそうですね・・・

もう吐きそうです。

ジョータロー
ジョータロー

大丈夫だよ。

丁寧に丁寧に解説するから安心して。

Googleフォームの回答をLINEに通知させる方法

Googleフォームの回答をスプレットシートで表示させる。

ジョータロー
ジョータロー

まずは、前回作成した汲み取り清掃の回答フォームをパソコンで開いてくれ。

引用:『Google Forms

新米くん
新米くん

開きました。

ジョータロー
ジョータロー

Googleフォームにアクセスしたら「フォームに移動」を押す。

ジョータロー
ジョータロー

無題のフォームをクリックする。

ジョータロー
ジョータロー

『回答』をクリックする。

ジョータロー
ジョータロー

『スプレットシートにリンク』をクリックする。

ジョータロー
ジョータロー

『作成』をクリックする。

ジョータロー
ジョータロー

『スプレットシートで表示』をクリックする。

ジョータロー
ジョータロー

第一段階はこれでOK。

お客様がフォームで回答すると、

このスプレットシートに情報が反映されるようになった。

拡張機能からGAS(Google Apps Script)を準備する。

ジョータロー
ジョータロー

次は、プログラムコードを準備するぞ。

新米くん
新米くん

ぷ、ぷろぐにゃむこーど?

そんなの無理ですよぉ

ジョータロー
ジョータロー

いやいや。簡単簡単。

コピペだけだって。

ジョータロー
ジョータロー

『拡張機能』をクリックするだろ。

ジョータロー
ジョータロー

『Apps Script』をクリックする。

ジョータロー
ジョータロー

ここにプログラムコード書くわけさ。

新米くん
新米くん

へー。カタカナですよね?

とりあえず『オネガイダカラウゴイテ』って書きますね。

ジョータロー
ジョータロー

余計な事しなくていーから。

下記をコピペして。

GAS(Google Apps Script)にプログラムコードをコピペする。

Googleフォームの回答をLINEに通知させるプログラムコード

// LINE Notifyのアクセストークン
var LINE_NOTIFY_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

// スプレッドシートIDとシート名を指定
var SPREADSHEET_ID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
var SHEET_NAME = 'フォームの回答 1';

function checkSpreadsheetAndSendLineNotification() {
  // スプレッドシートを開く
  var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);

  // A2セルのタイムスタンプを取得
  var timestamp = sheet.getRange('A2').getValue();

  // タイムスタンプを指定したフォーマットに変換
  var formattedDate = Utilities.formatDate(new Date(timestamp), Session.getScriptTimeZone(), 'yyyy/MM/dd');

  // 通知メッセージを作成
  var message = '' + formattedDate + '\n\n';

  // A2:D10のデータを取得し、フォーマットされたメッセージに追加
  var range = sheet.getRange('A2:D10');
  var values = range.getValues();
  message += 'データ内容:\n';
  message += getDataAsString(values, 'yyyy/MM/dd HH:mm'); // データ内容を指定フォーマットで取得して追加

  // データが空でない場合のみLINEに通知を送信し、行を削除
  if (values.some(row => row.some(cell => cell !== ''))) {
    sendLineNotification(message);
    deleteRowsWithData(sheet, range); // データがある行を削除
  }
}

function getDataAsString(values, dateFormat) {
  var message = '';
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      if (values[i][j] instanceof Date) {
        message += Utilities.formatDate(values[i][j], Session.getScriptTimeZone(), dateFormat) + '\t';
      } else {
        message += values[i][j] + '\t';
      }
    }
    message += '\n';
  }
  return message;
}

function sendLineNotification(message) {
  var options = {
    'method' : 'post',
    'headers': {
      'Authorization': 'Bearer ' + LINE_NOTIFY_TOKEN
    },
    'payload' : {
      'message': message
    }
  };

  UrlFetchApp.fetch('https://notify-api.line.me/api/notify', options);
}

function deleteRowsWithData(sheet, range) {
  var numRows = range.getNumRows();
  var rowsToDelete = [];

  // データがある行を特定し、削除対象の行番号を配列に追加する
  for (var i = 0; i < numRows; i++) {
    var rowData = range.getValues()[i];
    var isEmpty = rowData.every(cell => cell === '');
    if (!isEmpty) {
      rowsToDelete.push(range.getRow() + i);
    }
  }

  // 削除対象の行を逆順にソートして削除(逆順にすることで、行を削除してもインデックスが変わらないようにする)
  rowsToDelete.sort(function(a, b) {
    return b - a;
  });

  rowsToDelete.forEach(function(row) {
    sheet.deleteRow(row);
  });
}
ジョータロー
ジョータロー

キーボードの Ctrl を押しながら

A を押すとコードが全部選択できるぞ。

新米くん
新米くん

コピペくらいなら僕にもできます・・・

新米くん
新米くん

こ、これでいいでしょうか?

ジョータロー
ジョータロー

完璧だな。

『プロジェクトを保存』をクリックして。

スプレッドシートIDを指定する。

ジョータロー
ジョータロー

次は、さっきのスプレットシートに戻ろうか。

ジョータロー
ジョータロー

画面のURLから赤枠の部分のIDをコピーして。

https://・・・/d/ 1gznAxxxxxxxxxxxxxxxxxxxxxxxxxxxxTQk /edit/・・・

黄色のマーカー部分がスプレットシートのIDになります。

ジョータロー
ジョータロー

GASのプログラムコードに貼り付ける。

// スプレッドシートIDとシート名を指定

var SPREADSHEET_ID = ‘1gznAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTQk‘;

↑ この部分にスプレットシートのURLからコピーしたIDを貼り付けます。

新米くん
新米くん

で、できました。

ジョータロー
ジョータロー

『プロジェクトを保存』をクリックして保存しよう。

次はLINEの準備だ。

あとちょっとだから頑張って。

LINE トークルームを作成する

ジョータロー
ジョータロー

トークタブを開き、右上の『吹き出しマーク』をタップ。

ジョータロー
ジョータロー

『グループ』をタップ。

ジョータロー
ジョータロー

友だちは選択しません。

『次へ』をタップ。

ジョータロー
ジョータロー

グループ名を入力します。

例えば『清掃通知』とします。

ジョータロー
ジョータロー

アイコンを好みの画像に変更します。

最後に画面右上の『作成』をタップ。

LINEに清掃通知用のグループを準備できました。

LINE Notifyのアクセストークンの取得方法

LINE Notify 公式サイトにアクセスする。

(引用:LINE Notify 公式サイト

LINE Notify 公式サイトのログインページを開く。

LINEアカウントでログインする必要があります。
事前にLINEアカウントの準備をお願いします。

ジョータロー
ジョータロー

『ログイン』をクリック

QRコードでログインする。

ジョータロー
ジョータロー

『QRコードログイン』をクリック

スマホのLINEでQRコードをスキャンする。

ジョータロー
ジョータロー

スマホのLINEを起動させて、

QRコードリーダーのアイコンをタップ。

ジョータロー
ジョータロー

『ログイン』をタップして。

ジョータロー
ジョータロー

本人確認のための認証番号を入力します。

認証番号はパソコンの画面に表示されています。

ジョータロー
ジョータロー

パソコンの画面に表示された番号を

スマホのLINEに入力します。

ジョータロー
ジョータロー

LINE Notify 公式サイトにログインできたぞ。

アクセストークンを発行する

ジョータロー
ジョータロー

画面上部の『マイページ』をクリックします。

ジョータロー
ジョータロー

マイページに移動後、アクセストークンの発行(開発者向け)

『トークンを発行する』ボタンをクリックします。

「トークン名」に、通知内容に関連する名前を入力します。例:清掃通知

これがLINE Notify上で表示される名前になります。

通知を送信するトークルームを選びます。

先ほど清掃通知用に作成したグループをクリックして選択。

『発行する』ボタンをクリック。

アクセストークンを保存する。

アクセストークンが表示されるので、これをコピーします。

このトークンは後で確認できないため、必ずメモしておいてください。

ジョータロー
ジョータロー

重要だから繰り返すぞ。

このトークンは後で確認できないため、必ずメモしておいてください。

このトークンは後で確認できないため、必ずメモしておいてください。

ジョータロー
ジョータロー

LINE Notifyの設定はこれでOKだ。

GAS(Google Apps Script)にアクセストークンをコピペする。

LINE Notify で発行したアクセストークンをGASのプログラムコードに貼り付けます。

『プロジェクトを保存』をクリックして保存します。

ジョータロー
ジョータロー

これでプログラムコードは完成だ。

新米くん
新米くん

プログラムが動く前に、僕が壊れそうです…

LINEグループにLINE Notifyを招待する

ジョータロー
ジョータロー

さぁ最後の仕上げだぞ。

スマホでLINEを開こう。

ジョータロー
ジョータロー

清掃通知のグループをタップ。

ジョータロー
ジョータロー

トーク画面を開いて、『 ≡ 』をタップ。

ジョータロー
ジョータロー

『招待』をタップ。

ジョータロー
ジョータロー

LINE Notifyを選択し、右上の『招待』をタップ。

ジョータロー
ジョータロー

よし。

LINEはこれで完璧!

新米くん
新米くん

・・・そろそろ限界です。

プログラムの動作テスト

ジョータロー
ジョータロー

ちゃんとLINEに通知が届くかテストしてみようか。

あなたのフォームからテスト回答送信します。

ジョータロー
ジョータロー

作成したフォームにアクセスして。

新米くん
新米くん

どうやってアクセスするんでしたっけ?

ジョータロー
ジョータロー

ここをクリックだ。

画面右側上部にある『目』のアイコンをクリックしてプレビューから開けます。

フォームが開けたら、回答項目を入力して『送信』ボタンを押します。

3回ほど繰り返してテスト回答します。

スプレットシートで回答状況を確認してみる。

ジョータロー
ジョータロー

スプレットシートにも回答が反映されているね。

GASでプログラムを実行する。

ジョータロー
ジョータロー

赤枠の『実行』をクリックして。

新米くん
新米くん

警告ってことは…まだギリセーフですね・・・

ジョータロー
ジョータロー

『権限を確認』をクリックして。

権限を承認する。

あなたのGoogleアカウントを選択します。

新米くん
新米くん

あっ、三角のマーク出た!そろそろ爆発します!

ジョータロー
ジョータロー

赤枠の『詳細』をクリックすれば平気。

新米くん
新米くん

あ、安全ではないページだと・・・?

ジョータロー
ジョータロー

大丈夫だから。

『無題のプロジェクト(安全ではないページ)に移動』をクリック

ジョータロー
ジョータロー

『許可』をクリックして。

GASでプログラムをもう一度実行する。

ジョータロー
ジョータロー

『実行』をクリックしてみな。

新米くん
新米くん

トゥルリンッ!

ジョータロー
ジョータロー

スマホにLINE通知が来たみたいだね。

LINE開いて確認してみ。

新米くん
新米くん

あ!本当に届いてます!

まとめ

ジョータロー
ジョータロー

仕事でもLINEを使っているなら、

この方法は便利だと思うので試してみてください。

今回は、Googleフォームの回答をLINEに通知させる方法について解説しました。

この記事が少しでもあなたの業務効率化のお役に立てれば嬉しいです。

もしこの記事が参考になった、良かったと思っていただけたら、ぜひ他の方にもシェアしていただけると幸いです。どうぞよろしくお願いいたします。

以上、ジョータローでした!

今回の記事でご紹介した LINE Notifyが2025年3月31日にサービスが終了となります。代替する方法が知りたいというご要望が多ければ記事にしたいと思います。お問い合わせフォームからご連絡くだいさい。

コメント

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