予約マホウ機能を内製化 — hacomono 脱却 + LINE 強化版設計

調査日: 2026-04-28 精査: 約 45 ページ / 3 並列サブエージェント 対象: 平田さん(医療法人 + 株式会社)
エグゼクティブサマリ

結論: 既存スタック(Next.js + Supabase + Vercel)で MVP は 2〜3 週間、フル機能は 2〜3 ヶ月で内製化可能。hacomono 全機能は不要で、予約マホウ相当 + 必要最小(hacomono の 3〜4 割の機能で 9 割の業務をカバー)が現実的。

月額コスト試算 = 約 ¥7,000〜10,000(hacomono ¥35k+ / 予約マホウ ¥6.5k+ より安価かつ データ完全自社所有)。

2〜3週
MVP(Phase 1)
所要時間
¥7〜10k
月額運用
(自社 Supabase)
¥35k+
hacomono
月額(移行前)
100%
データ所有
(他社経由ゼロ)
推奨アプローチ: Phase 1 = MVP(予約 + LINE 通知 + CSV インポート)/ Phase 2 = カルテ + 回数券 + リマインダー/ Phase 3 = 決済 + セグメント配信。
並行運用: Phase 1 中は hacomono 解約せず、新規顧客のみ新システムへ。Phase 2 完了で hacomono 解約へ。

1予約マホウの機能マップ

1-1. 機能カテゴリ別(クローン対象)

カテゴリ主要機能
予約LINE/WEB 24h 予約 / 指名 / キャンセル待ち / 隙間ナシ予約 / 当日予約制御 / 営業時間外 ON-OFF
管理メニュー(料金・所要時間)/ シフト / 複数店舗 / 顧客 CSV / カルテ(来店履歴・写真・アレルギー)
決済カード事前決済(5.5%)/ 月謝自動課金 / 回数券残数自動 / 失敗時 LINE 通知
集客セグメント配信(最終来店日 × 日数 / 誕生日月 / 当日空き)/ リマインド / 1対1 LINE / 問診票
会員LINE デジタル会員証 / ランク別ポイント(0.5〜7%)/ 多店舗共通ポイント / 失効通知

1-2. 価格プラン(参考)

プラン月額予約上限
朝霧(無料デモ)¥0100
朝焼け¥1,820200
夕焼け¥4,300500
月光¥8,7001,000
星光¥12,4002,000
極光¥24,8005,000

必須/推奨オプション: LINE 連携 ¥2,200/月、カルテ ¥3,300/月、デジタル会員証 ¥5,500/月、セグメント配信 ¥5,500/月 → 実運用は 月 ¥6,500〜¥18,000

2hacomono 現状把握

2-1. 機能と価格

項目金額
初期費用¥150,000
基本(1,000 名まで / 店舗)¥35,000/月
クレジット決済¥5,000/月
口座振替¥5,000/月
スクール管理¥10,000/月
データ経営パック¥8,000/月
QR 入退館¥14,000〜27,500/月
決済手数料2.59〜3.3%

複合導入で 月 ¥50,000+ 通り。1 店舗 1,000 名超で追加課金。

2-2. 不満・移行理由になりやすいポイント

課題内容
高額オプション基本 + 決済 + スクールで月 ¥50k 突破
初期設定難度機能豊富 → 外部支援必須レベルの複雑さ
カスタマイズ性業界ニーズと合わず作り直しになった機能あり(スクール v1→v2)
データ出力制限売上 CSV が月単位のみ → 半期分は複数回作業
モバイルアプリなし顧客はブラウザログイン必須
データ外部 hostingAWS 東京リージョン。法対応 OK だが自社内には移せない
移行時の最大の壁: クレジットカード情報・口座振替情報は 再登録必須(hacomono → 新システムへの直接移管不可)。既存会員に LINE で「移行のお願い + 新システム初回ログイン URL」を一斉送信し、本人にカード再登録してもらう導線が必要。

3内製化アーキテクチャ

3-1. 推奨スタック(既存資産流用)

[ LINE 公式アカウント ] |- Messaging API (webhook 受信 / push 送信) |- LIFF アプリ (予約フォーム / 確認 / カルテ閲覧) |- リッチメニュー (予約 / 履歴 / キャンセル / 問い合わせ) | v [ Next.js 15 (Vercel) ] |- /api/line/webhook 署名検証 + イベント処理 |- /app/booking LIFF 内予約 UI |- /app/admin スタッフ管理画面 (MFA) |- /api/cron/reminder Vercel Cron 前日 09:00 リマインド |- /api/stripe/webhook 決済イベント受信 | v [ Supabase (PostgreSQL + Auth + Storage) ] |- users LINE User ID (pgcrypto 暗号化) |- bookings 日時 / メニュー / スタッフ / 状態 |- schedules 営業時間 / 休業日 / シフト |- services メニュー / 料金 / 所要時間 |- tickets 回数券 / 残回数 / 有効期限 |- patient_records カルテ (医療系は GL6.0) |- audit_logs 全変更履歴 |- Storage 写真 / 同意書 PDF

