캠페인 화면 분석 & 정리 리포트

Rinda · Admin Frontend (send-grid-test / alpha) · 2026-06-10 · 개인용 내부 문서 noindex

바이어 검색 이후 "AI / 수동 캠페인" 진입 흐름을 코드베이스 기준으로 전수 조사하고, 진입점 불일치(drift)를 통일 · 죽은 화면(create-unified)을 은퇴시킨 작업 + 남은 정리 계획을 정리한 문서입니다.

1 캠페인 생성 진입점 — 통일 완료 DONE

같은 "수동/AI 캠페인 생성"이 진입점마다 다른 화면으로 갈라지던 drift 를 제거. 3개 진입점 모두 동일 2화면으로 통일.

/sequences · 새 캠페인 /leads · 캠페인 시작 알림 · 린다에게 영업 맡기기 ──▶ 수동 · /sequences/create AI · /sequences/proposal
선택 그룹은 ?customerGroupId 로 넘겨 진입 화면에서 preselect.

2 create-unified 은퇴 DONE

/sequences/create-unified (UnifiedCampaignPage) 는 통일 후 진입점 0 → 완전 제거. FE·BE·i18n·e2e 전 계층 잔존 0 (grep 검증).

PR내용
#8334/leads 캠페인 시작 → create·proposal 연결 + proposal 그룹 preselect
#8335알림 진입 통일 + UnifiedCampaignPage 서브트리 14파일 삭제
#8343잔재 정리 — dead i18n 185키 · allowlist · e2e route · 주석
BE 엔드포인트 고아 없음 — 삭제된 흐름은 공유 API(campaign-proposals·sequences·customer-groups)만 사용.

3 /sequences/create-personalized 분석

결론유지 진입점 8개가 살아있는 핵심 화면 — create-unified 와 정반대로 제거 대상 아님.
죽은 호출부V1 ChatRoom(lead-discovery/ChatRoom.tsx:1578) 1개뿐 → 별도 lead-discovery-v1 은퇴(아래 P2)에 포함.
dead 코드없음 (personalizedPath/templatePath 는 라이브).
#진입점파라미터상태
1GradeCampaignCards.tsx:150 · 바이어 인사이트 등급 카드customerGroupIdLIVE
2CampaignFromGroupModal.tsx:72 · 어시스턴트 마일스톤 CTAparamsLIVE
3SequencesPage.tsx:140 · 목록 "수정"(개인화 draft)idLIVE
4CampaignStatusTabs.tsx:695 · 상태 탭 편집idLIVE
5CampaignModeSelectModal.tsx:112 · 개인화 카드(ChatRoom autoMode)customerGroupIdLIVE
6SequenceEditPage.tsx:101 · edit→개인화 draft 리다이렉트id (replace)LIVE
7campaign-readiness.ts:80 · readiness 액션 URLidLIVE
8lead-discovery/ChatRoom.tsx:1578 · V1 레거시idLEGACY

4 AI 영업 캠페인 상세·수정 화면 — 문제점

?id= 무효 시 에러 미처리
CreatePersonalizedCampaignPage.tsx:106,298

없는/타 워크스페이스 id 로 진입 시 useSequenceerror 를 안 읽음 → 빈 Step2 화면에서 멈춤(토스트·리다이렉트 없음). SequenceEditPage 는 처리하는데 이 페이지만 누락.

제안: SequenceEditPage 패턴 복제(toast + /sequences 이동).
ready 상태 책임 경계 모호
SequenceEditPage.tsx:97-100 vs SequencesPage.tsx:138

개인화+ready 캠페인을 목록에서 "수정"하면 create-personalized 가 아닌 edit(DraftReadyContent)로 가서 활성화 CTA 가 사라짐 → 활성화 동선 단절.

제안: 개인화 분기에 ready 포함해 SSOT 통일.
generating DB-status 분기 dead

개인화 스트리밍은 DB status 를 draft 유지 → status==="generating" 분기 미트리거(방어적, 무해).

no_response 상태 빈 화면

SequenceEditPage.tsx:199-201 에서 분류 누락(도달 불가 추정).

문제 없음 확인 — 리다이렉트 무한루프 ✗ · TanStack 캐시 mutate 위반 ✗ · 자동저장↔활성화 정합성 정상(PATCH partial) · generating 새로고침 복구 정상.

5 다음 정리 계획

P1 · S

/campaign-calendar/standalone 제거

외부 진입 0. operations?tab=calendar 와 중복(같은 컴포넌트 임베드).
P2 · L

/lead-discovery-v1 은퇴

외부 진입 0, DeprecationBanner 존재. mastra(16파일)가 대체. ChatRoom 중복 분리 후 제거.
P3 · S

e2e/routes.json 재생성

179줄 drift 누적 + sync-routes.mjs 경로 타 머신 하드코딩 수정.
화면 버그 우선 수정(권장 먼저)