View a markdown version of this page

Acara pesan RCS - AWS SMS Pesan Pengguna Akhir

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Acara pesan RCS

Saat Anda mengirim pesan RCS dengan AWS End User Messaging, platform RCS menghasilkan peristiwa yang melaporkan perubahan siklus hidup pesan, interaksi penerima, dan hasil tingkat sistem. Peristiwa ini memberikan sinyal yang lebih kaya daripada tanda terima pengiriman SMS tradisional, memberi Anda visibilitas waktu nyata apakah pesan dikirim, dibaca, kedaluwarsa, atau kembali ke SMS atau MMS.

Acara status keluar (pengiriman, baca, kedaluwarsa, dan fallback) dikirimkan melalui tujuan acara yang ditetapkan konfigurasi. Peristiwa interaksi masuk (indikator pengetikan dan ketukan saran) dikirimkan ke topik Amazon SNS dua arah yang Anda konfigurasikan di agen RCS Anda. Untuk mengatur tujuan acara, lihatTujuan acara di SMS Pesan Pengguna AWS Akhir.

Untuk detail tentang pesan yang menghasilkan peristiwa ini, lihatMengirim pesan RCS yang kaya.

Bidang umum pada acara RCS

Semua peristiwa RCS, termasuk peristiwa status pengiriman, tanda terima baca, dan peristiwa interaksi masuk, mencakup bidang berikut yang mengidentifikasi agen RCS:

rcsBusinessId

Pengenal platform untuk agen RCS yang mengirim atau menerima pesan.

agentIsoCountryCode

Kode negara ISO negara tempat agen RCS terdaftar, misalnya US atauCA.

Bidang ini hadir di semua acara RCS. Mereka tidak termasuk dalam acara SMS atau MMS.

Acara status pengiriman

Peristiwa status pengiriman menunjukkan status siklus hidup pesan RCS keluar. Anda menggunakan peristiwa ini untuk mengonfirmasi pengiriman, memicu logika fallback, atau memperingatkan tim operasi Anda tentang pelanggaran konten.

Setiap peristiwa status keluar memiliki eventType of RCS_DELIVERED (dan jenis peristiwa status RCS terkait) dan messageStatus bidang yang menyimpan salah satu nilai berikut:

DELIVERED

Pesan mencapai perangkat penerima. Gunakan acara ini untuk membatalkan timer fallback yang tertunda.

PENDING

Platform RCS menerima pesan tersebut tetapi belum mengirimkannya. Mulai pengatur waktu fallback Anda saat Anda menerima acara ini.

UNDELIVERABLE

Platform tidak dapat mengirimkan pesan secara permanen (misalnya, perangkat penerima tidak mendukung RCS). Picu fallback SMS atau MMS Anda dan tandai nomor telepon untuk keputusan perutean masa depan.

REJECTED

Pesan tersebut ditolak karena pelanggaran kebijakan konten. Beri tahu tim operasi Anda dan tinjau konten pesan.

Contoh berikut menunjukkan payload acara pengiriman:

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

Peristiwa status untuk pesan RCS kaya termasuk metadata penagihan. rcsMetadata.billingEventTypeNilainya adalah RICH untuk pesan RCS yang kaya.

Baca tanda terima

Tanda terima baca menunjukkan bahwa penerima membuka atau melihat pesan Anda. Gunakan tanda terima baca untuk melacak keterlibatan dan mengukur tingkat baca.

READ

Penerima melihat pesan. Suatu RCS_DELIVERED acara selalu dikirim sebelum atau bersamaan dengan RCS_READ acara tersebut, jadi jika Anda tidak memproses acara pengiriman terpisah, perlakukan pesan tersebut seperti yang terkirim saat Anda menerima acara baca.

Acara baca menggunakan a eventType of RCS_READ dengan messageStatus set keREAD:

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

Anda dapat menghitung tingkat baca Anda sebagai jumlah READ acara dibagi dengan jumlah DELIVERED acara, dikalikan dengan 100.

Indikator pengetikan

Acara indikator pengetikan menandakan bahwa peserta sedang menulis pesan. Peristiwa ini mengalir di kedua arah:

  • Masuk (pengguna ke agen): Saat penerima mulai menulis balasan, Anda menerima pemberitahuan masuk tentang topik Amazon SNS dua arah Anda. messageBodyBerisi objek JSON dengan type dari. RCS_TYPING Gunakan ini untuk mempersiapkan logika percakapan Anda atau menampilkan status di dasbor Anda.

  • Outbound (agen ke pengguna): indikator Agent-initiated pengetikan, yang menunjukkan penerima bahwa agen Anda sedang mempersiapkan respons, adalah kemampuan yang direncanakan. Periksa catatan rilis AWS End User Messaging untuk ketersediaan saat ini.

