Fallback 메시지(대체발송)

Fallback은 1차 채널 발송 실패 시 대체 채널로 자동 전환하는 기능입니다.

핵심은 요청 본문의 messageFlow 필드입니다. messageFlow는 Array 형태로 메시지 객체를 순서대로 담고, 앞 순서 메시지가 실패하면 다음 순서 메시지로 자동 대체 발송(Fallback)됩니다.

채널이 달라도 같은 /api/omni 경로를 사용하는 이유는, 채널별 차이를 URL이 아니라 messageFlow 내부 규격으로 구분하도록 설계했기 때문입니다.
즉, 비즈고의 통합 메시지 모델(omni)에서 메시지 조합과 우선순위를 요청 본문으로 제어합니다.

Fallback 동작 예시

예시 1
자동 대체 순서
알림톡
SMS

요청 예시

{
  "destinations": [{ "to": "01000000000" }],
  "messageFlow": [
    { "alimtalk": { "msgType": "AT", "text": "주문 안내 메시지입니다." } },
    { "sms": { "from": "01000000000", "text": "알림톡 대체 문자입니다." } }
  ]
}
예시 2
자동 대체 순서
알림톡
RCS
LMS

요청 예시

{
  "destinations": [{ "to": "01000000000" }],
  "messageFlow": [
    { "alimtalk": { "msgType": "AT", "text": "안내 메시지입니다." } },
    { "rcs": { "serviceType": "RCS", "msgType": "RS", "content": { "description": "RCS 대체 메시지입니다." } } },
    { "mms": { "from": "01000000000", "subject": "대체 안내", "text": "RCS 실패 시 LMS 대체 발송입니다." } }
  ]
}

동작 흐름

TEXT
[요청 시작: /api/omni]
        |
        v
[messageFlow[0] 1순위 발송]
   | 성공 -----------------> [발송 완료]
   | 실패
   v
[messageFlow[1] 2순위 발송]
   | 성공 -----------------> [발송 완료]
   | 실패
   v
[messageFlow[2] 3순위 발송]
   | 성공 -----------------> [발송 완료]
   | 실패
   v
[최종 실패 처리]

예시 전략

  1. 알림톡 실패 시 SMS로 전환
  2. 알림톡 실패 후 RCS 재시도, 실패 시 LMS로 전환

설계 권장사항

  • 전환 조건(실패 코드/시간 초과)을 명확히 정의합니다.
  • 채널별 템플릿 길이와 치환 변수를 사전에 맞춰둡니다.
  • 중복 발송 방지를 위해 동일 메시지 키의 멱등 처리를 적용합니다.
  • messageFlow 설계 기준은 문자메시지 규격과 함께 확인하는 것을 권장합니다.