crm.crowny.org ↔ asset.crowny.org 상호 연계
개요
고객관리(CRM)와 자산관리(asset)를 상호 발견되게 연결. "고객관리 필요한 사람은 자산관리도 알아보고, 자산관리 필요한 사람은 고객관리 도구가 있다는 것도 알게." 데이터 통합이 아닌
상호 발견(awareness) 중심 + 행동 연결 1종.
무엇을 했는지
asset.crowny.org → CRM (자산관리 사용자가 CRM 발견)
web/index.html 푸터 직전에 "함께 쓰면 좋은 도구 — 크라우니 고객관리(CRM)" 섹션 추가(카드 + "고객관리 시작하기 →" 버튼 → https://crm.crowny.org)
- 푸터 f-grid에 "고객관리 CRM" 링크 추가
- 티옴타 어스톤 골드 테마(var(--card)/--border/--gold-2/.btn-line) 그대로 사용
crm.crowny.org → asset (고객관리 사용자가 자산관리 발견)
web/index.html 고객 리스트 하단에 상호 홍보 카드(.crosspromo): "고객의 자산까지 챙기시나요? — 크라우니 자산관리" → https://asset.crowny.org
- 발송 설정 모달 하단 "함께 쓰면 좋은 도구" 섹션에도 자산관리 링크
- 행동 연결: 고객 상세에 "💎 이 고객 자산관리 진단 보기" 버튼 → https://asset.crowny.org/clinic.html (고객을 자산관리 진단으로 자연 연결)
- CRM 디자인 토큰(--accent #C9A961/--accent-soft/--accent-dim) 사용
관련 파일
/Users/ef/crowny-asset/web/index.html — CRM 발견 섹션 + 푸터 링크
/Users/ef/crowny-crm/web/index.html — 자산관리 카드(리스트 하단·설정) + 고객상세 진단 링크
검증
- asset: crm.crowny.org/크라우니 고객관리(CRM)/고객관리 시작하기 서빙 확인, 깨진 var(--line) 0
- crm: asset.crowny.org/clinic.html/자산관리 진단 보기/크라우니 자산관리 서빙 확인
- 양쪽 공개 HTTPS 200. 둘 다 정적을 요청마다 디스크에서 읽어 재기동 불필요(crm은 kickstart로 반영).
잔여 이슈
- asset 푸터 CRM 링크는 index.html에만 추가(주 랜딩). 다른 asset 페이지(clinic/team 등) 푸터에도 원하면 확산 가능.
- 순수 정적 상호 홍보 — 새 알고리즘 로직 없어 한선씨 동반 불필요(양쪽 서버.한선 정적 서빙 변경 없음).
- 더 깊은 연계(리드 양방향 동기화: asset 진단 리드 → CRM 자동 등록 등)는 후속 과제로 가능.
2차: 리드 양방향 동기화 (서버-투-서버)
상호 발견(awareness)을 넘어 실제 리드가 양방향으로 흐르게 구현.
asset → CRM (자산진단 신청자 → CRM 고객 자동등록)
CRM 공개 엔드포인트 POST /api/ingest/lead (헤더 x-ingest-token으로 대상 오너 식별, 세션 불필요).
전화번호 기준 중복제거 upsert, source:'asset' 태그, 시스템 메모를 대화에 한 줄("[자산관리 진단 접수] 리스크 X · 예상절세 Y").
구독 게이트와 무관하게 인입 허용(리드 유실 방지).
CRM GET /api/ingest/token — 오너별 인입 토큰 발급/조회(영속, 재부팅 후 DB.ingestIndex 재구성).
asset forwardToCRM(lead) — /api/lead·/api/booking 제출 시 fire-and-forget POST. 설정 data/crm-bridge.json {url, token} 또는 env(CRM_INGEST_URL/TOKEN). 토큰 없으면 dormant.CRM → asset (고객을 자산팀에 추천)
- CRM
POST /api/customer/:id/refer-asset — 서버가 asset /api/lead로 POST(source:'crm'), 고객에 assetReferred/assetTicket 기록 + 대화에 "[자산관리 진단 의뢰 전달됨]".
- 프론트: 고객 상세에 "💎 이 고객, 자산관리 진단 의뢰하기" 버튼 → 전달 후 "✓ 자산팀 전달됨 · 티켓" 표시.
설정 UI (CRM)
- 설정 모달 "자산관리 리드 자동연동" — 인입 토큰 표시 + 복사 + asset 측 crm-bridge.json 설정 안내.
검증 (격리 E2E, 빈 포트 9751/9752)
- asset 진단 제출 → CRM 김기업 자동등록(src=asset, 맥락 메모). CRM refer → asset 리드 등록(티켓 CAM-…), assetReferred=true. 토큰 영속 확인.
- 라이브 재기동 후 양쪽 엔드포인트/UI 동작, 공개 HTTPS 200. 테스트 잔재 0, 라이브 브리지 dormant.
운영자 활성화 (1단계)
- CRM에서 자산팀 계정으로 로그인 → 설정 → "자산관리 리드 자동연동" 토큰 복사.
- crowny-asset
data/crm-bridge.json 에 {"url":"https://crm.crowny.org","token":"<토큰>"} 저장 후 asset 재기동 → asset 신청자가 해당 CRM에 자동 유입.
- CRM→asset 추천은 별도 설정 없이 즉시 동작(ASSET_URL 기본 내부 연결).
리드 병합 로직
- 새 한선씨 로직 불필요 — 전화번호 중복제거(
고객티어.한선의 신규연락처인가) 재사용. 신규 코드는 서비스 간 HTTP 플러밍.