Contoh berikut menunjukkan pemberitahuan pengetikan masuk:

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

Agent-initiated indikator pengetikan dan tanda terima baca yang diprakarsai agen, yang dikirim agen Anda ke penerima, adalah kemampuan yang direncanakan. Periksa catatan rilis AWS End User Messaging untuk ketersediaan saat ini.

Acara kedaluwarsa TTL

Saat Anda menetapkan TimeToLive nilai pada pesan dan TTL berlalu sebelum pesan dikirimkan, platform RCS mencoba mencabut (menghapus) pesan tersebut. Hasilnya menghasilkan salah satu peristiwa berikut:

TTL_EXPIRATION_REVOKED

Pesan kedaluwarsa berhasil dihapus sebelum penerima melihatnya. Anda dapat dengan aman memicu fallback SMS atau MMS Anda untuk memastikan penerima menerima konten.

TTL_EXPIRATION_REVOKE_FAILED

Pencabutan gagal dan pesan mungkin masih dikirimkan ke penerima. Dalam hal ini, evaluasi apakah mengirim pesan fallback akan menghasilkan duplikat sebelum melanjutkan.

Acara kedaluwarsa TTL bekerja sama dengan strategi fallback Anda. Untuk detail tentang mengonfigurasi kedaluwarsa pesan, lihat. Mengkonfigurasi kedaluwarsa pesan RCS

Acara fallback

Ketika pesan RCS tidak dapat dikirimkan dan AWS End User Messaging memicu fallback SMS atau MMS (baik melalui konfigurasi berbasis kumpulan atau per-pesanFallbackConfiguration), layanan menghasilkan peristiwa yang menunjukkan hasil fallback.

Peristiwa fallback menunjukkan:

  • Apakah pesan fallback berhasil dikirim.

  • Saluran yang digunakan untuk fallback (SMS atau MMS).

  • Alasan pesan RCS asli tidak terkirim (misalnya, perangkat tidak, kedaluwarsa TTL RCS-capable, atau tidak tersedianya platform).

Pantau peristiwa ini untuk mengukur tingkat fallback Anda dan mengidentifikasi nomor telepon yang secara konsisten memerlukan pengiriman fallback. Untuk detail tentang mengonfigurasi fallback per pesan, lihat. Mengkonfigurasi fallback SMS atau MMS per pesan

Acara ketuk saran (postback)

Saat penerima memilih saran (balasan yang disarankan atau tindakan yang disarankan), Anda menerima peristiwa postback yang berisi PostbackData string yang Anda konfigurasikan pada saran tersebut. Gunakan data postback untuk merutekan logika percakapan Anda, bukan teks tampilan.

penting

Acara ketuk saran (postback) dikirimkan hanya ke topik Amazon SNS dua arah Anda, bukan ke konfigurasi yang ditetapkan tujuan acara.

Notifikasi messageBody berisi objek JSON dengan type dariSUGGESTION, tampilantext, dan yang postbackData Anda tetapkan pada saran:

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

Untuk detail tentang cara mengonfigurasi saran dan data postback mereka, lihatMengkonfigurasi saran RCS.

penting

Rancang PostbackData nilai Anda sebagai pengidentifikasi terstruktur (misalnya,action:confirm_order:12345) sehingga Anda dapat menguraikannya secara terprogram. Hindari mengandalkan teks tampilan, yang dapat berubah tanpa memengaruhi logika perutean Anda.

Acara dan bidang penetapan harga percakapan

Jika Anda mendaftarkan agen RCS untuk menggunakan harga percakapan, AWS End User Messaging menambahkan bidang ke pengiriman dan acara masuk saat pesan merupakan bagian dari sesi percakapan aktif, dan mengirimkan CONVERSATION_STARTED acara saat sesi dimulai. Untuk ikhtisar model penetapan harga percakapan, lihatHarga percakapan.

Bidang percakapan

Bidang berikut muncul pada acara pengiriman atau masuk hanya jika pesan merupakan bagian dari sesi percakapan aktif. Ketika pesan bukan bagian dari percakapan, AWS End User Messaging menghilangkan bidang ini sepenuhnya.

conversationInitiatingMessageId

ID pesan yang memulai sesi percakapan. Hadir pada acara pengiriman dan masuk.

conversationInitiatingMessageType

Bagaimana percakapan dimulai: OUTBOUND ketika agen Anda mengirim pesan pertama, atau INBOUND ketika penerima mengirim pesan pertama. Hadir pada acara pengiriman dan masuk.

conversationSessionFee

