はじめに:中小企業のCRM課題をノーコードで解決する
「Excelで顧客情報を管理しているが、複数人で共有すると上書きが起きる」「見積書を毎回Wordで手打ちしている」「請求書の送付漏れがたまに発生する」——これらはすべて、App Sheet + Googleスプレッドシート の組み合わせで解決できます。
高価なSaaSを導入しなくても、Google Workspaceとノーコードツールだけで、顧客管理・案件管理・見積書・請求書・PDF出力・自動メール送信を一元化したビジネスアプリが作れます。本記事では、実務で動かせる構成を段階的に解説します。
スプレッドシートのデータ設計 / App SheetでCRMアプリを作る手順 / 見積書・請求書のPDF自動生成 / 自動メール送信の設定 / Gemini AIとの連携方法
スプレッドシートのデータ設計
App Sheetはスプレッドシートがデータベースになります。CRMアプリには最低4枚のシートが必要です。
必要なシート構成
| シート名 | 主要列 | 役割 |
|---|---|---|
| 顧客マスタ | 顧客ID・会社名・担当者名・電話・メール・住所・業種・メモ | 顧客情報の一元管理 |
| 案件管理 | 案件ID・顧客ID・案件名・ステータス・担当者・金額・受注確度・次回アクション日 | 商談・パイプライン管理 |
| 見積書 | 見積ID・案件ID・作成日・有効期限・合計金額・ステータス・備考 | 見積書の発行・管理 |
| 請求書 | 請求ID・案件ID・発行日・支払期限・合計金額・入金状況・入金日 | 請求書の発行・入金管理 |
顧客IDは =IF(B2="","","C"&TEXT(ROW()-1,"000")) のような式で自動採番すると、App Sheet側でREF型の参照が安定します。
App SheetでCRMアプリを構築する
-
1
アプリ作成・テーブル接続
AppSheet.com → 「Start for free」→ Googleスプレッドシートを選択。4枚のシートが自動でテーブルとして認識されます。
-
2
カラムの型設定
「顧客ID」はRef型に設定し、案件・見積・請求シートから顧客マスタを参照できるようにします。メールは
Email型、電話はPhone型にするとタップでの発信・送信が可能になります。 -
3
ビューの設計
顧客一覧(Deck型)・案件カンバン(Kanban型)・見積書フォーム(Form型)・請求書一覧(Table型)を作成。ビュー間のナビゲーションをボトムバーに設定します。
-
4
アクションの設定
顧客詳細画面に「見積書を作る」ボタンを追加し、クリックで見積書フォームに自動遷移(顧客情報を引き継ぎ)する動線を作ります。
-
5
権限設定
営業担当者は自分の担当案件のみ閲覧・編集可能に。管理者は全件閲覧可能に。Security Filterで
USEREMAIL() = [担当者メール]を設定します。
案件管理をカンバンで可視化
App SheetのKanbanビューを使うと、案件の進捗をドラッグ&ドロップで管理できる画面が作れます。ステータス列に下記の値を使うと見やすいパイプラインになります。
- リード:初回接触・情報収集段階
- 商談中:ニーズヒアリング・提案準備
- 見積提出:見積書を送付済み
- 交渉中:価格・条件の調整
- 受注確定:発注書受領・契約締結
- 失注:競合負け・予算なし等
受注確度(スコア)の自動計算
App Sheet式で受注確度を数値化すると、パイプラインの売上予測ができます。
# App Sheet式:受注確度スコアの自動計算
IFS(
[ステータス] = "受注確定", 100,
[ステータス] = "交渉中", 70,
[ステータス] = "見積提出", 50,
[ステータス] = "商談中", 30,
[ステータス] = "リード", 10,
true, 0
)
見積書・請求書のPDF自動生成
App SheetのPDF生成機能(または Google Apps Script + Googleドキュメントテンプレート)を使って、見積書・請求書をワンクリックでPDF出力できます。
方法①:App Sheet ドキュメント生成機能
App Sheet には「ドキュメントを生成」アクションがあります(Business / Enterprise プランで利用可能)。Googleドキュメントのテンプレートを作成し、<<[顧客名]>> のようなプレースホルダーを配置するだけでPDFを自動生成できます。
方法②:Apps ScriptでカスタムPDF生成(無料プランOK)
// Google Apps Script: 見積書テンプレートからPDF生成
function generateEstimatePDF(estimateId) {
const templateId = 'YOUR_TEMPLATE_DOCUMENT_ID';
const folderId = 'YOUR_DRIVE_FOLDER_ID';
// スプレッドシートから見積データを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const data = getEstimateData(ss, estimateId);
// テンプレートをコピーして値を埋め込む
const copy = DriveApp.getFileById(templateId)
.makeCopy(`見積書_${data.clientName}_${estimateId}`,
DriveApp.getFolderById(folderId));
const doc = DocumentApp.openById(copy.getId());
const body = doc.getBody();
body.replaceText('{{顧客名}}', data.clientName);
body.replaceText('{{合計金額}}', data.totalAmount.toLocaleString());
body.replaceText('{{有効期限}}', data.expiryDate);
body.replaceText('{{作成日}}', data.createdDate);
doc.saveAndClose();
// PDFに変換してGoogle Driveに保存
const pdf = copy.getAs(MimeType.PDF);
DriveApp.getFolderById(folderId).createFile(pdf);
copy.setTrashed(true); // 中間Docを削除
return pdf.getDownloadUrl();
}
Googleドキュメントテンプレートの作成ポイント
- 会社ロゴ・振込先情報はテンプレートに固定記載
- 明細行は Apps Script でテーブル行を動的追加
- 消費税の計算は
ROUND(小計 * 0.1)を式で埋め込み - ヘッダー・フッターに発行日・ページ番号を設定
自動メール送信の設定
見積書・請求書をPDF生成した後、そのままメールで送付する自動化フローを設定します。
// 見積書PDF生成後に自動メール送付
function sendEstimateEmail(estimateId, pdfUrl) {
const data = getEstimateData(estimateId);
const subject = `【見積書】${data.clientName} 様 / ${data.projectName}`;
const body = `${data.clientName} 様
平素よりお世話になっております。
株式会社sinka 営業部の${data.salesRep}です。
この度ご依頼いただきました件につきまして、
見積書を作成いたしましたのでご確認ください。
▼ 見積書(PDF)
${pdfUrl}
【見積概要】
・件名:${data.projectName}
・合計金額:¥${data.totalAmount.toLocaleString()}(税込)
・有効期限:${data.expiryDate}
ご不明点がございましたらお気軽にお申し付けください。
何卒よろしくお願い申し上げます。`;
GmailApp.sendEmail(data.clientEmail, subject, body);
}
GmailApp は1日あたり100〜500通の制限があります。大量送信が必要な場合はSendGridなどの外部メールAPIを利用してください。
GeminiでCRMをAI化する
CRMにGeminiを組み合わせることで、次回アクションの自動提案・提案文の生成・顧客分類などが可能になります。
商談メモから次回アクションを提案
# Geminiプロンプト例:次回アクション提案
以下の商談メモを読んで、次回の営業アクションを3つ提案してください。
具体的なアクション内容と推奨実施日(今日から何日後か)を含めてください。
顧客名:{client_name}
業種:{industry}
商談日:{meeting_date}
商談メモ:{memo}
出力形式:
1. アクション内容 / 推奨実施日
2. アクション内容 / 推奨実施日
3. アクション内容 / 推奨実施日
見積書の提案文を自動生成
# 見積書送付メールの件名・本文を生成
以下の情報から、見積書を送付するメールの件名と本文を生成してください。
丁寧かつ端的なビジネスメールの文体で書いてください。
顧客名:{client_name}
担当者名:{contact_name}
案件名:{project_name}
見積金額:{amount}万円
提案のポイント:{selling_points}
よくある追加機能
名刺のデジタル化
Geminiのマルチモーダル機能を使って、名刺の写真から会社名・氏名・連絡先を自動抽出し、顧客マスタに登録するフローを Apps Script で実装できます。
入金管理ダッシュボード
Googleスプレッドシートのグラフ機能を使って、月別請求額・入金率・未収金一覧をダッシュボード化し、App SheetのChartビューで表示します。
契約書の自動生成
受注確定後、発注書テンプレートから契約書PDF を自動生成し、電子署名サービス(CloudSign等)のAPIと連携して送付するフローも実現できます。
コストと選択基準
| ツール/サービス | 費用 | 用途 |
|---|---|---|
| Googleスプレッドシート | 無料(Google Workspace含む) | データベース |
| App Sheet Starter | 無料(基本機能) | アプリUI・ビュー |
| App Sheet Core | $5/ユーザー/月 | Automation(自動化)利用 |
| Google Apps Script | 無料 | PDF生成・メール送信・AI連携 |
| Gemini API | Flash: $0.075/100万トークン | 文章生成・次回アクション提案 |
Salesforce や HubSpot は月額3〜10万円以上かかりますが、App Sheet + スプレッドシートなら月額1〜2万円以下で同等の機能を構築できます。ただし、設計・構築に時間がかかるため、社内に担当者を置くか外部に依頼することをおすすめします。
まとめ
App SheetとGoogleスプレッドシートの組み合わせで実現できることをまとめます。
- ✅ 顧客・案件情報の一元管理(複数人同時編集・権限設定)
- ✅ 案件のカンバン管理・パイプライン可視化
- ✅ 見積書・請求書のPDF自動生成
- ✅ 自動メール送信(作成完了通知・支払いリマインダー)
- ✅ GeminiによるAI文章生成・次回アクション提案
- ✅ モバイルアプリとしてスマートフォンからも操作可能
ExcelやWordでの手作業管理から脱却するための第一歩として、ぜひ取り組んでみてください。シンプルな構成から始めて、業務の実態に合わせて少しずつ機能を追加していくのが成功のコツです。