Google Workspace を使っている中小企業は日本だけで数百万社あります。その多くが、毎日同じような作業を手動で繰り返しています。問い合わせメールの仕分け、売上レポートの手入力、議事録の整理——こうした業務は自動化できるのに、そのやり方を知らないだけです。ここに Gemini を組み合わせると、自動化サービスという名の副業が生まれます。
私は個人で複数のアプリを開発してきた中で、「ビジネスロジック」と「マネタイズ」がどのように結びつくのかを学んできました。ここではその経験を踏まえて、Google Workspace と Gemini を使って月5万円〜10万円の安定した副業収入を作るための具体的なロードマップをお伝えします。テンプレート、価格設定、営業方法まで、すぐに実践できる形でお届けします。
Google Workspace 自動化サービスが副業として成立する理由
まず、なぜこのビジネスモデルが成立するのかを理解しておきます。
市場規模: Google Workspace のユーザー数は世界で8億人を超えています。日本国内の中小企業に限定しても、Workspace を導入している企業は数百万社存在します。その大多数が、業務効率化の必要性を感じながらも、「自動化=プログラミング」だと思い込んで諦めています。
ニーズの永続性: 一度自動化を構築してしまえば、その企業は継続的にそのサービスに依存します。月額制のサブスクリプションモデルが自然に成立し、クライアント一社あたりの生涯顧客価値(LTV)が高い。
技術的な参入障壁の低さ: Google Apps Script と Gemini API を組み合わせるだけで、複雑な自動化が短時間で実装できます。わざわざサーバーをレンタルしたり、複雑なバックエンド開発をする必要がありません。
スケーラビリティ: テンプレートを一度作ってしまえば、それを複数のクライアントに横展開できます。「オーダーメイド開発」ではなく「テンプレート+カスタマイズ」という形で効率化できます。
この条件を満たすビジネスモデルは稀です。だからこそ、今から始める価値があります。
テンプレート 1: Gmail 問い合わせ自動分類+返信ドラフト生成
まずは、最も多くの中小企業が悩む「問い合わせメール対応」を自動化しましょう。
問い合わせメールが来るたびに手動で読んで、優先度を判定して、ざっくりした返信を書くという作業は、まさに Gemini に向いています。Gemini は文脈を理解し、自然言語で返信ドラフトを生成できるためです。
実装の流れ
- Gmail で新着メールを監視
- メール本文を Gemini に送る
- Gemini が「カテゴリ」「優先度」「返信ドラフト」を生成
- Google Sheets にログを記録
- Slack または Gmail の下書きに送信
完全な Apps Script コード
// Gmail 問い合わせ自動分類 + 返信ドラフト生成
// 前提条件: Gemini API キーを Script Properties に保存
// - プロパティキー: GEMINI_API_KEY
// - 値: YOUR_GEMINI_API_KEY
const GEMINI_API_KEY = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
const GEMINI_MODEL = 'gemini-2.0-flash';
const SHEET_ID = 'YOUR_SPREADSHEET_ID'; // 結果を記録するスプレッドシートID
function classifyIncomingEmails() {
// 過去1日の未分類メールを取得
const threads = GmailApp.search('label:INBOX is:unread newer_than:1d');
if (threads.length === 0) {
Logger.log('新しいメールはありません');
return;
}
const sheet = SpreadsheetApp.openById(SHEET_ID).getActiveSheet();
const results = [];
threads.forEach(thread => {
const messages = thread.getMessages();
const lastMessage = messages[messages.length - 1];
const sender = lastMessage.getFrom();
const subject = lastMessage.getSubject();
const body = lastMessage.getPlainBody().substring(0, 2000); // 最初の2000文字のみ
// Gemini に分類を依頼
const classification = classifyWithGemini(subject, body);
if (classification) {
// ラベルを設定
const category = classification.category;
const label = GmailApp.getUserLabelByName(category) || GmailApp.createLabel(category);
thread.addLabel(label);
// 返信ドラフトを作成
const draftContent = createDraftReply(sender, subject, classification.reply_draft);
// スプレッドシートに記録
results.push([
new Date(),
sender,
subject,
category,
classification.priority,
draftContent,
'created'
]);
// Gmail の下書きフォルダに保存(オプション)
GmailApp.createDraft(sender, subject, draftContent);
}
});
// 結果をスプレッドシートに書き込み
if (results.length > 0) {
sheet.getRange(sheet.getLastRow() + 1, 1, results.length, results[0].length).setValues(results);
}
}
function classifyWithGemini(subject, body) {
const prompt = `
以下のメールを分類してください。JSON形式で以下を返してください:
- category: "営業" | "サポート" | "請求" | "採用" | "その他"
- priority: "高" | "中" | "低"
- reply_draft: 返信文のドラフト(敬語で2-3行)
件名: ${subject}
本文:
${body}
必ずJSON形式で返してください。
`;
try {
const response = UrlFetchApp.fetch('https://generativelanguage.googleapis.com/v1beta/models/' + GEMINI_MODEL + ':generateContent', {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify({
contents: [{
parts: [{
text: prompt
}]
}]
}),
headers: {
'x-goog-api-key': GEMINI_API_KEY
},
muteHttpExceptions: true
});
const result = JSON.parse(response.getContentText());
if (result.contents && result.contents[0]) {
const text = result.contents[0].parts[0].text;
// JSON を抽出
const jsonMatch = text.match(/\{[\s\S]*\}/);
if (jsonMatch) {
return JSON.parse(jsonMatch[0]);
}
}
} catch (error) {
Logger.log('Gemini API エラー: ' + error);
}
return null;
}
function createDraftReply(sender, subject, draftContent) {
return `${sender} 様\n\n${draftContent}\n\nよろしくお願いいたします。`;
}
// 毎朝8時に実行するようにトリガーを設定
function setupTrigger() {
ScriptApp.newTrigger('classifyIncomingEmails')
.timeBased()
.atHour(8)
.everyDays(1)
.create();
}クライアントへの納品形式
このスクリプトを「テンプレート」として納品する際は、以下のように整理します:
- スプレッドシート一式(ログ記録用)
- Apps Script ファイル(上記コード)
- セットアップマニュアル(Gemini API キーの取得方法、メールラベルの設定など)
- サポートドキュメント(トラブル時の対処法)
初期費用: 3万円(テンプレート適用+カスタマイズ+セットアップ) 月額: 1万円(保守+Gemini API費用カバー+アップデート対応)
テンプレート 2: スプレッドシート売上レポート自動要約
次に、「売上データを毎月手で要約して報告する」という作業を自動化します。これもまた、Gemini の得意分野です。
数字をそのまま報告するのではなく、「今月は前月比15%増で、特に Web サービス部門が好調でした」というような自然言語要約を自動生成できます。
実装の流れ
- Google Sheets のデータを読み取る
- Gemini に「この数字から見えるトレンドと洞察をまとめて」と依頼
- 自動生成された要約を Slack または Gmail で送信
// スプレッドシート売上レポート自動要約
function generateSalesReport() {
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();
// ヘッダーと数値データを整形
const headers = data[0];
const latestRow = data[data.length - 1];
const previousRow = data[data.length - 2];
let reportData = 'セールスレポート\n\n';
reportData += '【最新データ】\n';
for (let i = 0; i < headers.length; i++) {
reportData += `${headers[i]}: ${latestRow[i]}\n`;
}
reportData += '\n【前月比】\n';
for (let i = 0; i < headers.length; i++) {
if (!isNaN(latestRow[i]) && !isNaN(previousRow[i])) {
const change = ((latestRow[i] - previousRow[i]) / previousRow[i] * 100).toFixed(1);
reportData += `${headers[i]}: ${change > 0 ? '+' : ''}${change}%\n`;
}
}
// Gemini に要約を依頼
const summary = summarizeWithGemini(reportData);
// Slack に送信(Slack Webhook を使用)
sendToSlack(summary);
}
function summarizeWithGemini(reportData) {
const prompt = `
以下のセールスデータから、経営層向けの要約レポートを作成してください。
- 最大3段落
- 数字の増減と背景のトレンドを記述
- アクションアイテムがあれば記載
データ:
${reportData}
日本語で自然な文体で書いてください。
`;
try {
const response = UrlFetchApp.fetch('https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent', {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify({
contents: [{
parts: [{
text: prompt
}]
}]
}),
headers: {
'x-goog-api-key': PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY')
},
muteHttpExceptions: true
});
const result = JSON.parse(response.getContentText());
if (result.contents && result.contents[0]) {
return result.contents[0].parts[0].text;
}
} catch (error) {
Logger.log('要約生成エラー: ' + error);
}
return '要約の生成に失敗しました';
}
function sendToSlack(message) {
const webhookUrl = PropertiesService.getScriptProperties().getProperty('SLACK_WEBHOOK_URL');
if (!webhookUrl) {
Logger.log('Slack Webhook URL が設定されていません');
return;
}
UrlFetchApp.fetch(webhookUrl, {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify({
text: '📊 日次セールスレポート',
blocks: [{
type: 'section',
text: {
type: 'mrkdwn',
text: message
}
}]
})
});
}
// 毎日15時に実行
function setupDailyReportTrigger() {
ScriptApp.newTrigger('generateSalesReport')
.timeBased()
.atHour(15)
.everyDays(1)
.create();
}このテンプレートのポイントは、「データの自動解釈」です。スプレッドシートの数値を入れるだけで、経営判断に必要な「インサイト」が自動生成されます。クライアントにとっては、日々の報告作業が完全に不要になります。
テンプレート 3: Google Docs 議事録自動整形+アクションアイテム抽出
3番目のテンプレートは、「会議の議事録を自動整理して、誰が何をすべきかを明確にする」というものです。
多くの企業では、会議が終わった後に議事録を手で整理しています。しかし Gemini は、箇条書きの議事録から自動的に以下を抽出できます:
- 決定事項
- アクションアイテムと担当者
- 次回会議の予定
- リスク項目
// Google Docs 議事録自動整形
function processMinutesOfMeeting(docId) {
const doc = DocumentApp.openById(docId);
const body = doc.getBody();
const fullText = body.getText();
// Gemini に構造化を依頼
const structured = structureMinutes(fullText);
// ドキュメントをクリア&整形されたテキストを挿入
body.clear();
const title = body.appendParagraph('【会議議事録】');
title.setHeading(DocumentApp.ParagraphHeading.HEADING1);
Object.keys(structured).forEach(section => {
const sectionPara = body.appendParagraph(section);
sectionPara.setHeading(DocumentApp.ParagraphHeading.HEADING2);
const items = structured[section];
if (Array.isArray(items)) {
items.forEach(item => {
body.appendListItem(item).setGlyphType(DocumentApp.GlyphType.BULLET);
});
} else {
body.appendParagraph(items);
}
});
// アクションアイテムをカレンダーイベントとして自動作成
createCalendarEventsFromMinutes(structured['アクションアイテム']);
doc.saveAndClose();
}
function structureMinutes(text) {
const prompt = `
以下の会議議事録を構造化してください。JSON形式で返してください。
以下のセクションを必ず含める:
- "決定事項": 決められたことのリスト
- "アクションアイテム": "担当者: 内容 (期限)" 形式
- "リスク": 確認すべき懸念事項
- "次回会議": 日時と議題
議事録:
${text}
必ずJSON形式で返してください。
`;
try {
const response = UrlFetchApp.fetch('https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent', {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify({
contents: [{
parts: [{
text: prompt
}]
}]
}),
headers: {
'x-goog-api-key': PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY')
},
muteHttpExceptions: true
});
const result = JSON.parse(response.getContentText());
if (result.contents && result.contents[0]) {
const jsonText = result.contents[0].parts[0].text;
const jsonMatch = jsonText.match(/\{[\s\S]*\}/);
if (jsonMatch) {
return JSON.parse(jsonMatch[0]);
}
}
} catch (error) {
Logger.log('議事録構造化エラー: ' + error);
}
return {};
}
function createCalendarEventsFromMinutes(actionItems) {
if (!actionItems || !Array.isArray(actionItems)) return;
const calendar = CalendarApp.getDefaultCalendar();
actionItems.forEach(item => {
// "太郎: レポート提出 (2026-05-15)" 形式をパース
const match = item.match(/(.+?):\s*(.+?)\s*\((\d{4}-\d{2}-\d{2})\)/);
if (match) {
const assignee = match[1];
const task = match[2];
const dueDate = new Date(match[3]);
// イベント作成
calendar.createAllDayEvent(
`[TODO] ${task} (${assignee})`,
dueDate
);
}
});
}このテンプレートの価値は、「後処理がゼロになる」という点です。会議が終わったら、議事録をそのまま Google Docs に貼り付けるだけ。整形、分類、カレンダー登録まで全てが自動で完結します。
副業としてのビジネス設計
ここからは、「3つのテンプレートをどのようにビジネスに変えるか」を整理します。
価格設定モデル
私が実際に推奨する価格構成は以下の通りです:
初期費用: 3万円(テンプレートのカスタマイズ+セットアップ+Gemini API キー設定) 月額費用: 1万円(API 利用料金+保守+月1回の改善相談)
初期費用の内訳: テンプレート選定と説明に3時間、Gemini API キー取得とセットアップに1時間、Google Sheets / Gmail ラベル設定に1時間、テンプレート微調整に2時間、ドキュメント・マニュアル作成に1時間。合計でマージンを含めて3万円とします。
月額費用の内訳: Gemini API の実費は月1,000〜3,000円程度、メンテナンスに月2時間(4,000円相当)、月1回30分の専任サポート相談(3,000円相当)を含めて、合計1万円となります。
この価格設定なら、クライアント企業も「これくらいなら試してみようか」と思いやすく、あなたの手取りも月6,000〜8,000円程度は確保できます。
営業テンプレート
「でも、どうやってクライアントを見つけるの?」という質問が必ず出ます。答えは、既存の顧客ネットワークから始めるです。
以下のテンプレートを参考に、あなたが知っている小規模事業主にメールを送ってみてください。
「件名: 【無料診断】あなたの業務、毎月どれくらいの時間を無駄にしていますか?」
本文は以下の通りです:
お疲れ様です。廣川政樹です。
最近、Google Workspace を使っている経営者から「毎日のメール返信や報告書作成に時間を取られている」という悩みをよく聞きます。
そこで、私は最新の AI 技術(Google Gemini)を使った「業務自動化サービス」を提供し始めました。
【実績例】
- 問い合わせメールの自動仕分け → 対応時間を40%削減
- 売上レポートの自動生成 → 毎月2時間の手作業が不要に
- 会議議事録の自動整形 → 事務担当者の負担ゼロに
特に、新規顧客からの問い合わせメールが多い業種では、かなりの効果が期待できます。
もし興味があれば、あなたの業務フローを見て「どこが自動化できるか」を無料で診断させていただきます。
よろしくお願いいたします。
廣川政樹
このメールの特徴は、「相手の課題」から始まるという点です。「あなたの時間が浮きますよ」という提案なら、経営者は聞く耳を持ちます。
実際のコスト構造を把握する
副業として持続させるには、「月額1万円をクライアントから受け取れば、自分の手取りがいくらになるのか」を正確に計算する必要があります。
Gemini API の実費は以下の通りです。
1メール分類に約0.1円、1日に50通のメール処理なら約5円で、月額150円程度です。スプレッドシート要約や議事録処理を含めても、1社あたりのクライアントなら Gemini の実費は月200〜500円です。
実際の月収シミュレーションは以下の通りです:
月額クライアント料金: 1万円 Gemini API 実費: 500円 あなたの時間(保守&サポート): 月2時間(4,000円相当) 手取り(粗利): 約5,500円/社
クライアント3社獲得できれば、月額16,500円の安定収入が生まれます。これは決して大きな数字ではありませんが、労力に対するリターンの比率が非常に高い点が肝心です。
最初の1社を獲得するための具体的なアクション
理論はここまでです。ここからは、実践です。
Step 1: 身近な経営者リストを作る(2時間)
あなたが知っている小規模事業主を思い出してリストアップします。目安は10〜20人です。
Step 2: テンプレートを1つ選んで完成させる(8時間)
3つのテンプレートの中から「自分が一番納得して説明できるもの」を1つ選びます。それを実際に自分の Google Workspace に構築して、動作確認をします。
Step 3: マニュアルを書く(3時間)
「このテンプレートをセットアップするために、クライアントは何をすればいいのか」を箇条書きでまとめます。スクリーンショット付きだと更に親切です。
Step 4: メールを5人に送る(1時間)
営業テンプレートを参考に、メールを実際に送ります。返信率は20〜30%程度の感覚を持っておくといいでしょう。
Step 5: 電話で無料診断をする(1時間/人)
返信が来たら、「実際にあなたの業務フローをヒアリングして、どこが自動化できるか」を話します。
Step 6: 提案書を送る(2時間)
診断の結果に基づいて、「月額1万円で、こんなことができますよ」という提案書を送ります。デモ動画やスクリーンショットを含めると成約率が上がります。
これで、確率的には「5人中1人は契約」という流れになります。つまり、最初の1社を獲得するのに、合計18時間程度の投資で十分です。
結び: 副業から事業へ
ここでは「Google Workspace × Gemini」という組み合わせで、月5万円の副業を作る方法をお伝えしました。
重要なのは、これは「テンプレート型のビジネス」だということです。1社目を作ってしまえば、2社目、3社目は大幅に時間が短縮できます。経験が積まれると、営業トークもカスタマイズ方法も洗練されていきます。
そして、クライアント数が10社を超えたあたりから、「もう個人で管理できない」という課題が出てきます。そこで初めて、「事業化してアシスタントを雇う」という選択肢が現実味を帯びてきます。
副業から事業へ——この流れは、個人開発者にとって最も自然なキャリアパスの1つです。まずは、あなたが持っている最初のテンプレートを完成させて、身近な人に話しかけることから始めてみてください。
技術は既にあります。あとは、行動あるのみです。