IOSOR 가이드
미전달 vs 거절 vs 만료: 제품·빌링용 상태 사전
스크린샷 논쟁을 멈추고 제품·지원·선불 빌링을 undelivered, rejected, expired와 각 상태가 실제로 허용하는 동작으로 맞추세요.
전달률이 떨어지면 제품은 파이프를 탓하고, 지원은 스크린샷을 붙이며, 재무는 선불 지갑이 왜 움직였는지 묻습니다. 열기의 대부분은 어휘 실패입니다. Undelivered, rejected, expired는 동의어가 아닙니다. 하나의 “failed” 통에 넣으면 잘못된 재시도·잘못된 환불·잘못된 사고 심각도가 만들어집니다.
IOSOR는 B2B 팀이 메시징을 화이트라벨 선불로 운영하길 바랍니다. 한 번 충전하고, 지속 상태 이벤트를 읽고, 브랜드 안전 오류 문구를 유지합니다. 이 사전은 제품 UX·운영·원장 사이의 운영 계약입니다.
왜 상태 단어가 장애보다 더 많은 사고를 만드는지
| 등급 | 예 | 제품은… |
|---|---|---|
| Intermediate | queued, submitted, sent | 진행을 보여 주고; 핸드셋 성공을 축하하지 않음 |
| Terminal success | delivered | 다음 UX를 열고; 자동 재전송을 멈춤 |
| Terminal fail | undelivered, rejected, expired(종단이면) | 허용된 동작을 고르고; 무한 재시도 금지 |
UI가 모든 것을 빨간 X로 접으면 02:00에 아무도 올바르게 행동하지 못합니다.
상태 사전: 제품과 빌링이 합의할 수 있는 정의
Undelivered는 보통 작업이 라이브 메시징 경로에 들어갔지만 다운스트림 신호가 핸드셋 성공이 없다고 말하는 상태입니다. 전형 원인: 전원 끔, 받은편지함 가득, 회랑 일시 혼잡, 도달 불가 가입자.
허용 동작:
- 정책과 회랑 증거가 뒷받침할 때만 유계 자동 재시도
- 사기를 암시하지 않는 사용자용 “나중에 다시 시도”
- 게시된 차감/환불 규칙에 따른 지갑 처리 — 채팅 스레드에서 조용한 환불을 만들지 말 것
모든 undelivered를 “플랫폼 다운”으로 보지 마세요. 세계를 페이지하기 전에 회랑으로 자르세요.
Undelivered vs rejected: 다른 실패 클래스, 다른 수정
Rejected는 정책 또는 입장 실패입니다. 콘텐츠 필터, 발신자 신원, 컴플라이언스 게이트, 잘못된 목적지, 잔액 부족, 해당 기능 catalog-not-live. 작업은 핸드셋 전달의 공정한 기회를 얻지 못했습니다.
허용 동작:
- 게이트 수정(템플릿, 등록, 잔액, 카탈로그 정직)
- 운영자에게 usable·브랜드 안전 사유 코드 표시
- 동일 페이로드를 다른 우주를 기대하며 재시도하지 말 것
Rejected 폭풍은 먼저 컴플라이언스와 카탈로그 문제이지 “처리량 더” 문제가 아닙니다.
Expired: TTL, 큐, OTP 타이밍 창
Expired는 종단 성공 전에 유효 창이 닫힌 상태입니다. OTP(TTL), SLA를 지난 큐 작업, 네트워크 유효 창에서 흔합니다. 제품은 user expired(사용자 정체)와 network expired(파이프가 제때 전달하지 못함)를 분리해야 합니다.
허용 동작:
- 쿨다운이 있는 통제된 재전송 제공
- Verify 흐름에서 이전 코드 무효화
- 새 시도가 다시 차감될 때 지출을 명확히 귀속
쿨다운 없는 자동 재전송의 만료 OTP는 사기와 지출 증폭기입니다.
| 상태 | UX 카피 자세 | 전형 선불 자세 | 운영 다음 단계 |
|---|---|---|---|
| Undelivered | 일시 / 핸드셋 불확실 | 게시된 차감/환불 정책 준수 | 회랑 슬라이스 + 증거 팩 |
| Rejected | 실행 가능한 게이트 실패 | 대개 성공 전달 시도 없음 | 게이트 수정; 동일 재시도 중지 |
| Expired | 시간 창 종료 | 정책에 따라 소비된 시도 차감 | 재전송 쿨다운; 새 상관 ID |
월 USD 1,000+ 플랫폼 사용 근처에서 상태 언어 불일치는 상업 분쟁이 됩니다 — 지원 호기심이 아닙니다. 파일럿은 먼저 두 회랑에서 사전을 검증할 수 있습니다.
- 제품·지원·재무가 공유하는 문서화된 사전
- 지속 ID가 있는 웹훅 또는 폴링 가능 이벤트
- 화이트라벨 안전을 유지하는 구분된 사유 코드
- 각 종단 실패 클래스에 짝지은 재시도/재전송 정책
- 재무가 상태 결과와 대사할 수 있는 지갑 내보내기
- “rejected: not live”를 말할 수 있는 카탈로그 정직
두 회랑과 OTP 또는 알림 흐름 하나를 고르세요. 의도적으로 전달 불가 목적지, 정책 거절 하나, TTL 만료 하나를 주입합니다. UI·웹훅·선불보내기가 같은 이야기를 하는지 확인하세요. 세 팀이 같은 단어를 쓰기 전에는 볼륨을 키우지 마세요.
위험 신호
- “failed”만 존재
- 스크린샷이 유일한 상태 시스템
- rejected에 대한 자동 재시도 폭풍
- 상태 흔적 없는 지갑 이동
- 클라이언트 대면 실패 사유에 외래 브랜드 문구
IOSOR로 시작하기
IOSOR 콘솔에서 상태 콜백을 매핑하여 청구 연동이 초기 거부와 하류 미전송 이벤트, 그리고 큐 만료를 깔끔하게 분리하도록 설정하세요. 활성 웹훅을 검사하여 최종 DLR 상태 코드가 일반적인 실패 상태 대신 명시적 오류 클래스를 내부 원장에 전달하도록 보장하십시오. 그런 다음 전송 게이트 매개변수를 조정하여 하드 거부에 대한 재시도를 즉시 억제하고 OTP 메시지의 TTL 제한을 조율하세요.
IOSOR 핵심 요약
이 가이드는 상태의 모호함이 단순한 네트워크 장애가 아니라 제품 디자인 및 회계 문제임을 보여주었습니다. 통신사 거부, 하류 미전송 상태, 그리고 TTL 만료를 구분하면 재무적 책임 소재가 명확해지고 지원 팀이 애플리케이션 코드에서 유령 버그를 추적하는 일을 멈추게 됩니다.
하류 DLR 웹훅 상태를 청구 원장에 직접 반영하여 투명한 인보이스 대조를 보장하세요. 모든 전송 누락을 서식, 네트워크 필터링, 또는 만료된 타이밍 창 중 무엇 때문에 메시지가 실패했는지 모호하게 만드는 이원적 전송-실패 상태로 묶지 마십시오.
이 가이드가 도움이 되었나요?
관련 가이드
- 단축 코드 및 수신자 부담 경로 간 전달성 지표 비교
화이트라벨 CPaaS 콘솔에서 단축 코드 및 수신자 부담 번호의 통신사 필터링 동작, DLR 지표, 처리량 프로필을 분석합니다.
- 신규 라우트 파일럿 중 기준 전달성 지표 수립
화이트라벨 트래픽을 신규 라우트로 확장하기 전에 철저한 전달 테스트 스위트를 실행하고, 이동통신사 성능을 분석하며, 기본 메시징 지표를 수립하세요.
- 네트워크 유지보수 후 전송률 감사 및 대기열 정리
통신사 네트워크 유지보수 종료 후 플랫폼 관리자가 라우팅 상태를 확인하고 지연된 DLR 대기열을 안전하게 플러시하기 위한 단계별 기술 플레이북입니다.