Google Apps Script × Claude API で業務を自動化する3つの実践パターン
記事
IT・テクノロジー
はじめに
「便利そうだから、AIで業務を効率化したい。でもPythonをサーバーに立てるほどの規模じゃない」
この相談、よく受けます。
ヴィージェイ物産株式会社(神戸市)では、ベトナム食品輸入卸売を主軸に、自社EC4モール並行運営・AI開発受託を1人法人で運営しています。社内システムの多くは、Pythonで構築した本格的なサーバー(VPS+MCPサーバー15台)で動いていますが、規模の小さい業務はあえて Google Apps Script(GAS)で組んでいます。
理由はシンプルで、
サーバー代がかからない(Googleが提供する実行環境)スプレッドシート・Gmail・Drive と連携しやすいスクリプトエディタだけで完結し、運用が軽い
そこに Claude API を組み合わせると、「LLMの力を借りた業務自動化」が驚くほど低コストで実現できます。
この記事では、弊社が実際に運用している GAS × Claude API の組み合わせを 3つの実践パターン に絞って紹介します。
パターン①:請求書PDFの自動生成
課題
毎月、取引先に対して請求書をPDFで発行する。手作業だと、Excelで作る → PDF化 → メール送信、の3工程で20〜30分かかる。取引先が10社あれば、月3〜5時間が請求業務に消える。
GAS × Claude APIの構成
Google Sheets(取引先・取引額の一覧)→ GAS(毎月1日に自動実行)→ Claude API(取引内容の説明文を整形)→ Google Docs テンプレートに差し込み → PDF化 → Drive保存 → Gmailで送信
実装ポイント
GASのコード骨子はこんな形です(実コードではなく構造のみ)。
function generateMonthlyInvoices() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('取引先');
const rows = sheet.getDataRange().getValues();
rows.slice(1).forEach(row => {
const [client, amount, items] = row;
const description = callClaude({ prompt: '取引内容を丁寧な日本語に整形:' + items });
const doc = createDocFromTemplate(client, amount, description);
const pdf = doc.getAs('application/pdf');
DriveApp.getFolderById(INVOICE_FOLDER_ID).createFile(pdf);
GmailApp.sendEmail(clientEmail, '【請求書】', '今月分の請求書をお送りします', { attachments: [pdf] });
});
}
Claude APIの活かしどころ
「取引内容の説明文の整形」は、テンプレートだけでは無理が出る部分です。たとえば「コーヒー卸 30袋」と書かれていても、相手先によっては「TRUNG NGUYEN COFFEE 1kg×30袋(業務用ロット)」のように丁寧な表現に変えたい。人間が毎月書くと面倒だが、AIなら一瞬で整形できる。ここがClaude APIの活かしどころです。
パターン②:Gmailの問い合わせメールをClaudeで要約→Sheetsに自動集計
課題
問い合わせメール、毎日10〜20通入る。全部読むのは大変だが、要点を見逃すと取引機会を逃す。「件名・差出人・要約・温度感」を自動で整理したい。
GAS × Claude APIの構成
Gmail(特定ラベルに新着メール)→ GAS(5分に1回チェック)→ Claude API(メール本文を要約+温度感を判定)→ Google Sheets に追記(一覧化)→ 温度感「高」のときChatworkに通知
実装ポイント
function digestInquiries() {
const threads = GmailApp.search('label:問い合わせ is:unread');
threads.forEach(thread => {
const msg = thread.getMessages()[0];
const result = callClaude({ prompt: '以下を要約・温度感・想定アクションのJSONで返す:' + msg.getPlainBody() });
const parsed = JSON.parse(result);
SpreadsheetApp.getActive().getSheetByName('問い合わせログ').appendRow([
new Date(), msg.getFrom(), msg.getSubject(), parsed.summary, parsed.temperature, parsed.action
]);
if (parsed.temperature === '高') notifyChatwork('緊急度高い問い合わせ:' + msg.getSubject());
thread.markRead();
});
}
活用効果
弊社では、この仕組みで「問い合わせ確認の往復時間」を 1日30分→5分 に短縮しました。温度感が高いものだけ自分で読み、それ以外はSheets一覧で済ませる運用です。
パターン③:Zoom録画の文字起こし→Claudeで議事録に整形
課題
Zoom会議の録画、文字起こしまでは Zoom が自動でやってくれる。でも、出てくるのは「あー」「えー」だらけの生の発話。そのまま議事録として共有すると読みにくい。
GAS × Claude APIの構成
Zoom録画(Drive自動連携)→ GAS(新規動画を検知 or 手動トリガー)→ Zoom自動文字起こしテキスト(VTTファイル)取得 → Claude API(議事録形式に整形+アクションアイテム抽出)→ Google Docs に保存 → 関係者に共有リンク送信
実装ポイント
function summarizeMeeting(vttFileId) {
const vttText = DriveApp.getFileById(vttFileId).getBlob().getDataAsString();
const summary = callClaude({
prompt: 'Zoom自動文字起こしを「議題/決定事項/アクションアイテム/次回宿題」の形式で整形:
' + vttText,
max_tokens: 2000
});
const doc = DocumentApp.create('議事録_' + new Date().toISOString().split('T')[0]);
doc.getBody().setText(summary);
postToSlack('議事録ができました:' + doc.getUrl());
}
活用効果
「議事録を書く時間」が 会議1本あたり40分→3分 に短縮。特に複数の取引先と同時並行で打ち合わせをする場合、これが効きます。
まとめ:GAS × Claude API の組み合わせは「軽くて強い」
Pythonサーバー実装は大規模向けで自由度が高いが、サーバー代と環境構築コストがかかる。GAS × Claude APIは初期コスト0円・ブラウザだけで完結・LLM連携も Claude API直叩きで十分、という軽さが特徴です。
「業務時間を月10時間削減」「軽くて運用が楽」 を求めるなら、まずGAS × Claude APIから始めるのが現実的 です。
こんな自動化、依頼するといくらかかるか
ヴィージェイ物産株式会社では、上記のような GAS × Claude API による業務自動化を、ココナラのサービス出品で承っています。
請求書PDF自動生成(パターン①):10,000〜15,000円・5〜7日
Gmail要約→Sheets集計(パターン②):10,000〜20,000円・5〜10日
議事録整形(パターン③):10,000〜15,000円・5〜7日
上記3本セット導入:30,000〜50,000円・2〜3週間
「ちょうどこういうの作ろうとしていた」「自分で組むより頼んだ方が早い」と感じた方は、ココナラのサービス出品ページからお気軽にご相談ください。
この記事は、ヴィージェイ物産株式会社(神戸市)が自社運営の業務自動化基盤で実際に使っているノウハウをもとに執筆しています。記載内容は2026年4月時点の情報です。
次回は「Amazon SP-APIをPHPで叩くときの『リフレッシュトークン正しい運用』」を予定しています。