View a markdown version of this page

RCS 메시지 이벤트 - AWS 최종 사용자 메시징 SMS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

RCS 메시지 이벤트

AWSEnd User Messaging으로 RCS 메시지를 보내면 RCS 플랫폼은 메시지 수명 주기 변경, 수신자 상호 작용 및 시스템 수준 결과를 보고하는 이벤트를 생성합니다. 이러한 이벤트는 기존 SMS 전송 수신보다 풍부한 신호를 제공하므로 메시지가 SMS 또는 MMS로 전송, 읽기, 만료 또는 폴백되었는지 여부를 실시간으로 파악할 수 있습니다.

아웃바운드 상태 이벤트(전송, 읽기, 만료 및 대체)는 구성 세트 이벤트 대상을 통해 전달됩니다. 인바운드 상호 작용 이벤트(입력 표시기 및 제안 탭)는 RCS 에이전트에서 구성한 양방향 Amazon SNS 주제로 전달됩니다. 이벤트 대상을 설정하려면 섹션을 참조하세요AWS End User Messaging SMS의 이벤트 대상.

이러한 이벤트를 생성하는 메시지에 대한 자세한 내용은 섹션을 참조하세요리치 RCS 메시지 전송.

RCS 이벤트에 대한 공통 필드

전송 상태 이벤트, 읽기 수신 및 인바운드 상호 작용 이벤트를 포함한 모든 RCS 이벤트에는 RCS 에이전트를 식별하는 다음 필드가 포함됩니다.

rcsBusinessId

메시지를 보내거나 받은 RCS 에이전트의 플랫폼 식별자입니다.

agentIsoCountryCode

US 또는와 같이 RCS 에이전트가 등록된 국가의 ISO 국가 코드입니다CA.

이러한 필드는 모든 RCS 이벤트에 있습니다. SMS 또는 MMS 이벤트에는 포함되지 않습니다.

전송 상태 이벤트

전송 상태 이벤트는 아웃바운드 RCS 메시지의 수명 주기 상태를 나타냅니다. 이러한 이벤트를 사용하여 전송을 확인하거나, 대체 로직을 트리거하거나, 운영 팀에 콘텐츠 위반을 알립니다.

각 아웃바운드 상태 이벤트에는 RCS_DELIVERED (및 관련 RCS 상태 이벤트 유형)eventType의와 다음 값 중 하나를 포함하는 messageStatus 필드가 있습니다.

DELIVERED

메시지가 수신자의 디바이스에 도달했습니다. 이 이벤트를 사용하여 보류 중인 폴백 타이머를 취소합니다.

PENDING

RCS 플랫폼이 메시지를 수락했지만 아직 전달하지 않았습니다. 이 이벤트를 수신하면 폴백 타이머를 시작합니다.

UNDELIVERABLE

플랫폼은 메시지를 영구적으로 전송할 수 없습니다(예: 수신자의 디바이스가 RCS를 지원하지 않음). SMS 또는 MMS 폴백을 트리거하고 향후 라우팅 결정을 위해 전화번호에 플래그를 지정합니다.

REJECTED

콘텐츠 정책 위반으로 인해 메시지가 거부되었습니다. 운영 팀에 알리고 메시지 콘텐츠를 검토합니다.

다음 예제에서는 전송 이벤트 페이로드를 보여줍니다.

{ "eventType": "RCS_DELIVERED", "eventVersion": "1.0", "eventTimestamp": 1781661267660, "isFinal": true, "originationPhoneNumber": "rcs-c020de2520714385964ebf7b095c4b60", "destinationPhoneNumber": "+13022640220", "isoCountryCode": "US", "isInternationalSend": false, "messageId": "test-sc1-004", "messageRequestTimestamp": 1781300397157, "messageEncoding": "UNICODE", "messageType": "TRANSACTIONAL", "messageStatus": "DELIVERED", "messageStatusDescription": "Message has been accepted by phone", "totalMessageParts": 1, "totalMessagePrice": 0.007, "totalCarrierFee": 0.00494, "rcsMetadata": { "billingEventType": "RICH" }, "rcsBusinessId": "endusermessagingtesting1_06fr8x6o_agent", "agentIsoCountryCode": "US" }
참고

리치 RCS 메시지의 상태 이벤트에는 결제 메타데이터가 포함됩니다. 값은 리치 RCS 메시지에 RICH 대한 rcsMetadata.billingEventType 값입니다.

읽기 영수증

읽기 수신은 수신자가 메시지를 열거나 확인했음을 나타냅니다. 읽기 영수증을 사용하여 참여를 추적하고 읽기 속도를 측정합니다.

READ

