콘텐츠로 이동

시술별 안내 자동 발송

라우트: /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 설정 불가 (직원 통화 필요)

자동발송 켜는 방법

  1. /crm/customer-management/rules 진입
  2. 룰 표 행의 ⏸ 대기큐 버튼 클릭 → 편집 모달 (auto_send=1 미리 셋팅됨)
  3. [저장] → 2단계 확인 모달:

    "R1_한약_해독_D+1" 룰을 [자동 발송]으로 설정합니다. 이후 매일 09:00 배치가 매칭 환자에게 SMS를 자동 발송합니다.

  4. [확인] → 자동발송 ON

권장 흐름: 처음에는 모든 시드 룰을 대기큐 상태로 두고 일주일간 매칭 정확성 검증 → 정상이면 하나씩 자동으로 전환.


매칭 정확성 검증

자동 룰이 잘못된 환자를 매칭하면 잘못된 메시지 발송 → 환자 컴플레인. 배포 후 첫 1주는 대기큐 모드로 운영하면서:

  1. /crm/customer-management 페이지 → ⏳ 수동 대기 N ▾ 토글
  2. 매칭된 환자 목록 확인 (의도된 대상인지)
  3. 잘못 매칭됐으면 → 룰 조건(키워드/오프셋/is_detox) 수정 후 재배치
  4. 정확하면 → 룰을 자동발송으로 전환

자주 묻는 질문 / 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 배치 이후 매칭에만 영향.


관련 페이지