Googleフォームの利点と課題
Googleフォームは、
・無料で使える
・簡単に作れる
・スプレッドシートに自動で回答が記録され最新の情報をグループで共有できる
…という理由から、アンケート、イベント申し込み、問い合わせフォームなど、あらゆる場面で使われてきています。
ただし一つの大きな弱点があります。
それは、フォームに入力があっても通知が自動で届かないということ。
たとえばメールフォームなら、送信された瞬間にメールが届くので気づきやすいですが、Googleフォームではそれがありません。
普通にGoogleフォームとGoogleスプレッドシートを連携するだけでは「気づいたら申し込みが来ていた…」という心配があります。
今回やりたかったこと
- Googleフォームに誰かが入力すると…
- スプレッドシートに自動で記録される
- さらに Gmail以外のメールアドレス宛て に通知メールを自動送信!
Apps Script を利用します
スクリプトを書くと聞くと難しそうですが、意外と簡単でした!
スプレッドシートの「拡張機能」から「Apps Script」をクリック
以下のコードを書きます
function sendNotification(e) {
// 通知先のメールアドレス(Gmail以外でもOK)
var email = "ここにメールアドレスを入力";
// 回答内容を改行区切りで整形
var responses = e.values.join('\n');
// 件名と本文
var subject = "【フォーム回答通知】新しい回答が届きました";
var body = "以下の内容で回答が届きました:\n\n" + responses;
// メール送信
MailApp.sendEmail(email, subject, body);
}
トリガーの設定が肝!
この関数は手動ではなく「フォーム送信時」に自動実行されてほしいので、次の手順でトリガーを設定します。
1. スクリプトエディタを開く
スプレッドシートの「拡張機能」→「Apps Script」から開きます。
2. トリガーを追加
左の時計マークをクリックし、以下のように設定:
- 関数:
sendNotification
- イベントの種類:
フォーム送信時
- ソース:
スプレッドシート
3. 「このアプリはGoogleによって確認されていません」エラーに対処
最初の設定時には以下のような警告が出ることがあります:
「このアプリはGoogleによって確認されていません」
これは未公開スクリプトではよくある仕様です。以下の手順で進めます。
- 「詳細」→「(安全ではないページ)に移動」をクリック
- アカウントに対するアクセス許可を「許可」
これでトリガーが有効になります。
まとめ
Googleフォームは非常に便利ですが、「通知がない」という点をApps Scriptでカバーすれば、
メールフォームのようなリアルタイムな運用が可能になります。
フォーム送信者も自分たちもスムーズにやり取りできる、シンプルだけど実用的なテクニックだと感じました。