View a markdown version of this page

RCS 訊息事件 - AWS 最終使用者傳訊簡訊

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

RCS 訊息事件

當您使用AWS最終使用者傳訊傳送 RCS 訊息時,RDS 平台會產生報告訊息生命週期變更、收件人互動和系統層級結果的事件。這些事件提供的訊號比傳統的簡訊傳遞回條更豐富,可讓您即時了解訊息是否已傳遞、讀取、過期或退回 SMS 或 MMS。

傳出狀態事件 (傳遞、讀取、過期和後援) 會透過組態集事件目的地傳遞。傳入互動事件 (輸入指標和建議點選) 會傳送到您在 RCS 代理程式上設定的雙向 Amazon SNS 主題。若要設定事件目的地,請參閱 AWS 最終使用者傳訊簡訊中的事件目的地

如需產生這些事件之訊息的詳細資訊,請參閱 傳送豐富的 RCS 訊息

RCS 事件的常見欄位

所有 RCS 事件,包括交付狀態事件、讀取回條和傳入互動事件,包括識別 RCS 代理程式的下列欄位:

rcsBusinessId

傳送或接收訊息之 RCS 代理程式的平台識別符。

agentIsoCountryCode

註冊 RCS 代理程式所在國家/地區的 ISO 國家/地區代碼,例如 USCA

這些欄位會出現在所有 RCS 事件上。它們不包含在 SMS 或 MMS 事件中。

交付狀態事件

交付狀態事件指出傳出 RCS 訊息的生命週期狀態。您可以使用這些事件來確認交付、觸發備用邏輯,或提醒操作團隊內容違規。

每個傳出狀態事件都有 eventTypeRCS_DELIVERED(和相關的 RCS 狀態事件類型),以及包含下列其中一個值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 訊息的狀態事件包括帳單中繼資料。rcsMetadata.billingEventTypeRICH適用於豐富的 RCS 訊息。

讀取回條

讀取回條表示收件人已開啟或檢視您的訊息。使用讀取回條來追蹤參與並測量讀取速率。

READ

收件人已檢視訊息。RCS_DELIVERED 事件一律會在事件之前傳送,或與RCS_READ事件一起傳送,因此如果您未處理個別的傳遞事件,請在收到讀取事件時將訊息視為已傳送。

讀取事件使用 eventTypeRCS_READ,並將 messageStatus設定為 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 主題的傳入通知。messageBody 包含具有 之 type的 JSON 物件RCS_TYPING。使用此項目可在儀表板中準備對話邏輯或顯示狀態。

  • 外撥 (客服人員對使用者):客服人員起始的輸入指標,顯示您的客服人員正在準備回應的收件人,是已規劃的功能。檢查AWS最終使用者傳訊版本備註,了解目前的可用性。

下列範例顯示傳入類型通知:

{ "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" }
注意

客服人員起始的輸入指標和客服人員起始的讀取回條是客服人員傳送給收件人的計劃功能。檢查AWS最終使用者傳訊版本備註,了解目前的可用性。

TTL 過期事件

當您在訊息上設定TimeToLive值,且 TTL 在訊息傳遞之前已經過時,RDS 平台會嘗試撤銷 (刪除) 訊息。結果會產生下列其中一個事件:

TTL_EXPIRATION_REVOKED

過期的訊息在收件人檢視之前已成功移除。您可以安全地觸發 SMS 或 MMS 備用,以確保收件人收到內容。

TTL_EXPIRATION_REVOKE_FAILED

撤銷失敗,訊息仍可能交付給收件人。在此情況下,請評估傳送後援訊息是否會導致重複,然後再繼續。

TTL 過期事件可與您的備用策略搭配使用。如需設定訊息過期的詳細資訊,請參閱 設定 RCS 訊息過期

備用事件

當無法傳遞 RCS 訊息且AWS最終使用者傳訊觸發 SMS 或 MMS 備用 (透過集區型組態或每則訊息FallbackConfiguration) 時,服務會產生指出備用結果的事件。

備用事件指出:

  • 是否成功傳送後援訊息。

  • 用於備用的頻道 (SMS 或 MMS)。

  • 未交付原始 RCS 訊息的原因 (例如,裝置不支援 RCS、TTL 過期或平台無法使用)。

監控這些事件以測量您的備用費率,並識別持續需要備用交付的電話號碼。如需設定每個訊息後援的詳細資訊,請參閱 設定每則訊息簡訊或 MMS 後援

建議點選 (後退) 事件

