トップ/ 技術コラム/ App Sheetワークフロー構築

Claude・GeminiとApp Sheetでワークフローアプリを構築|承認フロー・自動通知を実装

はじめに:ノーコードでも「本格ワークフロー」は作れる

「申請書をスプレッドシートで管理しているが、承認漏れが多い」「Slackで承認依頼を送っているが、対応状況が見えない」——こうした課題を、コーディングなしで解決できるのが Google App Sheet です。

さらに、App SheetにGeminiやClaude APIを組み合わせることで、AIが申請内容を要約・チェックし、承認者に的確な情報を伝えるインテリジェントなワークフローが実現します。本記事では、経費申請・稟議書・休暇申請などに使える承認フローの構築手順を、実務レベルで解説します。

📋
この記事でわかること

App Sheetで承認ワークフローを設定する方法 / Gemini・Claude APIとの連携パターン / 自動メール・Slack通知の実装 / 実務で使えるプロンプト例

App Sheetのワークフロー機能とは

App Sheetは、Googleスプレッドシートをデータソースとしてノーコードでアプリを作成できるプラットフォームです。Google Workspaceに含まれており、追加コストなしで利用できます(一部プラン除く)。

ワークフロー機能として特に重要なのが Automation(自動化) です。「レコードが追加されたとき」「ステータスが変わったとき」といったトリガーに応じて、メール送信・Slack通知・データ更新・外部API呼び出しなどを自動実行できます。

機能 内容 活用例
トリガー レコード追加・更新・削除・スケジュール 申請が来たら承認者にメール
条件分岐 金額・部署・タイプで処理を切替 10万円以上は役員承認へ
メール送信 テンプレートで自動送信 承認完了通知・却下通知
Webhook 外部APIへのHTTPリクエスト Claude API / Slack / Chatwork
Apps Script連携 Google Apps Scriptで高度な処理 PDF生成・AI要約

承認ワークフローの構築手順

Step 1:スプレッドシートでデータ設計

まずGoogleスプレッドシートに申請データのテーブルを作成します。経費申請の場合、以下のような列構成が基本です。

# スプレッドシート列構成(経費申請テーブル)
申請ID      | 申請日     | 申請者名   | 申請者メール
申請種別    | 金額       | 目的・内容 | 添付ファイル
ステータス  | 承認者メール | 承認日    | コメント
AI要約      | 優先度     | 部門コード

ポイント:「ステータス」列は 申請中 / 承認済 / 却下 / 差戻し の4値に統一すると、App Sheetのフィルタリングと自動化が設定しやすくなります。

Step 2:App Sheetでアプリ作成

  • Google Driveからスプレッドシートを選択してアプリを作成
  • 「申請フォーム」ビュー:Form型ビューで入力画面を構成
  • 「承認一覧」ビュー:承認者用にステータスでフィルタリング
  • 「マイ申請」ビュー:申請者が自分の申請のみ閲覧
💡
Security Filterで権限制御

App Sheetの「Security Filter」機能を使うと、USEREMAIL() = [申請者メール] のような式で、ログインユーザーが自分のデータのみ閲覧できるよう制限できます。

Step 3:Automationで承認フローを設定

App SheetのAutomationタブで以下のボットを作成します。

  • 1
    申請受付ボット

    トリガー:新規レコード追加(ステータス=申請中)
    アクション:承認者へメール送信(申請内容・承認URLを記載)

  • 2
    承認完了ボット

    トリガー:ステータスが「承認済」に変更
    アクション:申請者へ承認通知メール + 必要に応じてSlack通知

  • 3
    却下・差戻しボット

    トリガー:ステータスが「却下」または「差戻し」に変更
    アクション:理由コメントを含む通知メールを申請者へ送信

  • 4
    リマインダーボット

    トリガー:スケジュール(毎朝9時)
    アクション:48時間以上「申請中」のものを承認者にリマインド

GeminiとApp Sheetの連携

App SheetはGoogle Workspace製品と同じGoogleエコシステムのため、Gemini APIとの連携が最も簡単です。Google Apps Scriptを介してGemini APIを呼び出し、その結果をApp Sheetのセルに書き戻す方法が一般的です。

Apps Script経由でGemini呼び出し