3-2. データ所有・セキュリティの差別化

観点hacomono予約マホウ内製版
データ所在hacomono 社 AWSyoyaku-mahou 社 AWS自社 Supabase
個人情報保護法第三者提供(業務委託)同左自社管理・第三者提供なし
GL6.0(医療)明記なしP マークのみ自社で対応設計
カード情報hacomono 経由同左Stripe 直接 / 番号非保存
LINE User IDプラットフォーム経由同左pgcrypto + RLS
監査ログ外部出力不可同左自社 BI で分析可
退会時データ削除方針依存同左DELETE で完結

4実装フェーズ計画

Phase 1 — MVP(並行運用開始) 2〜3 週間

hacomono を解約せずに「LINE で予約が取れる新導線」を立ち上げる。新規顧客だけ新システムに流す。

Phase 2 — 業務移行(hacomono 解約準備) 4〜6 週間
Phase 3 — 集客・販促(差別化) 4〜6 週間

5LINE 連携のセキュリティ要件

CRITICAL — Webhook 署名検証は JSON.parse 前の生 body で実行
この検証を怠ると、攻撃者が偽のメッセージを送って予約を改ざんしたり個人情報を抽出できる。
要件実装
Webhook 署名検証validateSignature(rawBody, channelSecret, signature)JSON.parse 前
User ID 暗号化pgcrypto で AES-256、復号は RLS 内 auth.uid() = user_id のみ
通信暗号化HTTPS 必須、LIFF Endpoint は https のみ
PII 最小化氏名 + 電話番号のみ。住所は訪問サービスのみ
Channel Secret 管理Vercel 環境変数 / .env.local / git 追跡禁止
RLSユーザーは自分の予約のみ。スタッフは role='staff' で全件可
監査ログ予約作成 / キャンセル / カルテ更新時に audit_logs INSERT
Supabase Auth管理画面は MFA(TOTP)必須

主要コード骨格

// app/api/line/webhook/route.ts
import { validateSignature } from '@line/bot-sdk';

export async function POST(req: Request) {
  const rawBody = await req.text();              // ★ JSON.parse 前
  const signature = req.headers.get('x-line-signature') ?? '';
  if (!validateSignature(
    rawBody,
    process.env.LINE_CHANNEL_SECRET!,
    signature
  )) {
    return new Response('Unauthorized', { status: 403 });
  }
  const { events } = JSON.parse(rawBody);
  for (const ev of events) {
    if (ev.type === 'message')  await handleMessage(ev);
    if (ev.type === 'postback') await handlePostback(ev);
  }
  return new Response('OK');
}

6平田さんに事前確認したい 7 項目

#質問影響範囲
1業種・対象顧客(医療 / 介護 / 一般)GL6.0 対応の要否
2店舗・スタッフ規模RLS 設計、シフト管理
3既存 hacomono の使用機能(月謝 / 回数券 / 入退館 / POS)Phase 2 のスコープ
4決済方式(現地払い / カード / 月謝 / 全部)Stripe 設計、PCI-DSS 範囲
5既存会員数(100 / 500 / 1,000+ 名)Supabase プラン、CSV 工数
6LINE 公式アカウントの取得状況・プランPush 通数試算
7hacomono の契約期限・違約金条件並行運用期間
次のアクション:
  1. 上記 7 項目を回答 → Phase 1 のスコープ確定
  2. /init-project~/work/saas/yoyaku-internal/ を作成(カテゴリは商用 SaaS)
  3. Phase 1 着手前に /plan で詳細実装プランを作成 → CEO/Eng レビュー
  4. Phase 1 完了で hacomono 並行運用テスト
  5. Phase 2 完了で hacomono 解約準備(CSV 移行 + カード再登録キャンペーン)

7既存資産の流用候補

既存プロジェクト流用できる部分
saas/endai-systemNext.js + Supabase + RLS パターン、Vercel Cron、CSP/Headers
saas/e-sign同意書・問診票の電子署名フロー(Phase 3)
pwa-internal/bento_order_webFirestore Rules の発想(Supabase RLS に置換)
saas/visitcare訪問サービスの予約 + 患者管理パターン
utils/csvUsers.tsCSV 一括インポート(hacomono からの会員移行)

ゼロから書くより 30〜50% の時間短縮 が見込める。

8主要参考リンク