AppSheetで通知(Email・Push通知・チャット通知)を送る際、通知先や通知条件を柔軟にコントロールしたい場面は多いと思います。
この記事では、「List型の列を使った通知制御の実装例」を通じて、次のような課題を解決する方法をご紹介します
想定するユースケース
タスク完了時に、関係者(複数名)へ通知を送りたい。
ただし、通知先はタスクごとに変わる可能性があるため、固定ではなくリストで制御したい。
例題アプリの構成
テーブル:Tasks(タスク管理)
タスク名担当者(Text)通知先リスト(EnumList of Email)ステータス(Text)- 通知条件:ステータスが「完了」になったら
通知先リストに通知
手順1:通知先をList型で管理する
通知先リスト 列を EnumList 型に設定
- Base Type: Email
- Allow other values: ✅ ON
- Suggested values:
Users[メールアドレス]など
これで、ユーザーは複数の通知先をフォームで自由に設定できます。
手順2:Botで通知を送信
- Automation > Bots > 新規作成
- Trigger:
When a record is updated- テーブル:
Tasks - 条件:
[ステータス] = "完了"
- テーブル:
- Processで「Send an Email」を追加
- To欄に以下を入力
[通知先リスト]⚠️
EnumListをそのまま使っても、自動的にカンマ区切りの文字列になるため、複数宛先として問題なく動作します。
実例1:ログインユーザーが通知対象に含まれているかチェック
通知前に、ログインユーザーが含まれている場合のみメッセージを表示したいとき
IN(USEREMAIL(), [通知先リスト])これをShow_IfやVisible_If条件に使えば、自分が通知対象かどうかを条件にした表示制御が可能になります。
実例2:部署ごとに通知先を自動追加
通知先リスト を以下のように計算式で初期化することで、デフォルト通知先を自動設定できます
IF([部署] = "開発部", LIST("dev_lead@example.com", "qa@example.com"),
IF([部署] = "営業部", LIST("sales_lead@example.com"), LIST())
)応用:通知先をユーザーの役割によって拡張する
UNIQUE(
[通知先リスト] +
SELECT(ユーザー[メールアドレス], [役割] = "マネージャー")
)※重複しないように全体リストをUNIQUEにします。
✅ これにより、個別設定された通知先に加えて、マネージャー全員にも通知が届くようになります。
Tips
| 内容 | 式・機能 |
|---|---|
| 通知先に自分が含まれているか | IN(USEREMAIL(), [通知先リスト]) |
| 通知対象に一括で部署を指定 | SELECT(ユーザー[メールアドレス], [部署] = "営業部") |
| 重複通知を避ける | UNIQUE() を使う |
| 条件付き通知 | Botの「Condition」や IF 文で切り替え |
まとめ
| 要素 | ポイント |
|---|---|
| EnumList列 | 通知先の複数指定に最適(メールでもPushでも) |
| Bot | 通知制御のハブ。List型も扱える |
| 式活用 | IN()・SELECT()・UNIQUE()などで柔軟な対象制御 |
おわりに
通知処理はアプリの運用において重要な要素です。
List型を上手く使えば、柔軟でミスのない通知制御を簡単に構築できます。
ぜひこの機会に、EnumList + Bot + List演算 の組み合わせをマスターしてみてください!
