이메일 자동화 — 관리자 패널 구축기
사용자의 기존 관리자 패널 내에 최고 수준의 이메일 자동화 시스템을 구축합니다. 사용자 행동을 관찰하고, 적절한 라이프사이클 시퀀스에 등록하며, 앱 자체의 이메일 연결을 통해 개인화된 한 번에 한 명씩의 리마인더 이메일을 전송합니다. 이는 입증된 퍼널 타이밍을 기반으로 하며, 대량 발송이 아닙니다.
목표: 스팸 없이, 기존 작동 중인 기능을 손상시키지 않으면서 사용자 재방문, 구매 및 유지율을 높입니다.
먼저 읽어주세요: 이 스킬은 비파괴적으로 설계되었습니다. 앱을 먼저 연구한 후에야 수정하며, 새로운 테이블/라우트만 추가하고(기존 흐름을 절대 다시 작성하지 않음), 앱의 이메일 연결을 재사용하며, 일시 중지된 상태로 배포됩니다. 관리자가 명시적으로 활성화하기 전까지는 아무것도 전송되지 않습니다.
워크플로우
0. 발견 ─▶ 1. 설계 ─▶ 2. 구축 ─▶ 3. 이벤트 연결 ─▶ 4. 관리자 UI ─▶ 5. 검증 ─▶ 6. 인계
앱 + 관리자 데이터 모델 새 테이블/ 트리거 → 대시보드 + 드라이런 + 일시 중지 +
연구 + 시퀀스 워커/크론 등록 테이블 + 통계 미리보기 "활성화하시겠습니까?"
0. 발견 (필수, 코드 작성 전)
앱을 철저히 연구하고 간단한 통합 계획을 작성합니다. references/discovery.md를 참조하세요.
- 스택, 프레임워크, ORM/DB, 인증, 세션, 관리자 패널을 식별합니다(또는 부재 시 이를 기록).
- 기존 이메일 연결(SMTP/제공업체 SDK)을 찾습니다. 이를 재사용하고 두 번째 연결을 추가하지 마십시오.
- 제품, 장바구니/체크아웃, 주문, 사용자 및 필요한 이벤트를 매핑합니다.
- 플랫폼의 목적과 비즈니스 모델(전자상거래, SaaS, 핀테크, 예약 등), 활성화 이벤트 및 중요한 계정 단계를 이해한 후, 이에 맞는 추가 리마인더 시퀀스를 제안합니다(이메일 확인, 프로필 완성, 온보딩, KYC, 평가판/청구, 예약, 갱신 등).
- 관리자 패널이 없는 경우 사용자에게 최소한의 패널을 생성할지 물어봅니다.
1. 설계
- 데이터 모델(
examples/data-model.md)을 정의합니다: 시퀀스, 단계, 등록, 예약된 이메일, 전송 로그, 설정, 차단 목록. - 시퀀스 세트와 타이밍(
references/sequences.md)을 선택합니다.
2. 구축 (추가만)
- 새 테이블/컬렉션, 스케줄러 작업 및 전송 워커를 추가합니다. 기존 테이블을 수정하지 마십시오.
- 기능 플래그/마스터 일시 중지 스위치(기본값 OFF)와 글로벌 킬 스위치를 추가합니다.
3. 이벤트 연결
- 앱의 기존 이벤트(가입, 로그인, 장바구니 추가, 체크아웃 시작, 구매, 비활성)를 등록에 연결합니다. 해당 동작을 변경하지 않고(관찰만 하고 가로채지 않음).
4. 관리자 UI
- "이메일 자동화" 최상위 메뉴를 탭과 함께 추가합니다: 시퀀스 · 수신자 · 통계 · 설정.
references/admin-ui.md를 참조하세요. - 제품 및 체크아웃 페이지 하단에 관리자 전용 구매/이탈 테이블을 추가합니다.
5. 검증
- 드라이런 모드, 미리보기/테스트 전송 도구, 멱등성 검사 및 중지 조건 감사.
6. 인계
- 시스템은 일시 중지된 상태로 배포됩니다. 관리자에게 알리고 원클릭 "활성화"(또는 에이전트가 도움을 제공)를 표시하며 롤백 방법을 문서화합니다.
시퀀스 카탈로그 (입증된 퍼널 타이밍)
전체 세부 사항, 카피 의도 및 중지 조건: references/sequences.md. 요약:
| # | 시퀀스 | 트리거 | 타이밍 (기본값) | 중지 조건 |
|---|---|---|---|---|
| 1 | 환영 / 활성화 | 가입 | 0시간 환영 → 24시간 가치 제안 → 72시간 사회적 증거 | 로그인 / 구매 |
| 2 | 가입 후 로그인 안 함 | 가입 + 로그인 없음 | 1시간 → 24시간 → 72시간 | 로그인 |
| 3 | 로그인 후 구매/사용 안 함 | 로그인 후 비활성 | 1시간 알림 → 24시간 → 5일 | 구매 / 활성화 |
| 4 | 장바구니/체크아웃/제품 이탈 | 장바구니, 체크아웃, 또는 제품 조회 후 미구매 | 1시간 리마인더(할인 없음) → 24시간 사회적 증거/반론 → 48–72시간 긴급성 + 할인 | 구매 |
| 5 | 구매 후 리뷰 | 구매 (제품 유형 인식) | 다음 날 "어떠세요?" → 2주 후 "경험 + 업셀" | 리뷰 / 구독 해지 |
| 6 | 업셀 / 크로스셀 | 구매, 다른 제품 존재 시 | 가치 실현 시점 이후 (3–7일) | 홍보된 제품 구매 |
| 7 | 재유입 / 재참여 | 30/60/90일 비활성 | 중립 → 가치 → 최종 "중단하겠습니다" | 활동 / 구독 해지 |
| 8 | 재입고 | 소모성 제품 | ~45–60일 | 재구매 |
할인: 업셀에는 할인이 포함될 수 있으며, 이탈 장바구니에는 긴급성 + 할인이 포함됩니다. 기본 0% — 0%인 경우 이메일에 할인을 언급해서는 안 됩니다. 최소 장바구니 금액 가드가 매우 낮은 가치의 장바구니에 대한 인센티브를 건너뜁니다. (references/sequences.md.)
우선순위: 사용자는 최대 하나의 프로모션 시퀀스에만 속합니다 — 구매 > 장바구니 > 탐색 > 환영 > 로그인 안 함 > 비활성 > 재유입. 추가 시퀀스: 탐색 이탈, 재입고 알림, 가격 인하, 결제 독촉, 추천. references/sequences.md를 참조하세요.
더불어 플랫폼에서 파생된 시퀀스는 앱의 목적에서 발견됩니다. 예: 이메일 확인, 프로필 완성, 온보딩 설정, KYC, 청구/평가판 종료, 예약 리마인더, 갱신. 플랫폼이 감지하고 조치를 취할 수 있는 것만 추가하세요. (references/sequences.md.)
불가침 규칙
- 구축하기 전에 연구하세요. 기존 인증, 장바구니, 체크아웃, 주문 또는 사용자 흐름을 절대 수정하지 마십시오. 새 테이블/라우트만 추가하세요.
- 기존 이메일 연결을 재사용하세요. 두 번째 SMTP/제공업체 설정이 없습니다. 대량/벌크 전송이 없습니다. 이메일은 사용자별 및 이벤트 기반으로 전송됩니다.
- 일시 중지된 상태로 배포됩니다. 마스터 스위치 OFF; 관리자에게 활성화하도록 알림(에이전트가 도움을 제공할 수 있음).
- 스팸 금지. 빈도 제한(기본값 ≤1 마케팅 이메일/사용자/24시간, ≤4/주), 조용한 시간, 글로벌 차단 목록(구독 해지, 반송, 불만 신고). 동의 및 관심사를 존중하세요.
- 중지 조건이 항상 우선합니다. 전송 전마다 목표(구매/로그인/활성화)를 재확인하여 구매자가 장바구니 리마인더를 받지 않도록 합니다.
- 개인화된 1:1 카피입니다. "발신자"는 실제 사람(
브랜드 이름), 개인적인 어조로 작성, 실제 제품을 언급, 하나의 명확한 CTA, 모든 이메일에 "관리자에게 문의" 링크 포함. - 전달성 + 법적 준수. SPF/DKIM/DMARC, 브랜드 발신 도메인, HTML + 일반 텍스트, 구독 해지 + 실제 주소, 스팸 트리거 단어 없음.
references/sending-and-compliance.md를 참조하세요. - 모든 것을 감사 가능하게. 모든 전송은 기록(누가, 어떤 시퀀스/단계, 언제, 왜)되며 모든 예약된 이메일은 관리자에게 표시됩니다.
- 미적 + 매끄러움. 앱의 디자인 토큰과 일치해야 하며 관리자 섹션이 기본적으로 보여야 합니다.
reviews-to-features스타일의 엄격함을 사용하세요: 명확한 계층 구조, 44px 대상, 접근 가능한 대비. - 이메일 본문용 무료 WYSIWYG 편집기. 관리자는 무료 자체 호스팅 WYSIWYG 편집기(TinyMCE Community; 또는 Quill / TipTap / Summernote / GrapesJS)에서 각 이메일 템플릿을 편집합니다. 출력은 이메일 안전(인라인 CSS, 테이블, ~600px, JS 없음)해야 하며, 살균 처리되고, 병합 토큰, 조건부 할인 블록 및 자동 생성된 일반 텍스트 복사본이 있어야 합니다.
비파괴 계약 (강제됨)
"비파괴"는 가정이 아닌 확인됩니다. 전체 체크리스트: references/non-disruption.md. 최소 사항:
- 마이그레이션 전에 DB를 백업하세요. 마이그레이션은 추가적이며 되돌릴 수 있어야 합니다(기존 테이블 변경 없음).
- 훅은 관찰 전용이며
try/catch로 래핑되어야 합니다. 실패하는 관찰자가 가입/로그인/체크아웃/결제를 중단하지 않습니다. - 일시 중지된 상태로 배포되며 글로벌 킬 스위치가 있어야 합니다. 기존 메일 연결을 재사용합니다.
- 설치 후 다섯 가지 핵심 흐름을 스모크 테스트하고 롤백 드릴(비활성화 → 테이블 드롭 → 변경 사항 없음 확인)을 실행합니다.
관리자 표면 (관리자가 얻는 것)
- 조용하고 깔끔한 레이아웃 — 최대 4개의 탭, 뷰당 하나의 기본 작업, 세부 사항은 서랍에, 보조/파괴적 작업은 오버플로우(
⋯) 메뉴에, 고급 설정은 접혀 있으며, 필요한 경우에만 상태 배너 표시. - 상태 배너는 모든 탭 상단에(문제가 있을 때만): 이메일 전송 설정 안 됨, 스케줄러/크론 실행 중 아님(자세한 이유 + 해결 방법 포함), 자동화 일시 중지됨.
references/health-checks.md를 참조하세요. - 이메일 자동화 메뉴(최상위), 탭 포함:
- 시퀀스 — 시퀀스별 시작 / 일시 중지 / 삭제(삭제는 확인 후 소프트 삭제/복원 가능,
⋯에 숨김), 지연, 할인, 중지 조건, 무료 WYSIWYG 편집기, 단계 추가 / 재정렬 / 삭제. - 사용자 및 수신자 — 사용자 이메일 검색; 아래쪽 화살표로 이메일 시퀀스 펼치기; 특정 이메일 취소 또는 사용자 완전 제외; 전체 전송 로그 100개씩 페이지네이션과 언제, 왜 포함.
- 통계 — 리마인더를 받은 사용자 중 전환한 사용자 수, 수익, 일별 / 주별 / 월별 차트.
- 설정 — 발신자(보내는 이름/보내는 이메일/회신 주소/실제 주소), 마스터 일시 중지, 제한, 조용한 시간.
- 시퀀스 — 시퀀스별 시작 / 일시 중지 / 삭제(삭제는 확인 후 소프트 삭제/복원 가능,
- 제품 및 체크아웃 페이지 하단의 관리자 전용 테이블:
- 탭 구매함 / 이탈함 — "관리자 전용" 으로 명확히 표시.
- 열: 이메일(→ 사용자 패널), 가입/로그인/이탈 날짜/시간, 지불 예정 금액, 전화번호(→
tel:전화), 이메일 수신 및 예약 현황을 보여주고 사용자 패널로 연결되어 취소/제외할 수 있는 화살표. - 이메일 자동화 → 설정에서 비활성화 가능하며, 테이블 제목 아래에 지침 및 링크 제공.
전체 UI 사양: references/admin-ui.md.
사용하지 말아야 할 경우
- 마케팅 이메일에 대한 법적 동의 기반이 없는 경우(먼저 동의 흐름을 제공하세요).
- 사용자 기반이 매우 작은 경우 자동화 소음이 가치를 능가할 수 있습니다. 수동으로 보내세요.
- 이메일이 채널이 아닌 제품(SMS/푸시 우선)의 경우 엔진을 조정하고 이메일을 강제하지 마세요.
- 규제된 컨텍스트(건강/금융)에서 더 엄격한 검토가 필요한 경우 카피 및 데이터 흐름에 대한 사인오프를 받으세요.
- 고신뢰성 트랜잭션 요구 사항이 있는 경우 영수증/보안 이메일을 이 시스템을 통해 라우팅하지 마세요.
에이전트가 생성하는 산출물
references/discovery.md→ 특정 앱에 대한 통합 계획과 플랫폼의 목적에서 파생된 제안된 시퀀스 숏리스트를 포함합니다.- 새 테이블/마이그레이션 + 스케줄러 + 전송 워커 (추가적).
- 이벤트 훅 (관찰 전용).
- 관리자 "이메일 자동화" 페이지 + 탭 + 통계 차트, 무료 WYSIWYG 편집기, 단계 추가 / 재정렬 / 삭제, 사용자 검색 + 이메일별 취소/제외, 상태 경고(일시 중지, 크론 실행 중 아님, 메일 전송 설정 안 됨).
- 관리자 전용 구매/이탈 테이블.
- 미리보기/테스트 전송 도구 + 드라이런 + 롤백 노트.
- 간단한 인계 문서: 추가된 내용, 활성화 방법, 일시 중지 방법, 롤백 방법.
참고 자료
references/discovery.md— 앱 연구, 관리자 찾기, 통합 경로 선택.references/non-disruption.md— 강제된 비파괴 계약(백업, 되돌릴 수 있는 마이그레이션, 훅 격리, 스모크 테스트, 롤백 드릴).references/triggers.md— 모든 트리거(장바구니 이탈, 비활성 등)에 대한 정확한 감지 규칙.references/sequences.md— 전체 시퀀스 카탈로그, 우선순위, 타이밍, 카피 의도, 중지 조건.references/email-copy.md— 개인화된 "한 사람이 보내는" 카피 표준, 제목 줄, 템플릿.references/sending-and-compliance.md— 스케줄러, 멱등성, 제한, 전달성 사전 점검.references/compliance.md— 동의, 서명된 구독 해지, 환경 설정 센터, 반송/불만 신고 웹훅.references/admin-ui.md— 대시보드, 사용자 탭(검색/취소/제외), 로그(100/페이지), 통계, 관리자 전용 테이블, WYSIWYG, 단계 추가/편집.references/health-checks.md— 일시 중지 / 크론 실행 중 아님 / 전송 설정 안 됨 경고와 수정 지침.references/reference-implementation.md— 의사 코드 + SQL로 된 엔진(잠금, 리퍼, 기여도).examples/worker.mjs+examples/worker.test.mjs— 실행 가능하고 테스트된 스케줄러/워커 코어.examples/data-model.md— DB 스키마.examples/sequence-config.json— 구체적이고 편집 가능한 시퀀스 설정.examples/email-templates.md— 렌더링된 이메일 샘플.