시술별 안내 자동 발송¶
라우트:
/crm/customer-management/rules(룰 관리) +/crm/customer-management(모니터링) 진입: 좌측 메뉴 CRM → 고객관리 → 룰 관리
한 줄 요약
시술/결제 후 D+N 일에 환자에게 자동으로 SMS·해피콜 안내를 보내는 룰 시스템. 매일 09:00 배치가 룰에 매칭되는 환자를 찾아 안내 큐에 INSERT → 자동 발송 또는 직원 대기큐로 분류.
시드 룰 5종 (2026-05-19 기준)¶
| 룰 | 조건 | 채널 | 메시지 예시 |
|---|---|---|---|
| R1 한약 해독 D+1 | 해독 키워드 결제 다음날 | SMS | "해독 시작 1일차 안내" |
| R2 한약 일반 D+1 | 약침/맞춤처방/다이어트 등 한약 결제 다음날 | SMS | "복용 안내" |
| R3 재내원 안내 | 결제 후 25/55/85/115/145/175일 | SMS | "재내원 시기 안내" |
| R4 피코/브이레이저 D+7 | 피부 시술 7일 후 | SMS | "시술 후 관리 안내" |
| R5 슈링크/리프팅 D+30 | 리프팅 시술 30일 후 | SMS | "리프팅 1개월 결과 안내" |
해피콜(call) 시드 룰도 추가 가능 — 직원이 직접 통화하는 작업.
:material-flow-chart: 동작 흐름¶
[매일 09:00 배치 (customerMgmtAutoBatch.js)]
↓
[활성 룰 N개 순회]
↓
[각 룰의 조건(결제후N일, 키워드, is_detox 등)에 매칭되는 환자 SELECT]
↓
┌─ auto_send=1 → 즉시 SMS 발송 + crm_task_logs INSERT (sent)
└─ auto_send=0 → crm_task_logs INSERT (queued) → 고객관리 페이지 「수동 대기」에서 직원이 [발송]
룰 설정 항목¶
| 필드 | 의미 |
|---|---|
| 룰 이름 | 표시용 (예: R1_한약_해독_D+1) |
| 채널 | sms / kakao / call(해피콜) / memo |
| 트리거 | 결제 / 접수 / 시술 / 수동 |
| 오프셋 (D+N) | 트리거 후 N일 (양수 = 미래, 음수 = 과거) |
| 반복일 (recurrence_days) | JSON 배열 — 재내원: [25,55,85,115,145,175] |
| 키워드 | progress_note_orders.order_name LIKE 매칭 (JSON: ["해독","약침"]) |
| 해독필터 (is_detox) | 공란/0/1 — patient_packages.is_detox 컬럼 기준 |
| 템플릿 | 발송할 메시지 본문 (변수: {{환자명}}) |
| 자동발송 | 0 (대기큐 — 직원 검토) / 1 (자동) |
| 활성 | 0 (룰 비활성) / 1 (사용 중) |
안전장치¶
| 안전장치 | 동작 |
|---|---|
| UNIQUE (rule_id, patient_id, performed_date) | 같은 일자 중복 INSERT 차단 (마이그레이션 071) |
| 7일 lookback 중복 차단 | 같은 환자에게 같은 룰이 7일 내 재발송 방지 (2026-05-19 Phase 9) |
| 수신거부 자동 차단 | patients.sms_consent=0 / ad_consent=0 환자는 발송 대상 제외 |
| 자동발송 토글 시 2단계 확인 | 룰을 대기큐 → 자동 변경 시 confirm 모달 |
| 해피콜 자동발송 금지 | channel=call 룰은 auto_send=1 설정 불가 (직원 통화 필요) |
자동발송 켜는 방법¶
/crm/customer-management/rules진입- 룰 표 행의 ⏸ 대기큐 버튼 클릭 → 편집 모달 (auto_send=1 미리 셋팅됨)
- [저장] → 2단계 확인 모달:
"R1_한약_해독_D+1" 룰을 [자동 발송]으로 설정합니다. 이후 매일 09:00 배치가 매칭 환자에게 SMS를 자동 발송합니다.
- [확인] → 자동발송 ON
권장 흐름: 처음에는 모든 시드 룰을 대기큐 상태로 두고 일주일간 매칭 정확성 검증 → 정상이면 하나씩 자동으로 전환.
매칭 정확성 검증¶
자동 룰이 잘못된 환자를 매칭하면 잘못된 메시지 발송 → 환자 컴플레인. 배포 후 첫 1주는 대기큐 모드로 운영하면서:
/crm/customer-management페이지 →⏳ 수동 대기 N ▾토글- 매칭된 환자 목록 확인 (의도된 대상인지)
- 잘못 매칭됐으면 → 룰 조건(키워드/오프셋/is_detox) 수정 후 재배치
- 정확하면 → 룰을 자동발송으로 전환
자주 묻는 질문 / FAQ¶
Q. 룰 추가 후 언제부터 발송되나요?
당일 09:00 배치 이후. 룰 저장 → 다음 날 09:00 배치 실행 → 첫 SMS 발송.
당일 즉시 발송이 필요하면 /crm/customer-management/rules 의 [지금 실행] 버튼.
Q. 같은 환자에게 R1과 R4가 동시에 매칭되면?
각 룰이 별도 INSERT — 같은 날 같은 환자에게 2건 발송됩니다 (서로 다른 시술/약 안내). 중복 방지는 (rule_id, patient_id, date) 기준이므로 다른 룰끼리는 별도 발송.
Q. 해피콜 큐가 너무 많이 쌓여요
7일 lookback 중복 차단으로 동일 룰 + 동일 환자는 7일 내 1건만. 그래도 많으면 룰 조건(반복일/키워드)을 좁히세요.
Q. 매칭 환자가 매번 같은데 안 보내고 싶어요
환자의 patients.sms_consent 또는 ad_consent 를 0으로 변경 → 자동 차단.
또는 룰 자체를 비활성(enabled=0)으로 OFF.
Q. 룰을 수정하면 어제 발송된 건도 영향 받나요?
아니요. crm_task_logs 의 과거 데이터는 그대로. 룰 수정은 다음 09:00 배치 이후 매칭에만 영향.
관련 페이지¶
- 고객관리 대시보드 — 일일 큐 모니터링
- 고객관리 리스트 — 발송/처리 이력 통합 검색
- 예약노트 자동 SMS — 예약 D-1/D 당일 안내 (별도 시스템)
- 메시지 자동 발송 — 전체 자동 발송 흐름 비교표