콘텐츠로 이동

문자발송내역

라우트: /patients/sms-history 진입: 좌측 메뉴 환자관리 → 문자발송내역 권한: 전 직원 (level 1~5)

한 줄 요약

전 환자/전 채널 SMS 발송 이력 통합 검색. 발송 결과(성공/실패) 확인 + 실패 재발송.


화면 구성

[문자발송내역]                                            [↻ 새로고침]
─────────────────────────────────────────────────────────────────────
[기간] [결과 ▾] [채널 ▾] [수신인 검색]                         [🔍 검색]
─────────────────────────────────────────────────────────────────────
┌ 발송시각 ┬ 수신인 ┬ 차트번호 ┬ 본문 ┬ 채널 ┬ 상태 ┬ 결과 ┬ 액션 ┐
│ 26-05-19(월) 09:00 │ 김보혜 │ 26000001 │ ... │ SMS │ 발송완료 │ 성공 │ [재발송] │
└─────────────────────────────────────────────────────────────────────┘

필터

필드 옵션
기간 시작일 ~ 종료일 (기본: 최근 1개월)
결과 전체 / 성공 / 실패 / 발송전 / 취소
채널 전체 / SMS / LMS / MMS / 알림톡 / 친구톡
수신인 환자 이름 / 차트번호 / 전화번호 부분 매칭

결과 표 컬럼

컬럼 의미
발송시각 sent_at (있으면) 또는 scheduled_at
수신인 환자 이름 + 차트번호 + 전화번호 (4자리 마스킹)
본문 미리보기 100자 이내 — 호버 시 전체
채널 SMS/LMS/MMS / 알림톡 / 친구톡
상태 sent / pending / failed / canceled
결과 성공 / 실패 / 발송전 / 취소 (result_code 기반)
발신자 발송한 직원 (created_by)
액션 [재발송] (실패 행만) / [상세]

자주 쓰는 동작

시나리오 1 — 어제 자동 발송 결과 확인

  1. 기간: 어제 ~ 어제 / 결과: 전체
  2. 결과 컬럼에서 실패 건 카운트
  3. 실패 행 [재발송] 클릭 → 즉시 재발송 시도

시나리오 2 — 특정 환자 발송 이력 점검

  1. 수신인 검색에 환자 이름 또는 차트번호 입력 → 🔍
  2. 결과: 해당 환자의 전체 발송 이력
  3. 발송시각/본문/결과로 환자가 받은 안내 추적

시나리오 3 — 광고 메시지 발송 후 효과 분석

  1. 기간: 광고 발송일 ~ 1주일 후
  2. 채널: SMS (또는 알림톡)
  3. 발송 건수 + 성공률 확인
  4. 상세 환자 클릭 → 환자 상세 페이지 → 광고 후 예약/내원 추적

[재발송] 동작

실패한 SMS를 다시 시도. 알리고 API 즉시 재호출 + 새 sms_send_logs INSERT (재발송 표시).

제한: - 재발송은 운영자 트리거 (자동 재시도 없음) - 환자가 수신거부로 차단되면 재발송 차단 - 알리고 잔액 0원이면 또 실패


발송 결과 코드

result_code 의미 비고
1 성공 알리고에서 발송 확인
2 발송중 알리고 큐에 적재됨 (1~3초 후 1로 전환)
-101 실패 수신번호 형식 오류
-102 실패 발송번호 미인증
-103 실패 잔액 부족
-201 실패 알리고 API 호출 실패
기타 실패 result_message 컬럼 참조

권한별 차이

기능 권한
이력 조회 (전체) 🟢 모든 직원
[재발송] 🟢 모든 직원
환자 상세로 이동 🟢 모든 직원
발송 내용 삭제 🔴 권한 없음 (audit_logs 정책)

자주 묻는 질문 / FAQ

Q. 발송완료인데 환자가 안 받았다고 해요

체크: 1. 결과 코드가 1(성공)인지 / 2(발송중)인지 — 발송중이면 1~3초 대기 후 1로 전환됨 2. 환자 전화번호가 최근 변경됐는지 (patients.mobile_phone) 3. 환자 폰의 SMS 차단 설정 (KISA 스팸 신고 등) 4. 환자가 통신사 차단 / 정지 상태

Q. 발송시각이 너무 늦었어요 (오후 11시 안내)

예약 발송(sms_reserve.send_at)을 늦은 시각으로 설정한 경우. 1분 cron이 send_at 도래 시점에 발송하므로 정확한 시각. 늦은 안내 방지하려면 예약 시 시간대 검토.

Q. 같은 환자에게 같은 SMS가 두 번 갔어요

원인 가능: 1. 운영자가 [재발송] 두 번 클릭 2. 자동 발송 룰 + 예약노트 발송이 같은 날 매칭 (각 별도 시스템) 3. 인메모리 가드 5초 차단을 우회한 빠른 재클릭

중복 발송된 건 환자에게 사과 안내 + 발송 로그 분석 후 룰 조건 재조정.

Q. 발송 내역에서 본문을 수정할 수 있나요?

아니요. 발송된 메시지는 변경 불가. sms_send_logs 는 audit 용도.

Q. 알림톡 발송 결과는 어디서 보나요?

동일한 본 페이지. 채널 필터 = 알림톡으로 좁히면 알림톡만 표시. (단, 알림톡은 현재 WI#19 진행 중이라 백엔드 미구현 상태일 수 있음)

Q. 광고 메시지로 환자가 컴플레인 했어요

환자 동의 정보 즉시 확인: 1. 환자관리 → 환자 상세 → sms_consent, ad_consent 값 점검 2. ad_consent=0 인데 광고 발송됐다면 정보통신망법 위반 3. 즉시 환자 동의 OFF + 사과 SMS + 사후 조치 (관리자 보고)


관련 페이지