お申し込みフォームを簡単に作って、オペレーションも楽ちんにしたい!
- フォームが送信される
- お問い合わせ内容をメールとSlackに通知、お問い合わせをした人には自動返信メール
- Slack上で、お問い合わせに対してどのように対応するかチームで議論
- 担当者がEメールで返信
このオペレーションがなかなか便利なので、備忘録として残すことにしました。
前編後編に分けてお送りします。
- 前編: GoogleフォームとGメールを連携する(この記事)
- 後編: フォームで入力された内容をIncoming Web Hookを使ってSlackで通知する
この記事でやること
この記事では前編の「GoogleフォームとGメールを連携する」について説明をします。
フォームが送信されたときにお問い合わせ内容をメールで通知し、お問い合わせをした人には自動返信メールを送信するものを作ります。
1. Googleフォームを作る
2. お問い合わせした人に自動返信するスクリプトを書く
GASのコードを書く
フォーム編集画面の三点リーダー(︙)→「スクリプトエディタ」を開き、下記のコードをコピペ&一部変更してください。
コピペしてGASのエディタに貼り付ける
FormApp.getActiveForm();
function sendForm(e) {
var sendToAddress ="自分のメールアドレス";
var serviceName = "【すごいアンケート】";
var mailTitle = serviceName +'に関する新規のお問い合わせがありました';//メールのタイトルを設定
var mailMessage = serviceName +'に関する新規のお問い合わせがありました。\n\n';
var option = {};
option.from = sendToAddress;
var list=[];
var itemResponses = e.response.getItemResponses();
//フォームの項目に記述された内容を取得し、itemResponsesとlist
itemResponses.forEach(function(itemResponse){
mailMessage += '【' + itemResponse.getItem().getTitle() + '】\n'
mailMessage += itemResponse.getResponse() + '\n\n'
list.push(itemResponse.getResponse())
});
//フォームのメールアドレスと名前を取得し、それぞれの変数に格納する
var userName = list[0];
var userMail = list[1];
// 自動返信メール件名
var subject = serviceName +'にお問い合わせいただきありがとうございました。';
// 自動返信メール本文
var body = userName + '様\n' +
'\n' +
'この度は'+serviceName +'にお問い合わせいただき、誠にありがとうございました。' +
'\n' +
'後日、弊社担当よりご連絡させていただきますので\n' +
'よろしくお願い申し上げます。\n' +
'\n' +
'─────────────────────────\n' +
'署名をココに\n' +
'─────────────────────────\n' +
'\n';
// メール送信
GmailApp.sendEmail(userMail,subject,body,option); //自動返信メール
GmailApp.sendEmail(sendToAddress,mailTitle,mailMessage,option); //自分への問い合わせ通知
}
一部変更する
userName
とuserMail
は、Googleフォームの何番目の項目かによって、番号を変えてください。
フォームの番号は、一番上から0,1,2...と続きます。
例:3つ目の項目が名前の場合
var userName = list[2];
トリガーを設定する
Form送信をトリガーにして、GASで書いたfunctionを実行したいため、トリガーをセッティングします。
実行する関数は、sendForm
、イベントの種類を「フォーム送信時」にして保存してください。
GASからメール送信することを許可する
GASからメール送信できるよう、権限を与えます。
- 画像のアイコンを押して、許可してください。
- 許可を確認を押す
- ログインし、許可する
「このアプリは確認されていません」と出るので、「詳細を表示」を押して、安全ではないページに移動リンクを押してください。
完成!
これで、フォーム送信をしたらGmailが飛ぶと思います。
補足情報
GASでメールを送信するClassについて
MailApp.sendEmail
とGmailApp.sendEmail
の2つの方法が用意されていますが、
Gmail.Appの方がオプションが多くておすすめです。
GmailApp.sendEmail(userMail,subject,body,option);
Gmail.Appを使用すると、cc/bccや、送信元のメールアドレスなど細かい設定が可能です。
Class GmailAppについて、くわしくはこちら)
但し、無料アカウントの場合、制限があるので注意です!
@isso_w さまから補足をいただきました!
無料版アカウントでは、GASのsendEmail関数が一日100件までしかメールを送れないという制限があるのでご注意ください。(2020年5月15日現在)。
フォームで入力された内容をグループメール宛にEメールで送信したいときの注意
内容を個人のメールアドレスではなくGoogle Groupsのアドレス(メーリングリスト)宛に通知したい場合は、Gmailの設定からエイリアスを登録する必要があります。
設定方法についてはこちらの記事を参考にしてください。
Google Groupのアドレスをエイリアス登録する方法
後編に続く!
後編ではこの内容に加え、Slack連携をします。
後編: フォームで入力された内容をIncoming Web Hookを使ってSlackで通知する