AppSheet × AI Applications連携完全ガイド:社内ドキュメント検索&AI回答を実装するまでの全記録

どうもまた3号です。
先週福岡に出張に行きました。
空港についてラーメンを食べ、博多駅についてラーメンを食べ、晩御飯を食べた後にラーメンを食べ、昼食にラーメンを食べ、
とやっていたら健康診断で血圧が見たことない数値になってました。関係あるかわかりませんが参りました。

はじめに
というわけで本題です。
AppSheetを使っていて、「Googleドライブ内の社内規定や過去の議事録を検索して、さらにAIに要約させたい」と思ったことはありませんか?

今回は、AppSheetとGoogle Cloudの AI Applications(Vertex AI Agent Builder の機能の一部)を連携させ、高度なAI検索機能を実装するまでの過程を共有します。

Node.jsのサンプルコードはあっても、AppSheet(Google Apps Script)での実装情報は少なく、特に権限周りやURLの仕様でかなり苦戦しました。その解決策をまとめます。

実現したこと
・AppSheetで検索ワードを入力。

・GAS経由で AI Applications のAPIを叩く。

・Googleドライブ内のドキュメント(Workspaceデータ) を検索。

・検索結果だけでなく、AIによる要約・回答(営業トークスクリプトの生成など) も取得。

・結果をスプレッドシートに書き戻し、AppSheetで表示。

アーキテクチャ概要
・AppSheet: 検索ワード入力用フォーム(AutomationでGASをキック)

・Google Apps Script (GAS): APIリクエストの実行

・AI Applications: 検索&生成AIエンジン

・Google Sheets: 結果の格納先

実装のポイントとハマりどころ(解決策)

今回、最も共有したいのが以下の「ハマりポイント」です。

1. 認証は「サービスアカウント」ではなく「ユーザー認証」で!

最初はセキュリティを考慮して「サービスアカウント」で実装しようとしましたが、エラーは出ないのに「検索結果が0件」になる現象が発生。

理由: Google DriveなどのWorkspaceデータを検索する場合、セキュリティ(ACL)の観点から「ロボット(サービスアカウント)」による検索は制限されており、「実行ユーザー本人(OAuth)」 の権限でアクセスする必要があります。

  • 解決策: GASの ScriptApp.getOAuthToken() を使用し、マニフェスト(appsscript.json)に https://www.googleapis.com/auth/drive.readonly 等のスコープを追加することで、ユーザー自身の権限としてAPIを叩くようにしました。

2. GASとGCPプロジェクトの「紐付け」が必須

コードは合っているのにAPIが通らない現象が発生。 GASはデフォルトで独自のGCPプロジェクトを持っていますが、これでは外部からのアクセスとみなされ、Workspaceデータへのアクセスが遮断されていました。

  • 解決策: GASのエディタ設定から「GCPプロジェクト番号」を入力し、GASを AI Applications があるプロジェクト内部で動かす設定に変更しました。

3. API URLの罠:「DataStores」ではなく「Engines」

公式ドキュメントのサンプル(Node.js)を参考にURLを構築していましたが、 404 Not Found が頻発。 実は、作成した AI Applications の種類によって、URLのパターンが異なっていました。

  • DataStoreパターン: .../dataStores/{ID}/... (従来のVertex AI Searchなど)
  • Engineパターン: .../engines/{ID}/...AI Applications(Agent Builder)で作った場合はこっち!

コンソールの curl コマンドサンプルをよく確認し、v1alpha バージョンの engines エンドポイントを使うことで解決しました。

4. コンソールで設定したプロンプトが反映されない?

GCPコンソール画面で「あなたは優秀な営業アシスタントです」と設定しても、API経由だと無視されてしまいました。これはコンソール設定がWidget用だからです。

  • 解決策: APIのリクエストボディ(payload)内の modelPromptSpec に、直接プロンプト(role定義)を記述することで解決。これにより、検索結果をもとにした「トークスクリプトの作成」などが可能になりました。

まとめ
AppSheet単体では難しい「非構造化データ(ドキュメント)の検索」も、AI Applications と組み合わせることで強力なツールになります。 ただし、Workspaceデータを扱う場合は「権限のスコープ」「プロジェクトの紐付け」「Engine型のAPIエンドポイント」の3点に注意が必要です。

同じエラーで悩んでいる方の参考になれば幸いです!

また、弊社ではAppSheetのマンツーマンセミナーも行っております。
そもそも作り方よくわかんないよという方はまずこちらがおススメです!!

木下 慶太郎
木下 慶太郎KINOSHITA KEITAROU
記事一覧

ヒカリシステム株式会社 アシスタントマネジャー

法政大学経済学部を卒業後、2012年にヒカリシステム株式会社へ入社。

7年間にわたりパチンコホールの現場業務に従事。2019年よりDXチームへ異動し、AppSheetやLooker Studioを活用した勤怠管理システム、SFA(営業支援システム)、請求管理システムなどの内製化を主導。

現場の課題解決への貢献が評価され、2021年度に社長賞を受賞。

現場で培った経験を基に、テクノロジーを活用して業務効率化や課題解決を実現することに情熱を注いでいます。休日は音楽フェスに参加したり、ゲームをしたりしてリフレッシュしています。

保有資格:

Google AI Essentials
Google Prompting Essentials
ITパスポート

※この記事は、リサーチの一部に生成AIを活用し、最終的な分析・執筆・編集は木下慶太郎が責任を持って行っています。

関連記事