SavvyBot Phase 7
収益化・リリース計画
Stripeサブスクリプション統合、請求管理システム、クローズドベータテスト、正式リリースへの計画。年内に5-30チームの有料ユーザー獲得、MRR ¥15,000-¥90,000を目標に。
Technologies Used
SavvyBot Phase 7 ― 収益化・リリース計画
概要
Phase 7では、SavvyBotのSaaS化を完成させ、正式リリースを目指します。Stripe統合による請求管理システムを実装し、クローズドベータテストを経て、年内に収益化を開始します。
ビジネス目標: 年内に収益化の可能性を探る(副業ベース、リーンスタートアップアプローチ)
収益モデル
料金プラン
Freeプラン(無料):
- 個人利用(Personal modeのみ)
- 基本機能
- 月間1,000トークンまで
- コミュニティサポート
Teamプラン(¥2,980/月):
- 3-10人チーム
- 全機能利用可能
- グループチャット対応
- 月間50,000トークン
- メールサポート
- 議事録・決定事項・TODO・質問管理
- Web検索統合
Businessプラン(¥9,800/月):
- 11-50人チーム
- 全機能 + 高度な機能
- 月間200,000トークン
- 優先サポート(24時間以内)
- カスタムAPI連携
- データエクスポート
- 監査ログ
収益目標
年内目標(2025年12月末):
- 有料ユーザー: 5-30チーム
- MRR (Monthly Recurring Revenue): ¥15,000-¥90,000
- 解約率 (Churn Rate): <10%
- ユーザー満足度: >85%
2026年Q1目標:
- 有料ユーザー: 30-100チーム
- MRR: ¥90,000-¥300,000
- エンタープライズプラン追加
Phase 7の実装計画
7.1: Stripe統合(2週間)
達成目標:
- ✅ Stripe Checkout統合
- ✅ サブスクリプション管理
- ✅ Webhookハンドリング(支払い成功/失敗)
- ✅ 顧客ポータル(プラン変更、請求書表示)
技術実装:
- Stripe Checkout:
// app/api/checkout/route.ts
export async function POST(request: Request) {
const { priceId, userId } = await request.json()
const session = await stripe.checkout.sessions.create({
customer_email: user.email,
line_items: [{ price: priceId, quantity: 1 }],
mode: 'subscription',
success_url: `${process.env.NEXT_PUBLIC_URL}/dashboard?success=true`,
cancel_url: `${process.env.NEXT_PUBLIC_URL}/pricing?canceled=true`,
metadata: { userId },
})
return Response.json({ sessionId: session.id })
}
- Webhookハンドリング:
// app/api/webhooks/stripe/route.ts
export async function POST(request: Request) {
const signature = request.headers.get('stripe-signature')!
const body = await request.text()
const event = stripe.webhooks.constructEvent(body, signature, webhookSecret)
switch (event.type) {
case 'customer.subscription.created':
await handleSubscriptionCreated(event.data.object)
break
case 'customer.subscription.deleted':
await handleSubscriptionDeleted(event.data.object)
break
case 'invoice.payment_succeeded':
await handlePaymentSucceeded(event.data.object)
break
}
return Response.json({ received: true })
}
- データベーススキーマ:
CREATE TABLE subscriptions (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id UUID NOT NULL REFERENCES profiles(id),
stripe_customer_id TEXT UNIQUE NOT NULL,
stripe_subscription_id TEXT UNIQUE,
plan TEXT NOT NULL CHECK (plan IN ('free', 'team', 'business')),
status TEXT NOT NULL CHECK (status IN ('active', 'canceled', 'past_due')),
current_period_start TIMESTAMPTZ,
current_period_end TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
7.2: 請求管理システム(1週間)
達成目標:
- ✅ 請求履歴表示
- ✅ プラン変更UI
- ✅ 使用量メーター
- ✅ 上限アラート
実装内容:
- 請求履歴ページ (
app/dashboard/billing/page.tsx):
export default async function BillingPage() {
const supabase = await createClient()
const { data: subscription } = await supabase
.from('subscriptions')
.select('*')
.single()
const invoices = await stripe.invoices.list({
customer: subscription.stripe_customer_id,
limit: 12,
})
return (
<div>
<CurrentPlan plan={subscription.plan} />
<InvoiceHistory invoices={invoices.data} />
<UsageMeter subscription={subscription} />
</div>
)
}
- 使用量メーター:
// 月間トークン使用量を取得
const { data: usage } = await supabase
.from('usage_logs')
.select('total_tokens')
.gte('created_at', currentPeriodStart)
.lte('created_at', currentPeriodEnd)
const totalTokens = usage.reduce((sum, log) => sum + log.total_tokens, 0)
const tokenLimit = PLAN_LIMITS[subscription.plan]
const percentage = (totalTokens / tokenLimit) * 100
// 80%超過でアラート
if (percentage > 80) {
await sendUsageAlert(user.email, percentage)
}
7.3: クローズドベータテスト(3週間)
目標:
- 5-10チームの招待
- フィードバック収集
- バグ修正と改善
テスト計画:
Week 1: 初期テスター(2-3チーム):
- 友人・知人のチーム
- 毎日のフィードバックセッション
- 重大なバグの即座修正
Week 2: 拡大テスト(3-5チーム):
- LINE公式アカウントの既存ユーザー
- アンケート形式のフィードバック
- 機能改善の優先順位付け
Week 3: 最終調整(5-10チーム):
- 新規ユーザー獲得
- オンボーディング改善
- ドキュメント整備
フィードバック項目:
- 使いやすさ(1-5点)
- 機能の充実度(1-5点)
- 価格妥当性(1-5点)
- 推奨度(NPS: -100 〜 100)
- 最も役立つ機能
- 改善してほしい点
7.4: 正式リリース(1週間)
達成目標:
- ✅ プロダクションデプロイ
- ✅ マーケティング開始
- ✅ サポート体制確立
- ✅ モニタリング体制確立
リリースチェックリスト:
技術的準備:
- プロダクションビルド成功
- 全機能のE2Eテスト完了
- セキュリティ監査完了
- パフォーマンステスト完了
- バックアップ・リカバリー計画確立
- モニタリングダッシュボード構築
ビジネス準備:
- 利用規約・プライバシーポリシー作成
- サポートドキュメント整備
- FAQ作成
- サポートメールアドレス設定
- マーケティングサイト完成
- プレスリリース作成
マーケティングチャネル:
- LINE公式アカウント(既存フォロワー)
- Twitter/X(#LINEBot, #グループチャット)
- Qiita/Zenn(技術記事)
- Product Hunt(海外展開)
- note(ブログ記事)
リスク管理
技術的リスク
リスク1: Stripe統合の複雑さ
- 軽減策: 公式ドキュメント熟読、サンプルコード参照
- 代替案: Paddle等の代替決済サービス検討
リスク2: スケーラビリティ問題
- 軽減策: Supabase Edge Functionsの自動スケーリング活用
- 代替案: GCP Cloud Runへの移行準備
リスク3: OpenAI APIコスト増加
- 軽減策: 使用量上限設定、アラート機能
- 代替案: gpt-4o-miniへの切り替え、キャッシング戦略
ビジネスリスク
リスク1: ユーザー獲得難
- 軽減策: 無料プラン提供、紹介プログラム
- 代替案: エンタープライズ向け直接営業
リスク2: 競合の出現
- 軽減策: 継続的な機能改善、差別化強化
- 代替案: ニッチ市場へのさらなる特化
リスク3: 解約率高騰
- 軽減策: オンボーディング改善、サポート強化
- 代替案: 年間契約割引プラン
長期展望(2026年以降)
Phase 8: 機能拡張(2026年Q1-Q2)
新機能:
- ナレッジベース(過去の決定事項・議事録の検索)
- 音声会議の自動文字起こし&議事録生成
- Slack/Teams連携
- カスタムAIアシスタント(ユーザー独自のプロンプト)
Phase 9: エンタープライズ対応(2026年Q3-Q4)
機能:
- シングルサインオン(SSO)
- 監査ログ
- データ保持ポリシーカスタマイズ
- 専任サポート
- SLA保証
Phase 10: グローバル展開(2027年〜)
市場:
- 英語圏(米国、英国、オーストラリア)
- アジア圏(台湾、タイ、インドネシア)
ローカライゼーション:
- 多言語対応(英語、中国語、タイ語)
- 地域別プライバシー法対応(GDPR、CCPA)
- 現地決済方法対応
成功指標(KPI)
ビジネスKPI
- MRR成長率: 月次20%成長
- 解約率: <10%
- LTV/CAC比: >3.0
- NPS: >50
プロダクトKPI
- DAU/MAU比: >40%(アクティブユーザー率)
- 機能利用率: 各コマンド>20%利用
- エラー率: <1%
- レスポンスタイム: 平均<3秒
カスタマーサクセスKPI
- オンボーディング完了率: >80%
- サポート満足度: >4.5/5.0
- 推奨度(NPS): >50
- 機能リクエスト実装率: >30%
まとめ
Phase 7では、技術的な実装だけでなく、ビジネスとしての成功を目指します。リーンスタートアップアプローチで、小さく始めて顧客のフィードバックを基に改善を重ね、持続可能なSaaSビジネスを構築していきます。
目標: 年内に収益化を達成し、2026年には本格的なビジネスとして成長させる。
計画作成日: 2025年11月7日 開始予定: 2025年11月中旬 リリース目標: 2025年12月末