수신자가 메시지를 확인했습니다. RCS_DELIVERED 이벤트는 항상 RCS_READ 이벤트 이전 또는 이벤트와 함께 전송되므로 별도의 전송 이벤트를 처리하지 않은 경우 읽기 이벤트를 수신할 때 메시지를 전송된 것으로 취급합니다.

읽기 이벤트는가 RCS_READmessageStatus 설정된 eventType의를 사용합니다READ.

{ "eventType": "RCS_READ", "eventVersion": "1.0", "eventTimestamp": 1781661267203, "isFinal": true, "originationPhoneNumber": "rcs-c020de2520714385964ebf7b095c4b60", "destinationPhoneNumber": "+13022640220", "isoCountryCode": "US", "isInternationalSend": false, "messageId": "test-sc1-004", "messageRequestTimestamp": 1781300397157, "messageEncoding": "UNICODE", "messageType": "TRANSACTIONAL", "messageStatus": "READ", "messageStatusDescription": "Message has been read by recipient", "totalMessageParts": 1, "totalMessagePrice": 0.0, "totalCarrierFee": 0.0, "rcsBusinessId": "endusermessagingtesting1_06fr8x6o_agent", "agentIsoCountryCode": "US" }

읽기 속도는 READ 이벤트 수를 DELIVERED 이벤트 수로 나눈 다음 100을 곱하여 계산할 수 있습니다.

입력 표시기

표시기 이벤트를 입력하면 참가자가 메시지를 작성하고 있음을 나타냅니다. 이러한 이벤트는 양방향으로 흐릅니다.

  • 인바운드(사용자에서 에이전트로): 수신자가 회신을 작성하기 시작하면 양방향 Amazon SNS 주제에 대한 인바운드 알림을 받게 됩니다. 에는가 인 JSON 객체가 messageBody 포함되어 type 있습니다RCS_TYPING. 이를 사용하여 대화형 로직을 준비하거나 대시보드에 상태를 표시할 수 있습니다.

  • 아웃바운드(에이전트에서 사용자로): 에이전트가 응답을 준비 중임을 수신자에게 보여주는 에이전트가 시작한 입력 표시기는 계획된 기능입니다. AWSEnd User Messaging 릴리스 정보에서 현재 가용성을 확인하세요.

다음 예제에서는 인바운드 입력 알림을 보여줍니다.

{ "originationNumber": "12679164820", "destinationNumber": "rcs-cb1e6e519e9049fabf8c0ae38e4d876b", "messageBody": "{\"type\":\"RCS_TYPING\",\"receivedAt\":\"2026-06-17T17:36:29.937+0000\"}", "inboundMessageId": "12679164820-2026-06-17T17:36:29.937+0000" }
참고

에이전트가 수신자에게 보내는 에이전트가 시작한 입력 표시기 및 에이전트가 시작한 읽기 수신은 계획된 기능입니다. AWSEnd User Messaging 릴리스 정보에서 현재 가용성을 확인하세요.

TTL 만료 이벤트

메시지에 TimeToLive 값을 설정하고 메시지가 전달되기 전에 TTL이 경과하면 RCS 플랫폼은 메시지를 취소(삭제)하려고 시도합니다. 결과는 다음 이벤트 중 하나를 생성합니다.

TTL_EXPIRATION_REVOKED

수신자가 보기 전에 만료된 메시지가 성공적으로 제거되었습니다. SMS 또는 MMS 폴백을 안전하게 트리거하여 수신자가 콘텐츠를 수신하도록 할 수 있습니다.

TTL_EXPIRATION_REVOKE_FAILED

취소에 실패했으며 메시지가 여전히 수신자에게 전달될 수 있습니다. 이 경우 계속하기 전에 대체 메시지 전송으로 인해 중복이 발생하는지 평가합니다.

TTL 만료 이벤트는 대체 전략과 함께 작동합니다. 메시지 만료 구성에 대한 자세한 내용은 섹션을 참조하세요RCS 메시지 만료 구성.

폴백 이벤트

RCS 메시지를 전송할 수 없고 AWSEnd User Messaging이 SMS 또는 MMS 폴백을 트리거하면(풀 기반 구성 또는 메시지별를 통해FallbackConfiguration) 서비스가 폴백 결과를 나타내는 이벤트를 생성합니다.

폴백 이벤트는 다음을 나타냅니다.

  • 대체 메시지가 성공적으로 전송되었는지 여부입니다.

  • 대체에 사용되는 채널(SMS 또는 MMS).

  • 원래 RCS 메시지가 전송되지 않은 이유(예: RCS를 사용할 수 없는 디바이스, TTL 만료 또는 플랫폼 사용 불가).

