diff --git a/INDEX.md b/INDEX.md index 997d563..c3f8fa1 100644 --- a/INDEX.md +++ b/INDEX.md @@ -156,6 +156,7 @@ DB 도메인별: | [ai/README.md](features/ai/README.md) | AI 분석 | | [card-vehicle/README.md](features/card-vehicle/README.md) | 법인카드·차량 | | [settlement/README.md](features/settlement/README.md) | 정산 | +| [sales/demo-tenant-policy.md](features/sales/demo-tenant-policy.md) | 영업파트너 데모 테넌트 정책 (3-Tier 전략) | | [barobill-kakaotalk/README.md](features/barobill-kakaotalk/README.md) | 바로빌 카카오톡 | | [quality-management/README.md](features/quality-management/README.md) | 품질관리 (제품검사, 실적신고) | | [approvals/README.md](features/approvals/README.md) | 결재관리 시스템 | diff --git a/features/sales/demo-tenant-policy.md b/features/sales/demo-tenant-policy.md new file mode 100644 index 0000000..b769361 --- /dev/null +++ b/features/sales/demo-tenant-policy.md @@ -0,0 +1,370 @@ +# 영업파트너 데모 테넌트 정책 + +> **작성일**: 2026-03-13 +> **상태**: 설계 확정 + +--- + +## 1. 개요 + +### 1.1 목적 + +영업파트너가 SAM 시스템을 직접 체험하고, 잠재 고객에게 실제 화면을 시연하여 계약 전환율을 높인다. + +### 1.2 핵심 원칙 + +- 영업파트너에게 "보여줄 수 있는 무기"를 제공한다 +- 고객이 직접 체험하여 의사결정을 촉진한다 +- 체험 데이터를 정식 테넌트로 전환하여 Lock-in 효과를 만든다 + +### 1.3 현황 및 문제점 + +| 항목 | 현재 상태 | 문제 | +|------|----------|------| +| 파트너 영업 도구 | 수당 시뮬레이터(`/price/`)만 존재 | 고객에게 실제 화면을 보여줄 수 없음 | +| Trial 상태 | `subscriptions` 모델에 정의만 됨 | 활성화 로직 미구현 | +| 데모 환경 | 없음 | 파트너가 SAM을 직접 체험하지 못하고 영업함 | +| 고객 설득 | 제안서 + 가격표만 제공 | "보여줄 수 없는 2천만원짜리 솔루션" → 전환율 저하 | + +--- + +## 2. 데모 테넌트 전략 (3-Tier) + +### 2.1 티어 구조 + +``` +┌─────────────────────────────────────────────────────────────────────┐ +│ SAM 데모 프로그램 3-Tier │ +├──────────────┬──────────────────┬───────────────────────────────────┤ +│ Tier 1 │ Tier 2 │ Tier 3 │ +│ 쇼케이스 │ 파트너 데모 │ 고객 체험 │ +│ (공용) │ (파트너별 1개) │ (영업건별) │ +├──────────────┼──────────────────┼───────────────────────────────────┤ +│ 읽기 전용 │ 풀 기능 체험 │ 고객 맞춤 데모 │ +│ 샘플 데이터 │ 샘플+직접 입력 │ 고객 업종 데이터 │ +│ 기간 제한 X │ 파트너 활동 중 │ 30일 제한 │ +│ URL 1개 공유 │ 파트너 로그인 │ 고객 직접 로그인 │ +└──────────────┴──────────────────┴───────────────────────────────────┘ +``` + +### 2.2 Tier 1: 쇼케이스 (공용 데모) + +**목적**: 누구나 SAM이 어떤 시스템인지 3분 안에 파악 + +| 항목 | 내용 | +|------|------| +| **대상** | 모든 방문자, 파트너 후보, 잠재 고객 | +| **접근** | 공개 URL (예: `demo.codebridge-x.com`) | +| **계정** | 게스트 계정 자동 로그인 (ID/PW 없음) | +| **데이터** | 제조업 샘플 데이터 (가상 회사 "데모제조") | +| **기능** | 읽기 전용 — 조회, 검색, 리포트 확인만 가능 | +| **리셋** | 매일 자정 자동 리셋 (Scheduler) | +| **기간** | 무제한 | +| **비용** | 없음 (마케팅 비용) | + +**포함 샘플 데이터**: +- 품목 50개, 거래처 20개, 견적 10건, 수주 15건 +- 생산계획 5건, 출하 10건 +- 직원 10명, 부서 3개 +- 최근 3개월 매출/생산 데이터 (차트용) + +**활용 시나리오**: +``` +파트너: "SAM이 어떤 시스템인지 보여드리겠습니다" + → 스마트폰/태블릿으로 demo.codebridge-x.com 접속 + → 실시간 화면 시연 (3~5분) + → "이런 시스템을 귀사 맞춤으로 구축해드립니다" +``` + +### 2.3 Tier 2: 파트너 데모 테넌트 (파트너별 전용) + +**목적**: 파트너가 SAM을 직접 사용해보고, 고객 영업 시 맞춤 시연 가능 + +| 항목 | 내용 | +|------|------| +| **대상** | 승인된 영업파트너 (status=`active`) | +| **생성 시점** | 파트너 승인 시 자동 생성 | +| **계정** | 파트너 본인 계정으로 로그인 | +| **데이터** | 업종별 샘플 데이터 프리셋 + 직접 입력 가능 | +| **기능** | 전체 기능 사용 가능 (일부 제한) | +| **리셋** | 월 1회 자동 리셋 또는 파트너 요청 시 수동 리셋 | +| **기간** | 파트너 활동 기간 동안 유지 | +| **비용** | 없음 (파트너 지원) | + +**기능 제한**: + +| 기능 | 사용 가능 | 제한 사항 | +|------|:---------:|----------| +| 품목/거래처 관리 | ✅ | 최대 100개 | +| 견적/수주/출하 | ✅ | 최대 50건 | +| 생산관리 | ✅ | 최대 30건 | +| 사용자 초대 | ✅ | 최대 5명 | +| 리포트/통계 | ✅ | 제한 없음 | +| 바로빌 연동 | ❌ | 실제 금융 연동 차단 | +| 이카운트 연동 | ❌ | 외부 시스템 연동 차단 | +| 파일 저장 | ✅ | 최대 1GB | +| AI 토큰 | ✅ | 월 10만 토큰 | + +**업종별 샘플 데이터 프리셋**: + +| 프리셋 | 포함 데이터 | 대상 고객 | +|--------|-----------|----------| +| 제조업 기본 | 원자재→생산→출하 흐름 | 일반 제조업체 | +| 블라인드/스크린 | 커튼/블라인드 품목 + 시공 | 인테리어 업체 | +| 시공/건설 | 공사관리 + 자재 | 건설/시공 업체 | +| 유통/도소매 | 입출고 + 재고 | 유통 업체 | + +### 2.4 Tier 3: 고객 체험 테넌트 (영업건별) + +**목적**: 계약 직전 고객이 자기 데이터로 직접 체험하여 의사결정 촉진 + +| 항목 | 내용 | +|------|------| +| **대상** | 계약 검토 단계의 잠재 고객 | +| **생성** | 파트너가 Sales 시스템에서 요청 → 본사 승인 | +| **계정** | 고객 담당자 이메일로 초대 | +| **데이터** | 고객이 직접 입력하거나 CSV 임포트 | +| **기능** | Tier 2와 동일한 제한 | +| **기간** | 30일 (1회 연장 가능, 최대 60일) | +| **비용** | 없음 (영업 비용) | +| **전환** | 계약 시 → 데모 데이터를 정식 테넌트로 마이그레이션 가능 | + +**핵심 가치 — "체험 데이터 → 정식 전환" 마이그레이션**: + +``` +고객 체험 (30일) + ├── 품목 등록, 거래처 등록, 견적 작성 체험 + ├── "이미 입력한 데이터가 있으니 계약하면 바로 쓸 수 있다" + └── 계약 전환 시 → 데모 데이터를 정식 테넌트로 이관 + → Lock-in 효과 + 온보딩 시간 단축 +``` + +--- + +## 3. 기술 구현 방안 + +### 3.1 데이터 모델 변경 + +```sql +-- tenants 테이블 확장 +ALTER TABLE tenants ADD COLUMN tenant_type ENUM('production', 'demo_showcase', 'demo_partner', 'demo_trial') DEFAULT 'production'; +ALTER TABLE tenants ADD COLUMN demo_expires_at DATETIME NULL; +ALTER TABLE tenants ADD COLUMN demo_source_partner_id BIGINT UNSIGNED NULL; +ALTER TABLE tenants ADD COLUMN demo_preset VARCHAR(50) NULL; +ALTER TABLE tenants ADD COLUMN demo_limits JSON NULL; +``` + +### 3.2 구독 모델 활용 + +기존 `subscriptions.status`의 `trial` 상태를 활성화: + +``` +demo_showcase → subscription 없음 (무료 공용) +demo_partner → subscription.status = 'trial', plan = 'demo_partner' +demo_trial → subscription.status = 'trial', plan = 'demo_trial' + expires_at = created_at + 30 days +``` + +### 3.3 제한 적용 미들웨어 + +```php +// DemoLimitMiddleware +class DemoLimitMiddleware +{ + public function handle($request, Closure $next) + { + $tenant = currentTenant(); + + if ($tenant->isDemoTenant()) { + // 1. 기간 만료 체크 + if ($tenant->demo_expires_at && now()->gt($tenant->demo_expires_at)) { + return response()->json(['error' => '체험 기간이 만료되었습니다.'], 403); + } + + // 2. 수량 제한 체크 + $limits = $tenant->demo_limits; + + // 3. 금지 기능 체크 (바로빌, 이카운트 등) + if ($this->isBlockedFeature($request)) { + return response()->json(['error' => '데모에서 사용할 수 없는 기능입니다.'], 403); + } + } + + return $next($request); + } +} +``` + +### 3.4 샘플 데이터 시더 (프리셋별) + +```php +// DemoDataSeeder — 테넌트 생성 시 호출 +class DemoDataSeeder +{ + public function seed(Tenant $tenant, string $preset = 'manufacturing') + { + $presets = [ + 'manufacturing' => ManufacturingPreset::class, + 'blinds' => BlindsPreset::class, + 'construction' => ConstructionPreset::class, + 'distribution' => DistributionPreset::class, + ]; + + $presets[$preset]::seed($tenant); + } +} +``` + +### 3.5 데모 → 정식 전환 프로세스 + +``` +[Tier 3 체험 테넌트] + ↓ 계약 체결 +[전환 프로세스] + 1. tenant_type = 'production' 변경 + 2. demo_limits = NULL (제한 해제) + 3. demo_expires_at = NULL + 4. subscription → status='active', plan='starter'/'business' + 5. 기존 데이터 유지 (마이그레이션 불필요) + 6. 추가 기능 활성화 (바로빌, 이카운트 등) +``` + +--- + +## 4. 영업 지원 도구 연계 + +### 4.1 Sales 시스템 연동 + +| 기능 | 설명 | API | +|------|------|-----| +| 데모 테넌트 요청 | 파트너가 고객 체험 테넌트 생성 요청 | `POST /api/demo-tenants` | +| 데모 현황 조회 | 내가 생성한 데모 테넌트 목록 | `GET /api/demo-tenants` | +| 데모 리셋 | 파트너 데모 데이터 초기화 | `POST /api/demo-tenants/{id}/reset` | +| 체험 연장 | 고객 체험 기간 연장 요청 | `POST /api/demo-tenants/{id}/extend` | +| 전환 요청 | 체험 → 정식 전환 요청 | `POST /api/demo-tenants/{id}/convert` | + +### 4.2 파트너 대시보드 지표 + +``` +┌──────────────────────────────────────────────────────┐ +│ 내 데모 현황 │ +├──────────────┬──────────────┬────────────────────────┤ +│ 파트너 데모 │ 고객 체험 │ 전환율 │ +│ 1개 (활성) │ 3개 (진행중) │ 40% (2/5) │ +│ │ 1개 (만료) │ │ +├──────────────┴──────────────┴────────────────────────┤ +│ 최근 체험 활동 │ +│ - [데모제조A] 3시간 전 견적서 3건 작성 │ +│ - [시공업체B] 1일 전 품목 45개 등록 │ +│ - [유통사C] 5일 전 마지막 접속 (비활성 경고) │ +└──────────────────────────────────────────────────────┘ +``` + +--- + +## 5. 영업 프로세스 통합 + +### 5.1 데모 활용 영업 플로우 + +``` +1단계: 초기 접촉 + └── Tier 1 쇼케이스 URL 공유 (3분 시연) + └── "이런 시스템입니다" — 관심 유발 + +2단계: 심층 상담 + └── 파트너 Tier 2 데모로 고객 업종 맞춤 시연 (30분) + └── 프리셋 데이터로 실제 업무 흐름 보여주기 + └── 가격 시뮬레이터로 견적 제시 + +3단계: 고객 체험 (의사결정 촉진) + └── Tier 3 고객 체험 테넌트 생성 (30일) + └── 고객이 직접 데이터 입력하며 체험 + └── 파트너가 체험 활동 모니터링 + └── "이미 입력한 데이터 살려드립니다" — 전환 유도 + +4단계: 계약 전환 + └── 체험 데이터 → 정식 테넌트로 전환 + └── 온보딩 기간 단축 (이미 익숙함) + └── 수당 정산 시작 +``` + +### 5.2 KPI 및 전환 추적 + +| 지표 | 측정 대상 | 목표 | +|------|----------|------| +| 데모 요청 수 | 파트너별 월간 Tier 3 생성 수 | 파트너당 3건/월 | +| 체험 활성도 | 고객 로그인 횟수, 데이터 입력량 | 주 3회 이상 접속 | +| 체험→계약 전환율 | Tier 3 → 정식 계약 비율 | 30% 이상 | +| 평균 전환 기간 | 체험 시작 → 계약 체결 일수 | 21일 이내 | +| 데모 비활성 알림 | 7일 미접속 고객 자동 알림 | 파트너에게 팔로업 유도 | + +--- + +## 6. 비용 및 리소스 + +### 6.1 인프라 비용 + +| 항목 | Tier 1 (1개) | Tier 2 (파트너 N개) | Tier 3 (건별) | +|------|:-----------:|:------------------:|:------------:| +| DB 용량 | ~50MB | ~100MB x N | ~100MB x 건 | +| 파일 저장 | 고정 | 1GB x N | 1GB x 건 | +| AI 토큰 | 없음 | 10만/월 x N | 10만/30일 x 건 | +| 월 예상 비용 | ~0원 | ~5천원 x N | ~5천원 x 건 | + +### 6.2 개발 공수 + +| 작업 | 우선순위 | 규모 | +|------|:-------:|------| +| `tenant_type` 컬럼 + 마이그레이션 | 🔴 필수 | 소 | +| `DemoLimitMiddleware` | 🔴 필수 | 중 | +| 샘플 데이터 프리셋 (제조업 1종) | 🔴 필수 | 중 | +| Tier 1 쇼케이스 자동 리셋 스케줄러 | 🔴 필수 | 소 | +| 파트너 승인 시 Tier 2 자동 생성 | 🟡 중요 | 소 | +| Tier 3 생성/만료/전환 API | 🟡 중요 | 중 | +| Sales 대시보드 데모 현황 UI | 🟡 중요 | 중 | +| 추가 프리셋 (블라인드/시공/유통) | 🟢 권장 | 중 | +| 체험 활동 모니터링 + 알림 | 🟢 권장 | 중 | +| 데모 → 정식 데이터 전환 로직 | 🟢 권장 | 소 | + +--- + +## 7. 단계별 실행 로드맵 + +``` +Phase 1 (즉시) ───────────────────────────────────── + ✅ Tier 1 쇼케이스: 공용 데모 테넌트 수동 생성 + ✅ 샘플 데이터 수동 입력 (제조업 기본) + ✅ demo.codebridge-x.com 도메인 매핑 + → 파트너에게 즉시 공유 가능한 URL 확보 + +Phase 2 (자동화) ─────────────────────────────────── + ✅ tenant_type 컬럼 + DemoLimitMiddleware + ✅ Tier 2 파트너 데모 자동 생성 + ✅ 샘플 데이터 시더 (프리셋 1종) + ✅ 일일 리셋 스케줄러 + +Phase 3 (영업 연계) ──────────────────────────────── + ✅ Tier 3 고객 체험 생성/관리 API + ✅ Sales 대시보드 연동 + ✅ 체험 → 정식 전환 프로세스 + ✅ 활동 모니터링 + 비활성 알림 + +Phase 4 (고도화) ─────────────────────────────────── + ✅ 추가 업종 프리셋 + ✅ 전환율 분석 대시보드 + ✅ A/B 테스트 (데모 제공 vs 미제공 전환율 비교) +``` + +--- + +## 관련 문서 + +- [features/sales/README.md](README.md) — 영업 관리 모듈 전체 +- [features/sales/partners.md](partners.md) — 파트너 관리 기능 +- [rules/customer-pricing.md](../../rules/customer-pricing.md) — 고객 요금표 +- [rules/partner-commission.md](../../rules/partner-commission.md) — 영업파트너 수당 체계 +- [features/settlement/subscriptions.md](../settlement/subscriptions.md) — 구독 관리 + +--- + +**최종 업데이트**: 2026-03-13