Biaya sesi satu kali, dalam dolar AS, dibebankan sekali per sesi percakapan 24 jam. Hadir pada acara pengiriman saja.

Ketika pesan merupakan bagian dari sesi percakapan aktif, acara pengirimannya melaporkan a totalMessagePrice dan totalCarrierFee dari0.0, karena biaya sesi mencakup pesan. Contoh berikut menunjukkan peristiwa pengiriman pesan dalam percakapan aktif:

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

Acara CONVERSATION_STARTED

AWSPesan Pengguna Akhir mengirimkan CONVERSATION_STARTED acara ke topik Amazon SNS acara RCS Anda saat sesi percakapan dimulai. Sesi dimulai ketika agen Anda mengirim pesan dan penerima membalas dalam waktu 24 jam (dimulai bisnis), atau ketika penerima mengirim pesan dan agen Anda merespons (dimulai pengguna).

messageBodyBerisi objek JSON dengan bidang-bidang berikut:

type

SelaluCONVERSATION_STARTED.

startTime

Waktu mulai sesi, dalam format ISO 8601.

endTime

Waktu kedaluwarsa sesi, dalam format ISO 8601. Ini selalu 24 jam setelahnyastartTime.

conversationInitiatingMessageId

ID pesan yang memulai percakapan.

conversationInitiatingMessageType

OUTBOUNDketika agen Anda mengirim pesan pertama, atau INBOUND ketika penerima mengirim pesan pertama.

Contoh berikut menunjukkan CONVERSATION_STARTED peristiwa:

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

Merutekan acara ke tujuan

AWSEnd User Messaging merutekan peristiwa RCS melalui konfigurasi menetapkan tujuan acara. Anda mengonfigurasi tujuan acara pada set konfigurasi yang terkait dengan operasi pengiriman Anda. Tujuan yang didukung meliputi:

Amazon SNS

Gunakan topik Amazon SNS untuk pemrosesan peristiwa waktu nyata, termasuk memicu fungsi AWS Lambda untuk merespons tanda terima pengiriman atau ketukan saran.

Amazon Data Firehose

Gunakan aliran pengiriman Firehose untuk mengirim peristiwa ke Amazon S3, Amazon Redshift, atau tujuan analitik lainnya untuk penyimpanan dan pelaporan jangka panjang.

CloudWatch Log Amazon

Gunakan CloudWatch Log untuk debugging, analisis log, dan pengaturan CloudWatch alarm pada pola peristiwa (misalnya, peringatan pada tingkat penolakan yang tinggi).

Untuk mempelajari cara membuat dan mengonfigurasi tujuan acara, lihatTujuan acara di SMS Pesan Pengguna AWS Akhir.

Saat Anda meneleponSendRcsMessage, tentukan ConfigurationSetName parameter untuk mengaitkan pesan dengan set konfigurasi Anda. Peristiwa status keluar yang dihasilkan oleh pesan tersebut dirutekan ke tujuan yang Anda konfigurasikan.

Saat mengonfigurasi jenis acara yang cocok dengan tujuan acara, Anda dapat memilih RCS_ALL untuk berlangganan semua jenis acara RCS dengan satu jenis pencocokan, alih-alih mencantumkan setiap jenis acara RCS satu per satu (seperti RCS_DELIVERED danRCS_READ).

catatan

Peristiwa interaksi masuk, termasuk indikator pengetikan dan ketukan saran (postback), dikirimkan ke topik Amazon SNS dua arah yang dikonfigurasi pada agen RCS Anda, bukan ke tujuan set acara konfigurasi.

Praktik terbaik untuk pemrosesan acara

  • Konfigurasikan tujuan acara sebelum Anda mulai mengirim pesan produksi. Ini memastikan Anda menangkap semua acara dari awal.

  • Gunakan DELIVERED acara untuk membatalkan pengatur waktu fallback. Jika Anda menerima konfirmasi pengiriman, jangan mengirim SMS atau MMS fallback.

  • Memproses acara berlangganan (UNSUBSCRIBE) segera untuk menjaga kepatuhan terhadap peraturan perpesanan.

  • Menerapkan pemrosesan acara idempoten. Gunakan pengenal pesan yang dikombinasikan dengan jenis acara sebagai kunci deduplikasi untuk menangani pengiriman peristiwa duplikat.

  • Menangani peristiwa out-of-order dengan membandingkan stempel waktu acara. Peristiwa mungkin tiba dalam urutan yang berbeda dari yang terjadi.

  • Pantau penolakan dan tingkat yang tidak terkirim dengan CloudWatch alarm untuk mendeteksi masalah konten atau masalah penargetan lebih awal.