이러한 이벤트를 모니터링하여 폴백 속도를 측정하고 폴백 전송이 지속적으로 필요한 전화번호를 식별합니다. 메시지당 폴백 구성에 대한 자세한 내용은 섹션을 참조하세요메시지당 SMS 또는 MMS 폴백 구성.

제안 탭(포스트백) 이벤트

수신자가 제안(제안된 응답 또는 제안된 작업)을 선택하면 해당 제안에 대해 구성한 PostbackData 문자열이 포함된 포스트백 이벤트가 수신됩니다. 포스트백 데이터를 사용하여 표시 텍스트가 아닌 대화 로직을 라우팅합니다.

중요

제안 탭(포스트백) 이벤트는 구성 세트 이벤트 대상이 아닌 양방향 Amazon SNS 주제로만 전송됩니다.

알림의 에는 , type SUGGESTION디스플레이 text및 제안에 설정한이 있는 JSON 객체가 messageBody 포함되어 postbackData 있습니다.

{ "originationNumber": "12679164820", "destinationNumber": "rcs-cb1e6e519e9049fabf8c0ae38e4d876b", "messageBody": "{\"type\":\"SUGGESTION\",\"text\":\"Open\",\"postbackData\":\"Open\"}", "inboundMessageId": "nIMYZGrBUILWng0Qck0deqVaAoTSJY5PsktKYOBYJhVaTsrdMdrs714e8SLZAjD3" }

제안 및 포스트백 데이터를 구성하는 방법에 대한 자세한 내용은 섹션을 참조하세요RCS 제안 구성.

중요

프로그래밍 방식으로 구문 분석할 수 있도록 PostbackData 값을 구조화된 식별자(예: action:confirm_order:12345)로 설계합니다. 라우팅 로직에 영향을 주지 않고 변경될 수 있는 표시 텍스트에 의존하지 마세요.

대화 요금 이벤트 및 필드

대화 요금을 사용하도록 RCS 에이전트를 등록하는 경우 AWSEnd User Messaging은 메시지가 활성 대화 세션의 일부인 동안 전송 및 인바운드 이벤트에 필드를 추가하고 세션이 시작될 때 CONVERSATION_STARTED 이벤트를 전송합니다. 대화형 요금 모델에 대한 개요는 섹션을 참조하세요대화 요금.

대화 필드

다음 필드는 메시지가 활성 대화 세션의 일부인 경우에만 전송 또는 인바운드 이벤트에 표시됩니다. 메시지가 대화의 일부가 아닌 경우 AWSEnd User Messaging은 이러한 필드를 완전히 생략합니다.

conversationInitiatingMessageId

대화 세션을 시작한 메시지 ID입니다. 전송 및 인바운드 이벤트에 표시됩니다.

conversationInitiatingMessageType

대화가 시작된 방식: 에이전트가 첫 번째 메시지를 보낸 OUTBOUND 시점 또는 수신자가 첫 번째 메시지를 보낸 INBOUND 시점. 전송 및 인바운드 이벤트에 표시됩니다.

conversationSessionFee

일회성 세션 요금은 24시간 대화 세션당 한 번씩 미국 달러로 청구됩니다. 전송 이벤트에만 표시됩니다.

메시지가 활성 대화 세션의 일부인 경우 세션 요금에 메시지가 포함0.0되므로 전송 이벤트는 totalMessagePricetotalCarrierFee를 보고합니다. 다음 예제에서는 활성 대화 내의 메시지에 대한 전송 이벤트를 보여줍니다.

{ "eventType": "RCS_DELIVERED", "eventVersion": "1.0", "eventTimestamp": 1751234567890, "isFinal": true, "originationPhoneNumber": "rcs-f4e4252a5abe48bea50a6c176a056124", "destinationPhoneNumber": "+14376638816", "isoCountryCode": "CA", "isInternationalSend": false, "messageId": "b4a3196d-5b61-4884-a0d9-745acf1f6235", "messageRequestTimestamp": 1751234565000, "messageEncoding": "UNICODE", "messageType": "TRANSACTIONAL", "messageStatus": "DELIVERED", "messageStatusDescription": "Message has been accepted by phone", "totalMessageParts": 1, "totalMessagePrice": 0.0, "totalCarrierFee": 0.0, "rcsMetadata": { "billingEventType": "BASIC" }, "rcsBusinessId": "endusermessagingtesting1_06fr8x6o_agent", "agentIsoCountryCode": "CA", "conversationInitiatingMessageId": "177930985040408106521449", "conversationInitiatingMessageType": "OUTBOUND", "conversationSessionFee": 0.012 }

CONVERSATION_STARTED 이벤트

