AppSheet (アップシート)と Google Workspace との連携について解説するシリーズです。
前回(第3回)は、Googleフォームから送信した問い合わせをGoogleチャットに通知しました。
第4回は、問い合わせ管理アプリで、AppSheetとGoogleカレンダーを連携します。
Googleカレンダーに予定を追加して、問い合わせと関連付けます。
目次
1. AppSheet と Googleカレンダー を連携させる
AppSheetとGoogleカレンダーの連携手順は以下の通りです。
- Googleカレンダーを作成する
- AppSheetデータソースにGoogleカレンダーを追加する
- 問い合わせ管理アプリにテーブルを追加する
- 「Ref」列を使用して、問い合わせとカレンダーを関連付ける
- 予定を追加して、Googleカレンダーで確認する
今回は連携用のカレンダーを新規作成して、使用します。また、カレンダーに予定を追加した時に、任意のメールアドレスに招待メールを送信することができますが、今回は誤送信を防止するために作成しません。
2.Googleカレンダーを作成する
はじめに、連携用のカレンダーを作成します。
Google Workspaceの「Googleアプリ」アイコン(右上の9点ドット)をクリックして、「カレンダー」を選択して、Googleカレンダーを表示します。
「他のカレンダー」の右にある「+」ボタンをクリック、「新しいカレンダーを作成」をクリックします。
名前に「予定カレンダー」と入力して、「カレンダーを作成」ボタンをクリックします。
「予定カレンダー」が作成されました。
3. AppSheet のデータソースにGoogleカレンダーを追加する
AppSheetに戻りましょう。アプリエディタを開きます。
右上の「Account」アイコンをクリックして、自分のアカウント(メールアドレス)をクリックします。
My Accountが開きます。「Source」タブを選択して、「Account Sources」の「+ New Data Source」をクリックします。
Add a new data sourceが開きます。「Google Calendar」をクリックします。
自分のGoogleアカウントを選択します。
AppSheetがGoogleカレンダーへのアクセスをリクエストします。プライバシーポリシーと利用規約に同意した上で「許可」をクリックします。
Account SourcesにGoogleカレンダーが追加されます。
4.問い合わせ管理アプリにテーブルを追加する
問い合わせ管理アプリに、Googleカレンダーをテーブルとして追加します。
さきほど追加したGoogleカレンダーをアプリエディタに読み込むために、一旦、ブラウザ(Chromeなど)をリロードしておきます。リロードしたら、アプリエディタ左側メニュー「Data」をクリック、Dataナビゲーション右上の「+」ボタンをクリックします。
Add dataが表示されます。Google Calendarをクリックします。
Choose a Sheet/Tableから、先ほど追加した「予定カレンダー」をクリックして選択します。
「Add to app」ボタンをクリックします。
Dataナビゲーションに「予定カレンダー」テーブルが追加されました。
5.「Ref」列を使用して、問い合わせとカレンダーを関連付ける
「予定カレンダー」テーブルの列を設定します。
左側メニュー「Data」をクリック、Dataナビゲーションパネルで「予定カレンダー」を選択します。
「Description」列の左にあるペン型の編集アイコンをクリックして、列設定パネルを開きます。
「Description」列を以下のように設定します。
- Type:Ref
- Source table:お問い合わせ
「予定カレンダー」テーブルの「Description」列を「Ref」型に設定しました。「Description」列は、Googleカレンダーの「説明を追加」欄です。
「Ref」型の列は、以下のような公式で理解します。
「Ref」型の列は、
- 参照先テーブル(Source table)を参照して、
- 参照先テーブルのKEY列の値を保存することにより、
- テーブル間のリレーションシップを設定できる
Googleフォームから送信された回答には「Response ID」という一意の値(KEY)が含まれています。
Googleカレンダーの「Description」を「Ref」に設定して、「お問い合わせ」(Googleフォームの回答)と関連付けることにより、「Description」列には「Response ID」(KEY)の値が保存されます。
サンプルデータで確認してみましょう。
「予定カレンダー」テーブル2行目の「Description」列には、「ACYDBNj7-83pYM0・・・」が保存されています。これは、「お問い合わせ」テーブル2行目の「Response ID」列の「ACYDBNj7-83pYM0・・・」と同じ値になっています。
「Ref」の公式に当てはめると、「予定カレンダー」の「Description」列は、
- 参照先の「お問い合わせ」テーブルを参照して、
- 参照先の「お問い合わせ」テーブルの「Response ID」列(KEY列)の値を保存することにより、
- 「お問い合わせ」と「予定カレンダー」の間でリレーションシップを設定した
という意味になります。
以上、「Ref」型の設定により、問い合わせとカレンダーの予定が関連付けられました。
Googleカレンダーに追加される予定の「説明を追加」欄に「ACYDBNj7-83pYM0・・・」が保存されます。
ここまでできたら「Done」ボタンをクリックして、「Description」設定パネルを閉じます。
右上の「Save」ボタンをクリックして、設定を保存します。
「予定カレンダー」は
- Title
- Start
- End
- Description
- 以外は使用しないので、SHOW?、EDITABLE?、REQUIRE?、SEARCH?のチェックをOFFにして無効にします。
「お問い合わせ」テーブルのLABELを変更します。
- Timestamp:OFF
- 会社名:ON
右上の「Save」ボタンをクリックして、設定を保存します。
最後に、「予定カレンダー」ビュー(View:画面)を調整します。
エディタ左側メニュー「Views」をクリックします。
Viewsナビゲーションに「Map」ビューがあると思うので、選択して設定を以下のように変更します。
- View name:カレンダー
- View type:calendar
- Position:next
View Optionsを以下のように変更します。
- Start date:Start
- Start time:Start
- End date:End
- End time:End
- Description:Title
Displayタブを開いて、Iconを「calendar」に変更します。
右上の「Save」ボタンをクリックして、設定を保存します。
6.予定を追加して、Googleカレンダーで確認する
予定を追加してみましょう。
エディタ右側のプレビューで、タブメニュー「お問い合わせ」をクリックして表示、問い合わせを1件選択します。
「Related 予定カレンダーs」の「Add」をクリックします。
以下のフィールドに入力します。
- Title:予定のタイトルを入力します。
- Start:予定の開始日時を入力します。
- End:予定の終了日時を入力します。
- Description:問い合わせ元の会社名が選択されます。
最後に「Save」ボタンをクリックして、予定を追加します。
予定が1件追加されました。Googleカレンダーを確認してみましょう。
予定カレンダーに予定が追加されていれば成功です。
以上、AppSheetとGoogleカレンダーを連携して、カレンダーに追加した予定と問い合わせを関連付けました。ポイントは、カレンダーテーブルの「Description」を「Ref」列として使用している点です。
Googleスプレッドシートとは異なり、Googleカレンダーから追加したテーブルは、自由に列を追加したり削除したりすることができません。なので、今回は「Description」を「Ref」列として代用しました。「Dscription」には、関連している問い合わせの「Response ID」(KEY)が保存されています。この「Response ID」を削除すると、問い合わせと予定の関連付けが解かれるので、削除しないように注意してください。
次回(第5回)は、GmailとAppSheetを連携します。
出張申請メールを送信して、Dynamic email機能を使用して、Gmail上で承認をやってみます。
- 第1回 8つのサービスでできること
- 第2回 Googleフォーム
- 第3回 Googleチャット
- 第4回 Gooleカレンダー
- 第5回 Gmail