はじめに
unerryのプロダクトエンジニアリングチームでフロントエンドエンジニアをしている堀江です。
私は、Google カレンダーで 1on1 を設定した際に、自分一人だけが参加者になっていたことが何回かあります。
本記事では Google Workspace Flows を使って、この「招待し忘れ」を自動で検知し、メールで通知する仕組みを紹介します。
「こういう地味に困る問題を Workspace Flows で解決できる」というイメージを持ってもらえる内容になっています。
招待し忘れによって実際に起きた悲しいエピソード
- Google Meet に入室したものの、相手が一向に入ってこないため不思議に思って確認したところ、ゲストを招待していないことに気づいた
- 予定が非常に埋まりやすいマネージャーの空き時間をようやく見つけて予定を登録したが、招待を送るのを忘れており、気づいたときにはすでにその枠は別予定で埋まっていて、再度空き時間を探す羽目になった
- 朝会で「今日は〇〇さんと 1on1 があります」と共有したら、その人から『その 1on1、招待来てないですよ』と指摘されて、招待していないことに気づいた
Google Workspace Flows の概要
Google Workspace Flows は、Google Workspace 内で発生するイベントをトリガーに
Gemini を活用した自動化フローをノーコードで構築できる仕組みです。
主な特徴は以下の通りです。
- Google カレンダー、Gmail、Google ドライブ などとネイティブ連携
- Gemini によるテキスト判断、分類、生成が可能
- ノーコードでワークフローを作成でき、企業内の細かな運用改善に最適
今回のユースケースでは、「1on1 予定なのに招待が抜けているかどうか」 を Gemini に判断させます。
エージェントの作成手順(実装編)
では、早速 Google Workspace Flows のエージェントを作成していきます。
1. Starter の設定
Starter では「Based on a meeting」を選択し、以下のように設定します。
- Meeting: Every meeting
- Time offset: 10
- Units: Minutes
- Start: Before meeting
これにより、会議開始 10 分前に「招待忘れチェック」が実行されます。
例えば、これを1日前(Time offset: 1, Units: Days)に設定することで、前日に招待のし忘れに気づくことができます。
2. Step2 に Decide を設定
Choose a step をクリックし、Decide を選択します。
Decide アクションに Gemini が判断するためのプロンプトを設定します。
プロントは以下の通りです。
プロンプト内の ${} は、Variablesから Step1 で取得した項目を指定してください。
You are an assistant that determines whether a Google Calendar event is a 1-on-1 meeting
and checks whether the organizer forgot to invite the other participant.
Use only the information provided below.
Meeting title: ${ Step 1: Meeting title }
All guest email addresses: ${ Step 1: All guest email addresses }
Instructions:
1. Determine `isOneOnOne`:
- true if the meeting title contains any of the following terms:
["1on1", "1:1", "1 on 1", "2on1", "1on1 meeting",
"面談", "1on1ミーティング"]
2. Determine `hasOtherAttendees`:
- true if guestEmails contains at least one email that is NOT the organizerEmail.
3. Determine `shouldAlert`:
- true only if isOneOnOne = true AND hasOtherAttendees = false
4. Return output `shouldAlert`
"shouldAlert": true/false
3. Step3 の設定
Decide の結果を確認するステップは自動で追加されます。
「Step 3: Check if Step2: Decision is true」が表示されているはずです。
今回のように、Geminiの分析結果をもとに分岐処理をしたい場合は、Decide、Check Ifを使うことで実装できます。
4. Step 4 に Send an email を追加
Step 2 の結果が true の場合にメール通知を行いたので、SubActionに Send an email を追加します。
設定例は以下の通り。
- To: 自分のメールアドレス
- Subject: 任意の文面(「1on1 のゲストが設定されていません」 など)
- Message: 任意の文面(ゲストの追加を促すような内容)
画面のMessageのように、Variables を使うことでメールのタイトルや本文に予定表の情報を添付することができます。
5. エージェントの有効化
Turn onで作成したエージェントを有効化します。
テスト
Workspace Flows にはテスト実行機能があるため、実際の予定を使って検証できます。
テスト手順
- 「Test run」ボタンを押す
- 任意の Meeting を選択
- 「Start」ボタンを押して実行
テストパターン
- ①「1on1で招待済」 → 通知されない
- ②「1on1で未招待」 → 通知される
実際の業務環境でも安定して動作することが確認できます。
-
①の結果
-
②の結果
注意点
Step 1: Time offset の反映には時間がかかる
「Based on a meeting」の仕様として、
カレンダーの変更が反映されるまで最大 5 分程度かかります。
実際の挙動として、フロー作成直後は動作にラグが出るので注意が必要です。
Workspace Flows の画面にも以下の注意書きがあります。
It can take up to 5 minutes for changes in Calendar to sync with the agent
Decide の戻り値に Boolean を設定すること
Check ifは、前Action(Decide)の戻り値が Boolean でないと、うまく動作しないので、
プロンプトで明記しましょう。
当初、JSONで返却していましたが、Check ifがうまく動作しませんでした。
4. Return output `shouldAlert`
"shouldAlert": true/false
まとめ
「予定を登録したのに招待し忘れた」という些細なミスを
Google Workspace Flows を使って自動で検知する方法を紹介しました。
Gemini を利用した柔軟な判断ロジックにより、
1on1 のような特定の種類の会議だけを対象にすることも容易です。
業務の中で発生する小さなストレスやミスをなくすために、
今回の仕組みをベースに、ぜひ自社のワークフローにも応用してみてください。
最後まで、読んでいただきありがとうございました!!🎉🎉






