先日、Googleスプレッドシートを用いた顧客管理にご興味頂き、お話をさせて頂く機会がありました。
なんでも、沖縄本島にて新たに独立なさるらしく、ちょうど我々も沖縄に滞在中だったので、運良く直接お会いさせて頂くことが出来ました。
ほとんどのご要望は、これまでご紹介してきたスプレッドシートの関数で解決可能なものでしたが
Googleフォームを用いた申込→Googleカレンダーに自動登録
という仕組みについて、実現可能という確信はあったものの、実際に構築したことは無かったので、構築してみました。
完成イメージ
- メールフォームなどでお申し込み
- 参加者各人にGoogleフォームを用いてレンタルの有無などをご記入頂く
- スプレッドシートに自動保存
- 自動的にGoogleカレンダーに登録
このうち2→3はGoogleフォームの情報は元々スプレッドシートに自動保存されるのでOKです。
1→2に関しては、手動で行う想定です。
※メールサーバーとしてGmailを活用している場合は、ここの自動化も可能です。ただし、申込=申込確定になってしまうので注意が必要です。
用いるもの-GoogleAppsScript
今回用いるのは関数ではなく、GoogleAppsScriptというものです。
これは、Googleが提供するスプレッドシートなどのアプリケーションの、複数の作業を自動化したり、いくつかのGoogleのアプリケーションを連携したり、と様々なことを可能にするプログラミング言語のことだと思って下さい。
ちなみにこれを編集するためには、スプレッドシートで『ツール』→『スクリプトエディタ』とクリックして行くと編集画面が出現します。
実現したいことを紐解く
今回実現したいことを、より具体的に紐解いてみましょう。
- 参加者各人がGoogleフォームを用いて情報を入力
- 自動的にプログラム稼働
- フォームの回答が保存されるシート情報を取得
- 使用するGoogleカレンダーの情報を取得
- フォームの回答から名前と申込日を取得
- Googleカレンダーで、名前をタイトルにして申込日に新たな終日の予定を追加
- 申込日が複数日に渡る場合は、複数日に渡る予定として追加
こんなところでしょうか。
GoogleAppsScriptの機能では複数日に渡る終日の予定を追加する機能が存在しなかったため、7の処理が意外と難儀しました。
完成品
ちょっと余計なコードも入っちゃってます。
CalendarApp.openByName()は非推奨、なんてGoogleさんに怒られたりもしています。
が、ひとまず完成したのがこちら!
使用するフォーム
こんなフォームを用意して…
今回はフォームにもいくつか条件分岐を設定してみました。
リピーターの方に沢山の情報を記入してもらうのはナンセンスなので…
→全員
氏名・生年月日・申込日
→リピーター
レンタル品やライセンスランクなどに変更があれば記入
→新規ゲスト
詳細な情報を記入
→ライセンスホルダー
ライセンスの種別を記入
→ノンダイバー
ライセンス種別記入画面はスキップ
→全員
リクエストなどがあれば記入
こんな風にしてみました。
活用イメージとしては、代表者氏名、連絡際、申込日、人数あたりのみをホームページ上のメールフォームで尋ね、その後、参加者全員にこちらのフォームを記入してもらうイメージです。
参加者がフォームへ回答
※名前などの情報は適当です。最初こそ仮名っぽい名前で行きましたが、途中から諦めました(笑)
参加者がフォームに回答すると、こんな感じでスプレッドシートに回答が自動追加されます。
そして、PCでこのシートを開いていない時でも、フォームへの回答があった時には自動でプログラムが動き出します。
自動的にカレンダーへ追加
あとはこのカレンダーを見ながらスケジュールを決めて行けばOKです!
1日に捌く人数が10人、20人になる様な規模のショップになってしまうと、もしかしたら少し使いづらいかもしれません。
今回は他にも
- 申込フォーム受信時、新規顧客の場合は自動的に顧客名簿に追加
- Googleカレンダーでスケジュール確定時、スプレッドシートに自動的に保存
- 申込情報と確定スケジュール情報からログデータ記入シートを自動生成
- 名字から名前を予測入力
この辺りを構築しているので、またの機会にご紹介させて頂きたいと思います!
他にも
『こんなことって実現できる?』
というご質問等、どしどし受け付けておりますのでお気軽にどうぞ!
※ダイビング業界関係者に限ります。
※お問合せはトップページ下部のフォーム、もしくはフッター記載のメールアドレスまで!