本記事は、Google Workspace Studio(旧Flows)の実践ノウハウを100本紹介する連載「Google Workspace Studio活用方法100本ノック」の一つとなります。
今回は、Google Formで受け付けた問い合わせ先マスタ更新依頼を自動で取り込み、反映までを一本化するエージェントを構築します。担当者の手作業を減らしつつ、マスタ情報を最新状態に保てるようにしましょう。
| 難易度 | 中級者向け |
| 実現すること | Google Form回答をSheetに蓄積し、問い合わせ先マスタを自動更新することができるためドキュメントを更新する負荷を軽減することができます |
| 想定する対象者 | 情シス・総務・ヘルプデスクなどフォーム経由で更新依頼を受け付けている担当者 |
| 利用サービス | Google Forms, Google Sheets |
今回作成するエージェントの代表的なユースケースとしては以下のようなことが考えられると思います。
今回作成したエージェントは10ステップとなっていて複雑な構成となっています。
スターターとして「When a form response comes in」を設定し、Google Formに対する回答を検知したタイミングでエージェントが起動します。
続くアクションでは、まず「Get sheet contents」ステップでGoogle Formの回答内容が記録されているスプレッドシートの情報を取得し、その後の「Extract」ステップで回答を受けたタイミングの申請内容を抽出します。そして、次の「Get sheet contents」ステップで社内マニュアルマスタのスプレッドシートの情報を取得し、続く「Decide」ステップで申請された内容が既存の社内マニュアルマスタの中に存在するかを判定します。
手前の判定の結果、既存のマニュアルマスタの中に存在する場合は、どのマニュアルと被っているかを「Extract」ステップで抽出してから「Update rows」ステップで既存の行を更新します。既存のマニュアルマスタの中に存在しない新規の内容の場合は、「Add a row」ステップでそのままマニュアルマスタの最後尾に行を追加する仕組みとしています。
今回作成したエージェントの構築手順は以下のようになっています。
マニュアルマスタの更新依頼をするためのGoogle Formを準備します。「社内マニュアル追加・更新申請フォーム」という名前のシンプルに3つの必須の回答項目のあるフォームを準備します。そして回答のタブから「スプレッドシートにリンク」ボタンを押してスプレッドシートを作成します。
以下のようなスプレッドシートが作成されていれば問題ありません。
Starterで「When a form response comes in」を選択します、そして、Formには先ほど作成した「社内マニュアル追加・更新申請フォーム」を選択します。Also run when a form response is editedのチェック項目は回答が編集されたときもエージェントを実行されるようにしたいかどうかでチェックするかどうかを決めるところで、今回はチェックしておくようにします。
最初のActionsでは「Get sheet contents」を選択します。Spreadsheetの欄にはGoogle Formの回答を記録しているスプレッドシート「社内マニュアル追加・更新申請フォーム(回答)」を選択し、Sheetには「フォームの回答 1」を選択してください。そして、Find rows to get values fromでは、Columnには「タイムスタンプ」、Valueには「Any」を入れてください。
続いての「Extract」ステップではGoogle Formの回答内容から情報を抽出するため、Enter a promptの欄には以下のプロンプトを入力して。[]で囲まれている内容はVariablesから設定するようにしてください。
以下のスプレッドシートはフォームの回答内容を記録しています。回答のタイミングが「[Step1: Response time]」の回答内容を抽出してください。
[Step2: Spreadsheet link]
そして、What to extractではCustom content nameを以下の3つの項目を設定してください。
| Custom content name | Description for Gemini |
| manuallink | スプレッドシートに追加または更新したいマニュアルのファイルへのリンク |
| manual | スプレッドシートに追加または更新したいマニュアルの内容 |
| mailaddress | スプレッドシートに追加または更新したいマニュアルの問い合わせ先メールアドレス |
次のActionsではもう一度「Get sheet contents」を選択します。Spreadsheetの欄には社内マニュアルマスタであるスプレッドシート「社内問い合わせ先とマニュアル」を選択し、Sheetには「シート1」を選択してください。そして、Find rows to get values fromでは、Columnには「マニュアルリンク」、Valueには「Any」を入れてください。
次は「Decide」ステップで申請内容と既存のマニュアルマスタを比較する処理を実施して既存の内容を更新する必要があるのか、新規で追加する内容なのかの判定を実施します。Enter a promptの欄には以下のプロンプトを入力して。[]で囲まれている内容はVariablesから設定するようにしてください。
注:現在のWorkspace Studioの仕様なのかはわかりませんが、プロンプトの中に複数のURLが存在していると処理が失敗してしまうことが多かったので、このプロンプトではマニュアルのリンクを入れていません。
以下の内容が既存のスプレッドシートの中に存在しているか確認してください。完全に一致している必要はなく意味が一致しているのであれば許容してください。存在している場合はtrue、存在していない場合はfalseを返してください。
マニュアルの内容: [Step3: manual]
マニュアルの問い合わせ先: [Step3: mailaddress]
スプレッドシートのリンク:[Step4: Spreadsheet link]
そして、Step5のDecideの内容によって処理を変更するステップを設定します。Step6では既存のマニュアルマスタに存在している場合の処理となるので「Step5: Decision」が「is true」となるようにしてください。
そして、最初のサブステップである「Extract」では既存のマニュアルマスタの中でどの行を更新するべきかの情報を抽出するため、Enter a promptの欄には以下のプロンプトを入力して。[]で囲まれている内容はVariablesから設定するようにしてください。
以下の申請された内容が既存のスプレッドシートの中に存在しています。完全に一致している必要はなく意味が一致しているのであれば許容してください。どのマニュアルの内容を変更するべきかを抽出してください。
マニュアルの内容: [Step3: manual]
マニュアルの問い合わせ先: [Step3: mailaddress]
スプレッドシートのリンク:[Step4: Spreadsheet link]
そして、Custom content nameには「manual」を入力し、Description for Geminiには「スプレッドシートの更新したいマニュアルの内容」を入力します。
そして、更新する場合の処理の最後のサブステップ「Update rows」では、Spreadsheetの欄には社内マニュアルマスタであるスプレッドシート「社内問い合わせ先とマニュアル」を選択し、Sheetには「シート1」を選択してください。そして、Find rows to updateでは、Columnには「マニュアルの内容」、ValueにはStep7で抽出した情報となる「Step7: manual」を入れてください。
そして、更新する内容であるSet new values by columnの設定を実施します。内容の変更は2つの項目のみとなります。
| Column | New value |
| マニュアルリンク | Step3: manuallink |
| 問い合わせ先 | Step3: mailaddress |
また、Step5のDecideの内容によって処理を変更するステップのもう片方を設定します。Step9では既存のマニュアルマスタに存在していない場合の処理となるので「Step5: Decision」が「is false」となるようにしてください。
そして、最後のステップとして「Add a row」ステップで新規の行を追加します。Spreadsheetの欄には社内マニュアルマスタであるスプレッドシート「社内問い合わせ先とマニュアル」を選択し、Sheetには「シート1」を選択してください。そして、Add data by columnではStep3で抽出したそれぞれの項目を設定します。マニュアルリンクには「Step3: manuallink」、マニュアルの内容には「Step3: manual」、問い合わせ先には「Step3: mailaddress」を設定します。
作成したエージェントを有効化します。エージェントの下部に存在している「Turn on」のボタンを押してエージェントを有効化します。
そして、現在の社内マニュアルマスタには存在しないクレーム対応マニュアルをGoogle Formから新規追加で申請してみようと思います。
送信するとスプレッドシートに回答記録が追加されました。
しばらく待っているとスプレッドシートにクレーム対応マニュアルが追加されました。
次に、既存のマニュアルを更新するテストも実施します。PC操作のマニュアルがWindows10のものとなっていることに気づいたので、更新してみたいと思います。また、マニュアルの内容についても少し表記ブレになる内容で申請してみます。
送信するとスプレッドシートに回答記録が追加されました。
しばらく待っているとスプレッドシートのPC操作マニュアルの内容が更新されました。あいまいな検索でも問題なく対応できることが確認できましたが、ここは更新されたくない場合はプロンプトを調整するようにされてください。
Google Formを使った更新依頼は集めやすい一方で、手動でマスタに反映していると更新漏れが発生しがちです。Workspace StudioとSheets、Geminiを組み合わせれば、申請の受付からマスタ反映までを自動化し、常に最新の問い合わせ先情報を維持できます。
まずはフォーム項目とマスタ項目を揃え、今回のエージェントで更新作業を効率化していきましょう。