経営ダッシュボード
HubSpot・Board・freee の 3 サービスを BigQuery に集約し、売上から予実まで 6 画面を毎朝自動更新する。
このPoCから得た実装知
- 1freee の OAuth refresh token は single-use で 30 日未使用で失効する。CI への自動ローテーション機構を最初から組み込まないと運用が止まる
- 2ELT パターン(raw に素のまま蓄積、変換は BigQuery VIEW に閉じ込める)はスキーマ変更への耐性が高い。Extractor を再実行するだけでリカバリできる
- 33 サービスを並列同期し、1 つが落ちても他は継続する設計(continue-on-error)が日次の安定稼働に不可欠
- 4mart VIEW は SQL ファイルを staging → marts の順でデプロイすればよく、ビルドツールを使わずシェルスクリプト 1 本で管理できる
- 5月次レポートは Google Sheets 書き込み → PDF 変換 → Drive 保存 → Slack 通知を自動化し、人がやることを「予算シートの月次入力」だけに絞れる
判断材料
- AI 権限レベル
- 見るだけAI
- 想定対象部門
- 経営企画財務・経理営業
- 扱うデータ
- CRM(HubSpot)案件管理(Board)会計(freee)予算(Google Sheets)Slack
- 人間の承認
- 不要(閲覧・通知のみ)
- 失敗時の止め方
- 全 raw テーブルが full_refresh 戦略のため、再実行で最新スナップショットに置換される。mart は VIEW なので raw が正常なら自動復旧する
- 導入難易度
- 4 / 5
- 初期導入期間
- 2〜4 週間でパイプライン構築、Looker Studio 接続まで完了
- 必要な社内担当
- エンジニア(TypeScript・BigQuery)各 SaaS 管理者(API 認証情報の発行)経営企画担当(予算シート入力)
- 連携対象 SaaS
- HubSpotBoard(the-board.jp)freee 会計Google SheetsBigQueryLooker StudioSlack
- 最小構成
- 1 サービス(例: freee 会計のみ)から始め、P&L ビューを 1 枚作るだけで価値が出る
- 横展開先
- 売上・受注管理P&L 月次モニタリング予実管理顧客・商談パイプライン管理案件進捗管理週次サマリー配信
このPoCが向いている会社
以下に1つでも当てはまる会社では、効果が大きい。
- HubSpot・Board・freee を並行利用しており、データを手動で Excel に転記して報告している
- 月次の P&L レポート作成に経理・経営企画が半日以上を使っている
- 売上見込と会計実績の乖離が朝会で即答できない
- 予算と実績を同じ画面で比較する仕組みがなく、月末にならないと着地が見えない
- 複数部門が存在し、部門別の損益を月次で把握したい
経営インパクト
3 つの SaaS を個別に開き、CSVやコピペで数字を Excel に集約して経営報告を作る
毎朝 10 時に GitHub Actions が 3 サービスを並列同期し、Looker Studio の 6 ページが自動更新される。月次レポートは 5 日に自動生成され Slack に届く
- 減ったリスク
- 手動集計の転記ミス・最新データ未反映によるレポートずれの解消
- 判断の改善
- 売上・受注・P&L・予実・顧客・案件進捗を 1 つのダッシュボードで横断でき、朝会での意思決定に使えるようになる
- 横展開できる型
- ELT パターン(raw→staging→mart)と GitHub Actions の並列同期フレームはほかの SaaS 追加にそのまま応用できる
このデータがあれば、これができる
- ▸freee 会計の API 認証情報
- ▸GitHub Actions シークレット設定
- ▸月次 P&L ビュー(Looker Studio)
- ▸月次損益レポート自動生成(Sheets + Slack)
- ▸HubSpot API トークン
- ▸Board API キー
- ▸freee OAuth
- ▸Google Sheets(予算データ)
- ▸GCP サービスアカウント
- ▸6 ページ経営ダッシュボード(売上・P&L・顧客・案件・予実・週次)
- ▸毎朝 10 時の日次売上見込 Slack 通知(Board 確定・見込・freee 実績の 3 軸)
- ▸月 5 日の月次損益レポート(Sheets 書き込み・PDF 生成・Drive 保存・Slack 配信)
- ▸部門別 P&L の自動集計
Pain — どんな痛みがあったか
- 今月の売上着地を即答できない
- P&L と CRM の売上見込の乖離が把握できない
- 部門別の損益が月末にしかわからない
- 3 つのサービスを個別に開いて数字を Excel に集約する作業が毎月発生する
- 予算シートと freee の実績を並べるのに時間がかかる
- 月次レポートの PDF 作成・配布が手作業
- 商談パイプラインと Board 案件の進捗が別画面で分断されている
- 週次の受注推移を自分で集計しなければならない
Intent — なぜ作ったか
3 つの SaaS を毎回手動で開いて集計する作業をゼロにする。データは BigQuery に集め、変換ロジックは SQL に閉じ込めて、ダッシュボードは自動更新にする。完全な自動化が難しい部分(予算入力)だけ人が担い、あとはパイプラインに任せる設計を徹底した。
最初の1週間でやること
- freee の API 認証情報を取得し、月次 P&L を BigQuery に 1 本 raw テーブルで書き込む
- staging VIEW で最新スナップショットを抽出し、mart_profit_loss を 1 本作る
- Looker Studio で P&L の折れ線グラフを 1 枚作り、月次の数字が合うか経理と確認する
- GitHub Actions の cron を設定し、翌朝の自動同期を確認する
- Slack Webhook を設定し、日次の同期失敗通知を受け取れるようにする
やらないこと
- 最初から 3 サービス全部を同時に繋ごうとしない。1 サービスの P&L ビュー 1 枚から始める
- freee OAuth トークンを手動で管理しない。CI への自動ローテーション機構を先に作る
- mart VIEW を手動の ETL バッチにしない。BigQuery VIEW にすれば raw が更新されると即反映される
- Looker Studio に raw テーブルを直接接続しない。mart を経由することで集計ロジックが一元管理できる
費用対効果の考え方
- 月次 P&L レポート作成の手作業削減(集計・Excel 転記・PDF 作成)
- 売上見込の毎朝プッシュ通知による意思決定の前倒し
- 予実管理の可視化による月末サプライズの低減
- 部門別 P&L の自動集計による会議準備コストの削減
複数 SaaS を BigQuery で統合する ELT ダッシュボードの実装事例
3 つの SaaS をつないで、毎朝の経営数字を自動で届ける。
導入前チェックリスト
商談前に、自社側でこの 5 点を確認しておくと検討がスムーズに進む。
HubSpot・Board・freee のうち、どのサービスを使っているか
1 サービスからでも開始できる。接続するサービスごとに API 認証情報が必要になる
GCP プロジェクトと BigQuery の利用権限があるか
サービスアカウント(BigQuery Data Editor 権限)を用意する。GCP の初期設定が最初のハードルになりやすい
月次の予算データを管理している Google Sheets があるか
予実管理機能に使う。なければ予実ページは後から追加できる
Looker Studio ダッシュボードを閲覧する対象者(経営者・営業・経理)が決まっているか
対象者ごとに必要な KPI が変わる。最初から 6 ページ全部を作る必要はない
月次レポートの配信先 Slack チャンネルが決まっているか
Slack Webhook URL を GitHub Secrets に設定するだけで通知が届く