// Google Apps Script: Gemini APIで申請内容を要約
function summarizeWithGemini(applicationText) {
  const API_KEY = PropertiesService.getScriptProperties()
                   .getProperty('GEMINI_API_KEY');
  const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${API_KEY}`;

  const payload = {
    contents: [{
      parts: [{
        text: `以下の申請内容を承認者向けに3行以内で要約してください。
              金額・目的・緊急度を含めること。\n\n${applicationText}`
      }]
    }]
  };

  const response = UrlFetchApp.fetch(url, {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify(payload)
  });

  const result = JSON.parse(response.getContentText());
  return result.candidates[0].content.parts[0].text;
}

このスクリプトをApp SheetのWebhookから呼び出す場合は、Apps Scriptを Webアプリとしてデプロイ し、そのURLをApp SheetのAutomation → Call a script のエンドポイントに設定します。

Geminiで申請内容を自動チェック

単純な要約だけでなく、以下のような高度なチェックも可能です。

// 申請内容の妥当性チェックプロンプト例
`あなたは経費申請の審査担当です。以下の申請を確認し、
下記の観点でチェックしてください。

申請内容: ${applicationContent}
申請金額: ${amount}円
申請種別: ${category}

【チェック観点】
1. 金額と目的の整合性(高額すぎないか)
2. 必要な情報が揃っているか(日付・先方・目的)
3. 社内規程上の問題点(上限額・禁止項目)

結果を JSON 形式で返してください:
{"status": "OK/要確認/NG", "reason": "...", "priority": "高/中/低"}`
💡
AI要約を承認メールに埋め込む

Geminiが生成した要約テキストをスプレッドシートの「AI要約」列に書き込み、App Sheetのメールテンプレートで <<[AI要約]>> として参照すると、承認者は詳細を確認する前に概要を把握できます。

Claude APIとの連携パターン

より高度な文章生成・分析が必要な場合は Claude API(Anthropic)との連携も有効です。Claude は長文の読み込みや複雑な判断が得意なため、稟議書・契約書レビューなどに特に適しています。

Claude APIをApp SheetのWebhookから呼び出す

// Apps Script: Claude API呼び出し
function reviewWithClaude(documentText) {
  const CLAUDE_API_KEY = PropertiesService.getScriptProperties()
                          .getProperty('CLAUDE_API_KEY');

  const payload = {
    model: "claude-opus-4-5",
    max_tokens: 1024,
    messages: [{
      role: "user",
      content: `以下の稟議書を法務・コンプライアンス観点でレビューし、
承認者へのアドバイスを簡潔にまとめてください。

${documentText}`
    }]
  };

  const response = UrlFetchApp.fetch('https://api.anthropic.com/v1/messages', {
    method: 'post',
    headers: {
      'x-api-key': CLAUDE_API_KEY,
      'anthropic-version': '2023-06-01',
      'content-type': 'application/json'
    },
    payload: JSON.stringify(payload)
  });

  const result = JSON.parse(response.getContentText());
  return result.content[0].text;
}

GeminiとClaudeの使い分け

用途 推奨モデル 理由
申請内容の3行要約 Gemini Flash 低コスト・高速。Google Workspaceと親和性が高い
稟議書・契約書のレビュー Claude 長文処理・ニュアンス判断が得意
FAQ自動回答 Gemini Pro Google検索との連携でリアルタイム情報も参照可能
複雑な分類・優先度判定 Claude 細かい条件分岐や例外処理が得意

Slack自動通知の設定

メール通知に加え、Slackへの通知を追加すると承認スピードが大幅に向上します。App SheetのAutomationから Slack Incoming Webhook を呼び出す方法を紹介します。

Slack Webhookの設定

  • Slack管理画面 → Apps → Incoming Webhooks → Add to Slack
  • 通知先チャンネルを選択してWebhook URLを取得
  • App Sheet Automation → "Call a webhook" → URL に貼り付け
// Slackへ送るJSONペイロード(App Sheet式で構成)
{
  "text": "【承認依頼】新しい申請が届きました",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*申請者:* <<[申請者名]>>\n*金額:* <<[金額]>>円\n*目的:* <<[AI要約]>>"
      }
    },
    {
      "type": "actions",
      "elements": [{
        "type": "button",
        "text": { "type": "plain_text", "text": "アプリで確認" },
        "url": "https://www.appsheet.com/start/..."
      }]
    }
  ]
}

実務で使える応用パターン

多段階承認(2段階・3段階)

金額によって承認段階を変えるパターンは、スプレッドシートに「承認フェーズ」列を追加し、ステータスを 一次承認待ち → 二次承認待ち → 最終承認待ち → 完了 と遷移させることで実現できます。各フェーズの変更をトリガーとして次の承認者への通知ボットを用意します。

モバイルからの承認

App Sheetはスマートフォンアプリとしても動作します。承認者はスマートフォンから申請一覧を確認し、その場で承認・却下できます。メールに記載した「アプリで開く」URLをタップするだけで対象レコードに直接遷移できます。

PDF出力との連携

承認済みの申請書をPDF化して保管する場合、Apps ScriptでGoogleドキュメントのテンプレートにデータを流し込み、PDF出力→Google Driveに保存→申請者にリンク送付、というフローを自動化できます。

⚠️
外部API利用時のAPI Key管理

Gemini・Claude APIのキーは、Apps Scriptの「スクリプトプロパティ」に保存し、スクリプト本文にハードコードしないようにしてください。スプレッドシートのセルやApp Sheetの設定画面に直接書くことも避けましょう。

コストと導入のポイント

ツール 費用感 備考
App Sheet 無料〜$10/ユーザー/月 Google Workspace Business以上は含まれる場合あり
Gemini API Flash: 約$0.075/100万トークン 申請要約なら1申請あたり0.01円以下
Claude API claude-haiku: 約$0.25/100万トークン 稟議書レビュー用途なら月数百円〜
Slack 無料〜$7.25/ユーザー/月 Incoming Webhookは全プランで利用可能

まとめ:AIワークフローで「承認待ち」をなくす

App SheetとGemini/Claude APIを組み合わせることで、次のような効果が期待できます。

  • 承認スピード向上:AI要約で承認者の確認時間を短縮。Slack通知で承認漏れを防止
  • 申請品質の向上:AIによる事前チェックで不備のある申請を削減
  • トレーサビリティ:すべての申請・承認履歴がスプレッドシートに残る
  • 低コスト導入:Google WorkspaceとAPI費用のみで本格ワークフローを実現

まずは1種類(経費申請など)からシンプルな構成で始め、慣れてきたら多段階承認・AI要約・PDF出力へと段階的に拡張することをおすすめします。

🚀
株式会社sinkaでは導入支援を行っています

App Sheet + AI連携のワークフロー構築を支援しています。社内の申請フロー整理からシステム構築・運用サポートまでお気軽にご相談ください。

App SheetやAI連携について相談したい

ワークフロー構築・業務改善の無料相談を受け付けています。