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演算
の組み合わせをマスターしてみてください!