Google Workspace で問い合わせ対応システムを作成する方法 #4 (Google App Script 設定)

記事タイトルとURLをコピーする

G-gen の荒井です。当記事では Google Workspace のアプリケーションのみ使用してお問い合わせシステムを作成する方法をご紹介します。

はじめに

ご紹介すること

当記事では問い合わせ対応システムで使用する Google App Script(以下、GAS)の設定方法やサンプルコードをご紹介します。

Google App Script を使うことで、メールの送信や Google Workspace ユーザーの情報取得など、手作業で行っていた業務を自動化することができます。

当記事では、顧客が問い合わせ内容を Google フォーム経由で送信した際に、顧客のメールアドレスへ自動返信メールを送信するための設定方法とサンプルコードを解説します。

記事の構成

問い合わせ対応システムの開発方法は、以下の通り、連載記事としてご紹介します。記事を順に確認することで、問い合わせ対応システムが完成します。

No タイトルとリンク
1 Google Workspace で問い合わせ対応システムを作成する方法 #1 (システム概要)
2 Google Workspace で問い合わせ対応システムを作成する方法 #2 (Google グループ設定)
3 Google Workspace で問い合わせ対応システムを作成する方法 #3 (Google フォーム設定)
4 ※ 当記事 Google Workspace で問い合わせ対応システムを作成する方法 #4 (Google App Script 設定)
5 Google Workspace で問い合わせ対応システムを作成する方法 #5 (業務フロー解説)
6 ※ 準備中 Google Workspace で問い合わせ対応システムを作成する方法 #6 (機能拡張案)

設定作業概要

GAS 設定

前回の記事で作成したスプレッドシートに、GAS の設定を行います。

GAS コード解説

GAS のサンプルコードを解説します。

コードを書いたことがない方は、自社環境向けにコードを修正することに少し苦戦するかもしれません。まずは当記事で紹介するサンプルコードを把握してください。

GAS トリガー設定

GAS の実行条件となる、トリガー設定を行います。

テスト

実際に GAS を動作させ、期待通りの動作となっているか確認します。

設定1 : GAS 設定

前回の記事で作成した Google フォームの [回答] タブから、回答内容のエクスポート先となるスプレッドシートを開きます。

[ 拡張機能 > Apps Script ] から GAS の設定画面を開きます。

GAS 設定画面が開いたら、プロジェクト タイトル を設定します。 プロジェクト タイトル は他の GAS プロジェクトと区別しやすい名称を設定しましょう。

設定2 : GAS コード解説

今回使用するサンプルコードです。

function sendMail(e) {

  //フォームの回答から変数を定義
  let timeStamp = e.namedValues["タイムスタンプ"][0];
  let userName = e.namedValues["氏名"][0];
  let userNameRubi = e.namedValues["氏名 (フリガナ)"][0];
  let company = e.namedValues["会社名"][0];
  let tel = e.namedValues["電話番号"][0];
  let mailAddress = e.namedValues["メールアドレス"][0];
  let title = e.namedValues["お問い合わせタイトル"][0];
  let question = e.namedValues["お問い合わせ内容"][0];
  
  //自動送信されるメールのオプションを設定(fromアドレス、送信者名称、Bcc)
  let option = {
    bcc: "otoiawase@XXXXXX.co.jp",
    from: "otoiawase@XXXXXX.co.jp",
    name: "お問い合わせ窓口"
  };
  
  //自動送信されるメールの件名を作成
  let subject = "お問い合わせ受付メール [" + title + "]";
  
  //自動送信されるメールの本文を作成
  let body = company + "\n" +
  userName + " 様" + "\n" +
  "\n" +
  "お問い合わせありがとうございます。" + "\n" +
  "\n" +
  "本メールはお問い合わせ内容をご確認いただくための【自動返信】メールとなります。" + "\n" +
  "お問い合わせ内容については担当者アサイン後メールを送付させていただきますため、恐れ入りますが今しばらくお待ちください。" + "\n" +
  "\n" +
  "■ お問い合わせ内容" + "\n" +
  "\n" +
  "【会社名】" + "\n" + 
  company + "\n" +
  "\n" +
  "【担当者名】" + "\n" + 
  userName + "\n" +
  "\n" +
  "【電話番号】" + "\n" + 
  tel + "\n" +
  "\n" +
  "【メールアドレス】" + "\n" + 
  mailAddress + "\n" +
  "\n" +
  "【お問い合わせタイトル】" + "\n" + 
  title + "\n" +
  "\n" +
  "【お問い合わせ内容】" + "\n" + 
  question + "\n" +
  "\n" +
  "■ お問い合わせ窓口" + "\n" +
  "対応時間:10:00〜19:00(土日祝日・弊社指定休日を除く)" + "\n" +
  "Mail : otoiawase@XXXXXX.co.jp" + "\n" +
  "\n" +
  "\n" +
  "Send Time" + "\n" +
  timeStamp + "\n" +
  "\n";
  
  // 送信先アドレス、件名、本文、オプション をまとめて1通のメールとして定義
  GmailApp.sendEmail(mailAddress, subject, body, option);
}

関数名