AWSEnd User Messaging은 대화 세션이 시작될 때 RCS 이벤트 Amazon SNS 주제로 CONVERSATION_STARTED 이벤트를 전송합니다. 세션은 에이전트가 메시지를 보내고 수신자가 24시간 이내에 응답하거나(비즈니스 시작) 수신자가 메시지를 보내고 에이전트가 응답할 때(사용자 시작) 시작됩니다.

에는 다음 필드가 있는 JSON 객체가 messageBody 포함되어 있습니다.

type

항상 CONVERSATION_STARTED입니다.

startTime

ISO 8601 형식의 세션 시작 시간입니다.

endTime

ISO 8601 형식의 세션 만료 시간입니다. 이 시간은 항상 이후 24시간입니다startTime.

conversationInitiatingMessageId

대화를 시작한 메시지 ID입니다.

conversationInitiatingMessageType

OUTBOUND 에이전트가 첫 번째 메시지를 보냈을 때 또는 수신자가 첫 번째 메시지를 보냈을 INBOUND 때.

다음 예제에서는 CONVERSATION_STARTED 이벤트를 보여줍니다.

{ "originationNumber": "14376638816", "destinationNumber": "rcs-e138fa39eabf4d6d8e95546248c8dfa7", "messageBody": "{\"type\":\"CONVERSATION_STARTED\",\"startTime\":\"2026-06-28T04:03:08.002+0000\",\"endTime\":\"2026-06-29T04:08:08.002+0000\",\"conversationInitiatingMessageId\":\"7e7da6ec-234a-4d4f-bbc5-943bcca663ab\",\"conversationInitiatingMessageType\":\"OUTBOUND\"}", "inboundMessageId": "7e7da6ec-234a-4d4f-bbc5-943bcca663ab" }

대상으로 이벤트 라우팅

AWSEnd User Messaging은 구성 세트 이벤트 대상을 통해 RCS 이벤트를 라우팅합니다. 전송 작업과 연결된 구성 세트에서 이벤트 대상을 구성합니다. 지원되는 대상은 다음과 같습니다.

Amazon SNS

전송 수신 또는 제안 탭에 응답하도록 AWSLambda 함수를 트리거하는 등 실시간 이벤트 처리에 Amazon SNS 주제를 사용합니다.

Amazon Data Firehose

Firehose 전송 스트림을 사용하여 장기 저장 및 보고를 위해 Amazon S3, Amazon Redshift 또는 기타 분석 대상으로 이벤트를 전송합니다.

Amazon CloudWatch Logs

CloudWatch Logs를 사용하여 이벤트 패턴에 대한 CloudWatch 경보를 디버깅, 로그 분석 및 설정합니다(예: 높은 거부율에 대한 알림).

이벤트 대상을 생성하고 구성하는 방법을 알아보려면 섹션을 참조하세요AWS End User Messaging SMS의 이벤트 대상.

를 호출할 때 메시지를 구성 세트와 연결할 ConfigurationSetName 파라미터를 SendRcsMessage지정합니다. 해당 메시지에 의해 생성된 아웃바운드 상태 이벤트는 구성한 대상으로 라우팅됩니다.

이벤트 대상이 일치하는 이벤트 유형을 구성할 때 각 RCS 이벤트 유형을 개별적으로 나열하는 대신(예: RCS_DELIVERED 및 ) 일치하는 단일 유형의 모든 RCS 이벤트 유형을 구독RCS_ALL하도록 선택할 수 있습니다RCS_READ.

참고

입력 표시기 및 제안 탭(포스트백)을 포함한 인바운드 상호 작용 이벤트는 구성 세트 이벤트 대상이 아니라 RCS 에이전트에 구성된 양방향 Amazon SNS 주제로 전달됩니다.

이벤트 처리 모범 사례

  • 프로덕션 메시지 전송을 시작하기 전에 이벤트 대상을 구성합니다. 이렇게 하면 처음부터 모든 이벤트를 캡처할 수 있습니다.

  • DELIVERED 이벤트를 사용하여 폴백 타이머를 취소합니다. 배달 확인을 받은 경우 SMS 또는 MMS 폴백을 보내지 마십시오.

  • 구독 이벤트(UNSUBSCRIBE)를 즉시 처리하여 메시징 규정 준수를 유지합니다.

  • 멱등성 이벤트 처리를 구현합니다. 중복 이벤트 전송을 처리하기 위해 이벤트 유형과 결합된 메시지 식별자를 중복 제거 키로 사용합니다.

  • 이벤트 타임스탬프를 비교하여 out-of-order 이벤트를 처리합니다. 이벤트는 발생한 순서와 다른 순서로 도착할 수 있습니다.

  • CloudWatch 경보를 사용하여 거부 및 전송 불가 비율을 모니터링하여 콘텐츠 문제를 조기에 감지하거나 문제를 대상으로 지정합니다.