신청자관리 (CRM 리드)¶
이 페이지에서 찾을 수 있는 것
신청자 관리 / 리드 관리 / 콜 처리 / 상담사 배정 / 디비 분배 / 신청자 상세 / 인바운드 / 아웃바운드 / 상담예약 등록 / 신환 등록 / 신환 취소 / 본인 요청 취소 / 예약안내 SMS / 휴대폰 검증
이벤트/광고를 통해 들어온 신청자(리드, lead)를 관리하고, TM 상담사가 콜을 통해 상담예약 → 내원 → 진료까지 추적하는 화면입니다. CRM 영역의 메인 화면으로, 마케팅 입구에서 EMR 진료까지 환자가 끊김 없이 흐르도록 하는 핵심.
CRM 흐름 개요¶
이벤트 광고 노출
↓
[신청자 (리드)] ← 신청자관리 화면 (이 페이지)
↓ TM 상담사 콜
상담예약 (consultation_reservations)
↓ 환자 방문
내원 (consultation_visits)
↓ 자동 환자 등록
환자 차트 (patients) → EMR 진료 흐름으로 연결
→ 마케팅에서 추적한 환자가 진료실까지 자동 연결되는 EMR + CRM 통합 핵심 흐름.
화면 구성¶
신청자관리는 두 페이지로 구성:
| 페이지 | 위치 | 용도 |
|---|---|---|
신청자 목록 (ApplicantManagement) |
CS > 신청자관리 | 전체 리드 검색·필터·일괄 작업 |
신청자 상세 (ApplicantDetailPage) |
리드 클릭 시 | 콜 이력 작성, 상담사 메모, 환자 정보 갱신 |
신청자 목록 (ApplicantManagement)¶
검색/필터 영역¶
| 필드 | 의미 |
|---|---|
| 신청일 | 시작일~종료일 |
| 이벤트 | 광고 이벤트 선택 |
| 콜 상태 | 미콜 / 부재 / 상담예약 / 미예약 / 리콜 / 지방예약 / 거절 등 |
| TM 상담사 | 배정된 담당 상담사 |
| 성별 | 남/여 |
| 지역 | 시/도 |
| 검색어 | 이름 / 휴대폰 / 이벤트명 |
결과 표 컬럼¶
| 컬럼 | 의미 |
|---|---|
| 체크박스 | 일괄 작업 선택 |
| 이름 | 환자명 |
| 휴대폰 | 연락처 |
| 신청일 | 광고 신청 일자 |
| 이벤트 | 어떤 이벤트로 들어왔는지 |
| 콜 상태 | 미콜 / 상담예약 등 |
| TM 상담사 | 담당 |
| 메모 | 직원 메모 |
| 동행자 수 | lead_companions 카운트 (관련 work-item 27 fix) |
일괄 작업¶
- TM 상담사 배정 일괄 (체크박스 선택 후)
- SMS 발송 일괄 (안내 메시지)
- 카카오톡 발송 일괄
- 엑셀 다운로드
신청자 상세 (ApplicantDetailPage)¶
리드 클릭 시 진입. 주요 영역:
기본 정보¶
- 이름 / 연락처 / 신청일
- 이벤트 정보 / 채널 (인바운드/아웃바운드)
- 동행자 정보 (lead_companions)
콜 이력 (lead_calls)¶
- 콜 일시 + 통화 결과 + 상담사 메모
- 추가 콜 등록 가능 (TM 상담사 권한)
콜 상태별 분류¶
| 상태 | 의미 | 추가 입력 필요 |
|---|---|---|
| 미콜 | 아직 콜 안 함 | - |
| 부재 | 통화 안 됨 | 재콜 일정 |
| 상담예약 | 내원 상담 예약 잡힘 | 예약 일자, 지역 필수 |
| 지방예약 | 지방 환자, 별도 흐름 | 지역 필수 |
| 미예약 | 콜은 했지만 예약 안 잡음 | 사유, 지역 필수 |
| 리콜 | 추후 다시 콜할 예정 | 재콜 일정 |
| 거절 | 상담 거부 | 사유 |
상담사 정보 저장¶
- 성별 (콜 상태에 따라 필수)
- 지역 (콜 상태에 따라 필수)
- 메모
권한 (work-item 권한 정책)¶
- TM 상담사는 본인에게 배정된 신청자만 수정 가능
- 다른 상담사 신청자 수정 시도 시: "권한이 없습니다" 에러
- 재배정은 관리자(Level 1~2)가 일괄 작업으로 진행
예약안내 문자 패널 (신청자 상세 우측)¶
상담예약 입력 영역 우측에 예약안내 문자 패널이 있습니다. 자주 쓰는 4건이 기본으로 보이고, 그 외 17건은 모달에서 선택합니다.
| 영역 | 내용 |
|---|---|
| 기본 노출 4건 | 예약 즉시 알림 / 오시는 길(MMS, 약도 포함) / 내원전일 알림 / 내원 당일 알림 |
| + 더 많은 템플릿 (17) | 패널 하단 버튼 → 모달 열림. 카테고리 그룹 (신규환자/소개감사/홈페이지예약/내원보류/동의/기념일/설문/안내/접수/패키지/선납권) 별로 나열. 모달 안에서 "선택 후 즉시 발송" 가능 (예약 저장은 별도) |
| 체크 후 닫기 | 모달에서 체크한 템플릿이 패널 하단 "추가 선택됨" 영역으로 함께 표시 |
| 데이터 변수 | [패키지명] [총회차] [잔여회차] [만료일] [선수금잔액] [포인트잔액] 6종은 발송 직전 환자 데이터로 자동 치환 (서버측). 활성 패키지/잔액 데이터가 없는 환자에게 발송 시 400 거부되어 빈 자리 메시지가 환자에게 가지 않습니다. 미리보기 모달에 황색 경고 배너 표시 |
| 이중 발송 방지 | 발송된 템플릿은 자동으로 체크 해제. 모달에서 발송 후 부모 저장 버튼 다시 눌러도 같은 문자가 두 번 가지 않음 |
| 신청자 전환 | 다른 신청자 상세로 이동 시 체크 상태 자동 초기화 — 이전 환자용 SMS가 새 환자에게 가지 않음 |
| 본문 미작성 | 본문이 비어있는 신규 템플릿은 회색 + "본문 미작성" 뱃지로 선택 불가 (골격만 등록된 상태) |
| 즉시/예약 토글 | 체크된 템플릿마다 "즉시" 또는 "예약" 모드 선택. 내원전일/당일은 자동으로 예약 모드 + 시각 세팅 |
| 저장 시 발송 | 하단 "예약 상태 저장" 버튼 클릭 시 체크된 템플릿이 모두 발송됨 (즉시 즉발, 예약 sms_reserve INSERT) |
왜 4건만 기본 노출?
이전엔 21건 전부 한 번에 펼쳐 우측 패널이 화면을 다 차지했습니다. 자주 쓰는 4건만 기본 노출하고 나머지는 모달로 분리해 화면을 정리했습니다.
자주 쓰는 동작¶
시나리오 1 — 새 신청자 콜 처리¶
오늘 들어온 새 리드 콜하기
- CS > 신청자관리 진입
- 필터: 신청일=오늘, 콜 상태=미콜, TM 상담사=본인
- 결과 목록에서 환자 클릭 → 신청자 상세 진입
- 콜 이력 영역에서 "콜 추가" 버튼
- 통화 결과 입력:
- 통화 안 됨 → 콜 상태="부재", 재콜 일자 설정
- 상담 예약 잡음 → 콜 상태="상담예약", 예약 일자 + 지역 입력
- 거절 → 콜 상태="거절", 사유 입력
- 저장 → 자동으로 lead_calls INSERT
- 상담예약 잡았으면 자동으로
consultation_reservations생성 → 예약노트에도 표시
시나리오 2 — 상담사 일괄 배정¶
신규 리드 100명을 5명 상담사에게 분배
- 신청자관리 → 필터: TM 상담사="미배정"
- 결과 목록에서 체크박스 일괄 선택
- 상단 "TM 상담사 배정" 버튼
- 분배 모달 열림 → 상담사별 분배 비율 입력
- 자동 분배 (랜덤/순환)
- 배정 결과 확인 → 신청자관리 새로고침
시나리오 3 — 미콜 리드 SMS 일괄 안내¶
이벤트 신청 후 미콜 환자에게 안내
- 신청자관리 → 필터: 콜 상태=미콜, 신청일=최근 7일
- 결과 체크박스 선택
- SMS 발송 버튼 → 안내 메시지 작성
- 발송
- 발송 후 환자 응답 시 콜 이력 등록
시나리오 4 — 상담예약 → 내원 추적¶
TM에서 잡은 상담예약 환자 내원 확인
- 환자가 내원하면 데스크에서 현황판에 표시됨
- 자동으로
consultation_visitsINSERT - 자동 환자 등록: lead → patient 자동 변환 (
alpha-api/controllers/leads/reservation.js) - 환자 차트 자동 생성 → 진료 시작
- 신청자관리 화면에서 해당 리드 콜 상태가 "내원완료"로 자동 갱신
시나리오 5 — 동행자 추가 등록¶
신청자가 가족과 함께 내원하기로
- 신청자 상세 페이지 진입
- 동행자 영역에서 "+ 동행자 추가" 버튼
- 가족 이름/연령/연락처 입력
- 저장 →
lead_companionsINSERT (parent_lead_id로 연결) - 가족 환자 등록되면 자동으로 patient_uid 연결
→ 동행자가 patient로 등록되면 자동 매칭됨 (work-item 27 fix로 통계 정확).
권한별 차이¶
| 기능 | 권한 |
|---|---|
| 신청자 목록 조회 | 🟢 모든 직원 |
| 본인 배정 신청자 수정/콜 입력 | 🟢 TM 상담사 본인 |
| 다른 상담사 신청자 수정 | 🔴 권한 없음 (에러 모달) |
| TM 상담사 일괄 배정 | 🟡 (Level 1~2 관리자) |
| 일괄 SMS/카카오 발송 | 🟢 모든 직원 |
| 엑셀 다운로드 | 🟢 모든 직원 |
| 신청자 삭제 | 🔴 Level 1~2 |
→ 콜 입력은 본인 배정만, 보기는 모두 가능. 사고 방지를 위한 권한 분리.
자동 검증 / 정합성¶
신청자관리 관련 자동 처리 + 정합성 봇 알림:
| 항목 | 처리 |
|---|---|
| 휴대폰 번호 prefix 검증 (work-item 21) | 잘못된 형식 입력 차단 |
| lead → patient 자동 동기화 | reservation.js에서 자동 |
| 환자 중복 검사 (work-item 24) | 환자 등록 시점에 자동 차단 |
| 봇 7번 환자 중복 | 환자 검색에서 정리 |
자주 발생하는 문제 / FAQ¶
Q1. 다른 상담사 신청자 콜을 못 입력해요. A. 정상입니다. 본인에게 배정된 신청자만 콜 입력 가능 (사고 방지). 재배정이 필요하면 관리자에게 요청.
Q2. 미콜인데 상담예약으로 바뀌었어요. A. 환자가 직접 클리닉에 전화해서 예약 잡았을 가능성. 현황판에서 직접 예약 잡은 케이스도 자동 매칭됩니다.
Q3. 동행자 통계가 다른 페이지와 다르게 표시돼요. A. work-item 27 fix (2026-05-01) 적용 후 동행자 카운트 통일. 이전엔 patient 등록된 동행자만 카운트되어 누락 많았음. 지금은 모든 동행자 카운트.
Q4. 인바운드 vs 아웃바운드 차이가 뭔가요? A. - 인바운드: 환자가 직접 신청 (이벤트 페이지에서 신청 폼 작성) - 아웃바운드: 클리닉이 외부에서 영업 (이벤트 외 채널, 광고 외 활동) → 같은 페이지에서 관리하지만 source 컬럼으로 구분.
Q5. 콜 상태를 잘못 입력했어요. A. 신청자 상세 페이지의 콜 이력에서 해당 콜 수정 또는 새 콜 추가로 보정.
Q6. 휴대폰 번호 입력 시 에러가 나요. A. work-item 21 fix — 010/011 등 prefix 검증. 010-XXXX-XXXX 형식 정확히 입력. 외국인은 +82 등 지원.
Q7. 신청자가 환자로 등록 안 됐어요. A. 다음 확인: 1. consultation_visits 생성됐는지 (내원 후 자동 트리거) 2. 자동 환자 등록 흐름이 정상 동작했는지 3. 휴대폰 번호 중복 발견 시 차단됐는지 (work-item 24) → 안 되면 #dev 문의.
Q8. 신청자 검색이 너무 느려요. A. 검색 조건 좁히세요 (날짜 범위, 콜 상태, 상담사). 전체 검색은 부하 큼.
Q9. 신청자관리 엑셀에 동행자 정보가 빠져 있어요. A. 엑셀에는 메인 신청자 정보만 포함됩니다. 동행자는 신청자 상세 페이지에서 확인.
Q10. 신청자관리에서 상담예약 직접 잡을 수 있나요? A. 네. 콜 상태 = "상담예약"으로 변경하면 자동으로 consultation_reservations 생성. 예약노트에도 자동 표시.