関数名を記述します。ここで決めた関数名は、後述するトリガー設定で使用します。プログラムの実行内容がわかりやすい名称を付与します。

function sendMail(e) {

今回はメール自動送信のため「sendMail」としています。

変数の定義

お問い合わせフォームで入力された内容を自動返信メールに記載するため、フォームに入力された内容を変数として定義します。

  let timeStamp = e.namedValues["タイムスタンプ"][0];
  let userName = e.namedValues["氏名"][0];
  let userNameRubi = e.namedValues["氏名 (フリガナ)"][0];
  let company = e.namedValues["会社名"][0];
〜以下略〜

"氏名""会社名" となっている部分は、Google フォームの「質問のタイトル」に対応しています。フォームに入力された内容を、変数 "userName""company" に代入しています。

let 変数名 = 値 により、変数の定義と値の代入を同時に行っています。これによりフォームに入力された値をプログラムの中から利用できるようになります。また、変数名はキャメルケースという法則に従い、先頭は小文字にし、単語のつなぎ目を大文字としています。

Google フォームの「質問のタイトル」をカスタマイズしている場合、それに応じてコードを修正してください。

自動送信メールのオプション設定

自動送信されるメールの bcc や from アドレス、受信者に表示される送信者の名称を定義します。

  let Option = {
    bcc: "otoiawase@XXXXXX.co.jp",
    from: "otoiawase@XXXXXX.co.jp",
    name: "お問い合わせ窓口"
  };

bcc は、「#2 設定1 : Google グループ作成 」で作成したグループアドレスを入力します。

Google グループにもメールを送ることで、グループに会話が追加され、Google グループで対応することが可能になります。

from も同様にグループアドレスを設定します。

name は、受信者に表示される送信者の名称を設定します。

自動送信メールの件名設定

自動送信されるメールの件名を設定します。文字列は "(ダブルクォーテーション)で囲みます。それ以外の文字列は + で結合します。

  let subject = "お問い合わせ受付メール [" + title + "]";

title という名称の変数を使用しており、フォームの「お問い合わせタイトル」に入力された値が件名に挿入されます。

自動送信メールの本文設定

自動送信されるメールの本文を設定します。

  let body = company + "\n" +
  userName + " 様" + "\n" +
  "\n" +
  "お問い合わせありがとうございます。" + "\n" +
  "\n" +
  "本メールはお問い合わせ内容をご確認いただくための【自動返信】メールとなります。" + "\n" +
  "お問い合わせ内容については担当者アサイン後メールを送付させていただきますため、恐れ入りますが今しばらくお待ちください。" + "\n" +
  "\n" +
  "■ お問い合わせ内容" + "\n" +
  "\n" +
  "【会社名】" + "\n" + 
  company + "\n" +
  "\n" +
〜以下略〜

件名同様、文字列部分をダブルクォーテーションで囲ったり、定義した変数を使用して、送信するメールの本文を作成します。

メールの定義

それぞれ設定した件名や本文、オプションを組み合わせて、1通のメールを送信する命令を記述します。

  GmailApp.sendEmail(mailAddress, subject, body, option);

プロジェクトの保存

コードを変更した際は、都度「プロジェクトの保存」を行う必要があります。コードの修正が完了したら、プロジェクトを保存します。

設定3 : GAS トリガー設定

記述したコードが実行されるきっかけとなる、トリガーを設定します。今回は、フォームに問い合わせが送信されたタイミングで実行されるよう設定します。

GAS 設定画面左メニューより [トリガー] をクリックします。

[ + トリガーを追加] をクリックします。

以下の通りパラメータを設定し、[保存] をクリックします。

設定項目 パラメータ
実行する関数を選択 sendMail
イベントの種類を選択 フォーム送信時

GAS を実行するユーザーを選択します。「#1 設定3 : グループアドレスを送信元とする設定」で設定を行ったユーザーを指定します。

GAS が実行アカウントを使用し、Gmail の送信などができるよう設定するため [Allow] をクリックします。

トリガー画面に、作成したトリガーが表示されればトリガー設定は完了です。

これで、新規フォームが送信されたタイミングで関数「sendMail」が実行され、メールが自動送信されます。

設定4 : テスト

実際にコードが動作させ、テストします。Google フォームに値を入力して、メールが届くかどうかを確認してください。自動返信メールはフォームの「メールアドレス」に入力したアドレスと「作成した Google グループ」に送信されます。

期待した挙動とならなかった場合、エラーログを確認します。

GAS 設定画面左メニューより [実行数] をクリックします。GAS のコードが原因の場合、エラーログにコメントと、コードの失敗箇所(ファンクション名/何行目/何文字目)が表示されるのでコードを再確認します。

次の記事

Google Workspace で問い合わせ対応システムを作成する方法 #5 (業務フロー解説)

荒井 雄基 (記事一覧)

クラウドソリューション部

オンプレ環境のネットワーク・サーバーシステムを主戦場としていたが、クラウド領域にシフト。
Google Cloud 認定資格 7冠
現在は Google Workspace を中心に企業の DX 推進をサポート。
最近頑張っていることは、子どもがハマっている戦隊モノの踊りを踊れるようになること。