AppSheetで簡単アプリ開発 ～vol5. 日報アプリを作る（Automation編）

# はじめに

こんにちは、京セラコミュニケーションシステム　西田（@kccs_hiromi-nishida）です。

最終回となるvol.5では、Automationを使って日報が登録されたら、指定した人に登録されたことをメールで知らせる仕組みを作成したいと思います！
ぜひご覧ください。

:::note warn
本記事は2024年3月ごろに作成しております。よって、引用している文章などはこの時点での最新となります。ご了承ください。
また、特別な記載のない限り、画像はGoogle AppSheet画面をキャプチャしたものとなります。
:::

## 連載記事一覧
[AppSheetで簡単アプリ開発 ～vol1. AppSheetって何ができる？](https://qiita.com/kccs_hiromi-nishida/items/2f060675dbe59cab51be "AppSheetで簡単アプリ開発 ～vol1. AppSheetって何ができる？")
[AppSheetで簡単アプリ開発 ～vol2. サンプルを使って作ってみよう！](https://qiita.com/kccs_hiromi-nishida/items/159830c9a1289708e08a "AppSheetで簡単アプリ開発 ～vol2. サンプルを使って作ってみよう！")
[AppSheetで簡単アプリ開発 ～vol3. 日報アプリを作る（データ準備編）](https://qiita.com/kccs_hiromi-nishida/items/47326eef894558362481 "AppSheetで簡単アプリ開発 ～vol3. 日報アプリを作る（データ準備編）")
[AppSheetで簡単アプリ開発 ～vol4. 日報アプリを作る（ビュー編）](https://qiita.com/kccs_hiromi-nishida/items/b077c980662753fcc6dc "AppSheetで簡単アプリ開発 ～vol4. 日報アプリを作る（ビュー編）")
AppSheetで簡単アプリ開発 ～vol5. 日報アプリを作る（Automation編）　<font color="Tomato">★本記事★</font>

## この記事の対象者

* AppSheetに興味のある方
* AppSheetでアプリを作ってみたい方


## Automationとは

Automationとはタスクを自動化する機能で、Event・Process・Taskを組み合わせてBotというワークフローのようなものを作成し、実行します。
Automationには7つのタスクがあらかじめ用意されています。

### タスクの種類

| タスク名 | 機能 |メモ|
|:------|:--|:--|
|Send an email|メール送信|任意のアドレスに送信するにはデプロイ必須<br>※デプロイしない場合はアプリ作成者にのみメールが届く|
|Send a notification|プッシュ通知送信|モバイル機器にプッシュ通知を送信|
|Send an SMS|SMSメッセージ送信|日本国内では使えない（Twilioアカウントが必要）|
|Call a webhook|外部サービスとの連携(Webhook)|SlackやLineなどのWebhookに対応しているアプリに通知を送信|
|Create a new file|ファイルの作成と保存|CSV・HTML・ICS_Calendar・JSON・PDF・XLSX・XMLファイルの作成が可能|
|Call a script|Google Apps Scriptの実行|AppSheetだけではできない複雑な処理やGASから外部サービへの連携などを実行|
|Send a chat message|チャットメッセージの送信|Google Chatへのメッセージ送信|

## メール自動通知を作成する

:::note warn
以降AppSheetでの操作手順となりますが、設定の変更を行ったら画面右上に表示されている`Save`ボタンを選択するのを忘れないようにしてください。

<img width="500" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/24bfa924-54f5-c2fc-214d-3c1637c2e5c0.png">
:::

今回は先ほど紹介したタスクの中から`Send an email`タスクを使って、日報が登録されたら指定したユーザーにメールを送信する、という自動化を設定してみたいと思います！

まず、Automation画面を開き、`Create my first automation`を選択します。

<img width="500" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/ea1b82c3-c5a5-4ece-95d9-e2a1c0432e98.png">

すると、AppSheetって賢い！って思うのですが、オススメの自動化タスクを提示してくれます。
今回まさしくやりたいことを提示してくれているので、`When a new 日報 record is created, send an email`を選択しましょう。

<img width="500" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/0cc9ef62-ef3d-e472-32db-bbbda6628542.png">

そうすると、自動的にイベント・プロセス・タスクまで作成をしてくれます。賢い！（二度目）

<img width="500" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/6c9dd0c9-5d36-7ac1-ba5e-3e8a1847b694.png">

では、自動生成されたイベントとプロセスに関して解説します。

### イベントについて

`A new 日報 record is created`という部分を選択すると設定画面が表示されます。

`Event Type`はイベントの種類で今回は`Data change`になっていますね。
Data changeはその名の通りデータが追加・更新・削除された時に後続のプロセスを実行する、というイベントです。

`Table`は対象のテーブル、`Data change type`は`Adds`が選択されています。
これで`日報テーブルにデータが追加された時`というイベントだとわかります。

<img width="200" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/6e85e726-68ad-ea02-46a1-97893eb36f93.png">

### プロセスについて

`Send an email`という部分を選択すると設定画面が表示されます。

`Email Type`は今回`Embedded app view`を選択しました。
届いたメールを開いたときに、指定したViewを本文に埋め込んで表示する設定です。

<img width="200" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/6ad45cf3-6a7b-4257-d8b3-a28f8302acf3.png">

`To`には送信先のメールアドレスを、`Email Subject`にはメールの件名を設定します。
件名には`<<[日付]>> の日報が登録されました`と指定しました。
こうすると、<<[日付]>>の部分が登録された日付で置換されます。

:::note warn
デプロイ前だと`To`にアプリ作成者以外のメールアドレスを指定したとしても、必ずアプリ作成者のメールアドレスにメールが送信されます。
:::

`Email Body`はメール本文の指定を行う項目です。
最後に`App view to embed in email body`には`日報_Detail`を選択してください。
こうすることで、メールの本文に日報の詳細画面が埋め込まれます。

<img width="200" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/9c09c8e2-ff24-a69a-7cb3-49ede8da3612.png">

ちなみにこの`日報_Detail`って何だろうと思われたかもしれません。
これは今までvol1～4にて紹介した方法でアプリを作成していれば、自動で作成されているViewです。

View画面の左下の方にこっそりあると思います！
今回、表示名だけ設定しました。これを設定していないとメールに`日報_Detail`と表示されてしまうためです。

<img width="500" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/653906fa-6fc7-0fa6-79f6-53e411e9c01e.png">

### 自動化をテストしてみよう！

※この時点でまだ`Save`していない場合はちゃんとSaveを選択してくださいね！

では、アプリのプレビューからデータを追加してみましょう。
フォームに入力が終わったら、`保存`を選択してデータを保存します。

<img width="200" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/2df80317-fb99-898d-8a8b-4dd438eb6fa2.png">

<img width="200" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/015b0308-8e06-a4e0-7b30-f593ad87bdf2.png">

しばらくして、このようなメールが届けば成功です！

<img width="400" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/5680b5cc-31df-256d-1e3a-90563364f8e7.png">


## デプロイする

これまで作成してきたアプリ。プレビューでは操作が可能ですが、スマホアプリなどから操作するには`デプロイ`を行う必要があります。

また、今回のようにメールの自動送信を作成した場合、デプロイを行わないとアプリ作成者にしかメールを送信することができません。

というわけで、デプロイしてみましょう。
画面左側のロケットのようなアイコンを選択し、`Deployment Check`を選択します。

<img width="500" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/04d8a50c-d1e3-27bb-94bc-41277538b7d3.png">

`Deployment check`はそのアプリがデプロイ可能かどうかをチェックしてくれます。
チェック結果は以下のように画面上に表示され、`ERROR`の判定があるとデプロイはできません。

※ERROR項目がある場合、その項目を選択することでエラーの内容を確認することができるので、対応を実施する必要があります！

今回は`PASSED`と`WARNING`なのでデプロイ可能なことがわかります。
この状態で、`Move app to deployed state`を選択してください。

<img width="500" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/c3556f53-60d9-3f43-019d-20f5ac28f1ad.png">

画面のようなメッセージが表示され、デプロイの完了が確認できました。
ちなみに、デプロイ前の状態に戻したい時は`Return to prototype state`を選択すればデプロイ状態が解除され、プロトタイプ版に戻すことができます。

<img width="500" alt="AppSheet" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2752159/3a5ffe68-2c54-02f5-e443-d518375e0d8d.png">

:::note warn
[vol1の記事](https://qiita.com/kccs_hiromi-nishida/items/2f060675dbe59cab51be "AppSheetで簡単アプリ開発 ～vol1. AppSheetって何ができる？")でも紹介しましたが、デプロイを行うと作ったアプリで使用している機能によっては無料ではなく、有料のプラン契約が必要になる場合があります。

その場合は、デプロイ時にERRORとして表示されるので、有料プランを契約する、もしくは無料で使用できない機能を外して再度デプロイするなどの対応が必要となります。
:::

# さいごに

vol.1～5までを通して、サンプルからアプリを作る方法や1からアプリを作る方法をご紹介しました。

今回の連載では一切コードを書くことはなく、まさにノーコード！
でも結構ちゃんとしたアプリが作れるなと思っていただけたのではないでしょうか。

とくにGoogle Workspaceが導入されている企業では、無料で使用できる場合が多いのでぜひアプリ作成にチャレンジしてみてください！

# おしらせ

弊社X（旧：Twitter）では、Qiita投稿に関する情報や各種セミナー情報をお届けしております。情報収集や学びの場を求める皆さん！ぜひフォローしていただき、最新情報を手に入れてください:grinning:

https://x.com/kccs_digital