當收件人選擇建議 (建議的回覆或建議的動作) 時,您會收到後退事件,其中包含您在該建議上設定的PostbackData字串。使用後退資料來路由您的對話邏輯,而不是顯示文字。

重要

建議點選 (後退) 事件只會傳送到您的雙向 Amazon SNS 主題,而不是組態集事件目的地。

通知的 messageBody包含 JSON 物件,其 typeSUGGESTION、顯示 text,以及postbackData您在建議上設定的 :

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

如需如何設定建議及其後備資料的詳細資訊,請參閱 設定 RCS 建議

重要

將您的PostbackData值設計為結構化識別符 (例如 action:confirm_order:12345),以便以程式設計方式剖析它們。避免依賴顯示文字,這可能會在不影響路由邏輯的情況下變更。

對話式定價事件和欄位

如果您註冊 RCS 代理程式以使用對話式定價,AWS最終使用者傳訊會在訊息為作用中對話工作階段的一部分時,將欄位新增至交付和傳入事件,並在工作階段開始時傳送CONVERSATION_STARTED事件。如需對話式定價模型的概觀,請參閱 對話式定價

對話欄位

只有當訊息是作用中對話工作階段的一部分時,以下欄位才會出現在交付或傳入事件上。當訊息不屬於對話的一部分時,AWS最終使用者傳訊會完全省略這些欄位。

conversationInitiatingMessageId

開始對話工作階段的訊息 ID。在交付和傳入事件時顯示。

conversationInitiatingMessageType

對話的開始方式:OUTBOUND當客服人員傳送第一個訊息,或收件人傳送第一個訊息INBOUND時。在交付和傳入事件時顯示。

conversationSessionFee

一次性工作階段費用,以美元為單位,每 24 小時對話工作階段收取一次費用。僅在交付事件上顯示。

當訊息是作用中對話工作階段的一部分時,其傳遞事件會報告 totalCarrierFeetotalMessagePrice0.0,因為工作階段費用涵蓋訊息。下列範例顯示作用中對話中訊息的傳遞事件:

{ "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 事件

AWS最終使用者傳訊會在對話工作階段開始時,將CONVERSATION_STARTED事件傳送至您的 RCS 事件 Amazon SNS 主題。當客服人員傳送訊息,且收件人在 24 小時內回覆 (企業啟動),或收件人傳送訊息且客服人員回應 (使用者啟動) 時,工作階段就會開始。

messageBody 包含具有下列欄位的 JSON 物件:

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" }

將事件路由到目的地

AWS最終使用者傳訊會透過組態集事件目的地路由 RCS 事件。您可以在與傳送操作相關聯的組態設定上設定事件目的地。支援的目的地包括:

Amazon SNS

使用 Amazon SNS 主題進行即時事件處理,包括觸發 AWSLambda 函數來回應交付收據或建議點選。

Amazon Data Firehose

使用 Firehose 交付串流將事件傳送至 Amazon S3、Amazon Redshift 或其他分析目的地,以進行長期儲存和報告。

Amazon CloudWatch Logs

使用 CloudWatch Logs 對事件模式進行偵錯、日誌分析和設定 CloudWatch 警示 (例如,對高拒絕率發出警示)。

若要了解如何建立和設定事件目的地,請參閱 AWS 最終使用者傳訊簡訊中的事件目的地

當您呼叫 時SendRcsMessage,請指定 ConfigurationSetName 參數,將訊息與您的組態設定建立關聯。該訊息產生的傳出狀態事件會路由至您設定的目的地。

當您設定事件目的地相符的事件類型時,您可以選擇RCS_ALL使用單一相符類型訂閱所有 RCS 事件類型,而不是個別列出每個 RCS 事件類型 (例如 RCS_DELIVEREDRCS_READ)。

注意

傳入互動事件,包括輸入指標和建議點選 (後退),會傳送到 RCS 代理程式上設定的雙向 Amazon SNS 主題,而不是組態集事件目的地。

事件處理的最佳實務

  • 開始傳送生產訊息之前,請先設定事件目的地。這可確保您從頭開始擷取所有事件。

  • 使用DELIVERED事件取消備用計時器。如果您收到交付確認,請勿傳送簡訊或 MMS 退信。

  • 立即處理訂閱事件 (UNSUBSCRIBE),以保持符合簡訊法規。

  • 實作等冪事件處理。使用訊息識別符結合事件類型做為重複資料刪除金鑰,以處理重複的事件交付。

  • 透過比較事件時間戳記來處理out-of-order的事件。事件的抵達順序可能與其發生順序不同。

  • 使用 CloudWatch 警示監控拒絕和無法交付的速率,以及早偵測內容問題或鎖定問題。