# RevenueCat + Brew

Picu otomatisasi Brew dari peristiwa pembelian dalam aplikasi, langganan, dan penagihan RevenueCat di Apple, Google, Amazon, Stripe, dan Web Billing. Memerlukan paket RevenueCat Pro atau yang lebih tinggi.

URL kanonis: https://brew.new/id/browse/integrations/revenuecat

- Arah: Data masuk
- Koneksi: Kunci rahasia webhook
- Peristiwa IAP + langganan

## Kemampuan yang aktif

- **Pemicu peristiwa**: Picu otomatisasi Brew dari peristiwa pembelian dalam aplikasi, langganan, dan penagihan RevenueCat di Apple, Google, Amazon, Stripe, dan Web Billing.

## Ubah peristiwa langganan menjadi email yang bermanfaat

Hubungkan RevenueCat untuk memulai email bermerek saat seseorang membeli, memperpanjang, membatalkan langganan, atau mengalami masalah penagihan di aplikasi Anda. Brew mendukung 11 peristiwa siklus hidup RevenueCat, dan satu alur yang sama dapat melayani pelanggan dari App Store, Google Play, Amazon, Stripe, dan Web Billing.

RevenueCat dan toko aplikasi tetap bertanggung jawab atas pembelian, perpanjangan, pengembalian dana, dan entitlement. Brew membuat dan mengirim emailnya.


## Yang bisa Anda buat

- Email sambutan pelanggan: INITIAL_PURCHASE dipicu saat langganan baru dimulai, termasuk saat uji coba dimulai. Pembelian satu kali masuk sebagai NON_RENEWING_PURCHASE.
- Bukti pembayaran perpanjangan: RENEWAL dipicu saat langganan diperpanjang atau saat pelanggan yang langganannya sempat berakhir berlangganan lagi, dengan productId, priceUsd, pricePurchaseCurrency, dan currency.
- Pemberitahuan masalah penagihan: BILLING_ISSUE dipicu saat pembayaran gagal. Tautkan ke tempat pelanggan dapat memperbarui metode pembayarannya.
- Tindak lanjut pembatalan: CANCELLATION membawa cancelReason, sehingga email dapat membedakan pengembalian dana atau kesalahan penagihan dari pembatalan yang dilakukan pelanggan sendiri.
- Email selamat datang kembali: UNCANCELLATION dipicu saat pelanggan mengaktifkan kembali langganan yang sudah dibatalkan sebelum masa berlakunya habis.
- Reaktivasi setelah akses berakhir: EXPIRATION dipicu saat langganan benar-benar berakhir dan membawa expirationReason.
- Pemberitahuan perubahan paket: PRODUCT_CHANGE membawa previousProductId dan newProductId. Produk baru mungkin berlaku kemudian, jadi tulis emailnya sebagai perubahan yang diminta.
- Pemberitahuan jeda dan penambahan masa langganan: SUBSCRIPTION_PAUSED dipicu saat langganan Google Play dijadwalkan untuk dijeda di akhir periodenya. SUBSCRIPTION_EXTENDED dipicu saat toko aplikasi menambah masa langganan atau Google Play menunda penagihan.

## Pembatalan bukan berarti akses berakhir

CANCELLATION bisa berarti langganan dibatalkan atau dana dikembalikan, dan peristiwa ini saja tidak berarti akses sudah berakhir. EXPIRATION adalah peristiwa yang menandakan akses telah berakhir. SUBSCRIPTION_PAUSED hanya menjadwalkan jeda di kemudian hari.

Gunakan CANCELLATION untuk email yang mengajak pelanggan kembali atau survei alasan berhenti, dan EXPIRATION untuk email apa pun yang mengasumsikan akses sudah hilang. UNCANCELLATION tidak menghentikan eksekusi pembatalan yang sudah dimulai, jadi periksa revenuecat_subscription_status dengan kondisi sebelum setiap email berikutnya.

Filter berdasarkan field environment agar peristiwa SANDBOX tidak masuk ke otomatisasi yang aktif.


## Siapkan RevenueCat di Brew

- Webhook RevenueCat memerlukan paket RevenueCat Pro atau yang lebih tinggi.
- Buka Integrasi, pilih RevenueCat, lalu pilih Buat URL webhook.
- Di RevenueCat, buka Integrations > Webhooks, lalu tambahkan konfigurasi. Tempelkan URL Brew, pilih Production, Sandbox, atau keduanya, lalu pilih peristiwa siklus hidup yang akan dikirim.
- Aktifkan penandatanganan webhook HMAC di konfigurasi tersebut dan segera salin kunci rahasianya. RevenueCat hanya menampilkannya sekali. Tempelkan ke Brew, lalu pilih Hubungkan. Jangan menempelkan kunci REST API RevenueCat atau nilai header Authorization yang opsional.
- Kirim webhook uji dari RevenueCat. Pengiriman TEST yang ditandatangani akan mengaktifkan koneksi, tetapi tidak pernah memulai otomatisasi pelanggan.
- Isi atribut pelanggan $email untuk setiap pelanggan agar Brew memiliki alamat tujuan pengiriman.
- Saat Anda memilih Hubungkan, Brew membuat 11 pemicu, satu untuk setiap peristiwa. Tidak ada tombol untuk mengaktifkan atau menonaktifkan peristiwa. Buat otomatisasi, pilih peristiwa RevenueCat yang memicunya, lalu jalankan uji selagi otomatisasi masih berstatus Draf. Hanya otomatisasi berstatus Aktif yang dijalankan saat peristiwa yang cocok masuk.

## Peristiwa RevenueCat yang didukung

Brew mendukung 11 jenis peristiwa berikut:

- INITIAL_PURCHASE
- RENEWAL
- NON_RENEWING_PURCHASE
- PRODUCT_CHANGE
- CANCELLATION
- UNCANCELLATION
- EXPIRATION
- BILLING_ISSUE
- SUBSCRIPTION_PAUSED
- SUBSCRIPTION_EXTENDED
- TRANSFER

## Sinkronisasi kontak dan personalisasi

Brew membaca penerima dari atribut pelanggan $email terlebih dahulu, lalu menerima app user ID, original app user ID, atau alias yang berformat email sebagai cadangan. Alias RevenueCat adalah riwayat app user ID, jadi isi $email secara eksplisit alih-alih mengandalkan alias. Jika tidak satu pun dari field tersebut berisi alamat email sungguhan, Brew mencatat peristiwa itu sebagai peristiwa tanpa penerima, tidak membuat kontak, dan tidak memulai otomatisasi.

Setiap peristiwa terverifikasi yang memiliki alamat email sungguhan akan membuat atau memperbarui kontak Brew, yang dicocokkan berdasarkan email, baik peristiwa itu dipakai otomatisasi maupun tidak. Jika datanya tersedia, Brew mengisi revenuecat_app_user_id, revenuecat_store, dan revenuecat_environment.

Peristiwa siklus hidup mengisi revenuecat_subscription_status dengan active, cancelled, expired, billing_issue, atau pause_scheduled. Brew juga menyimpan revenuecat_product_id, revenuecat_cancel_reason, revenuecat_expiration_reason, revenuecat_last_purchase_at, dan revenuecat_pending_product_id jika peristiwa menyertakannya.

Gunakan skema payload yang dideklarasikan untuk peristiwa terpilih sebagai acuan merge tag. Setiap peristiwa menyertakan email, productId, priceUsd, pricePurchaseCurrency, currency, store, environment, dan createdAt jika tersedia. Field priceUsd berisi harga dalam USD, sedangkan pricePurchaseCurrency berisi harga dalam mata uang yang disebutkan di field currency. Payload RevenueCat tidak memberikan nama depan atau nama belakang kepada Brew.

Nilai store diteruskan apa adanya dari RevenueCat, seperti APP_STORE atau PLAY_STORE, dan RevenueCat dapat menambahkan nilai baru. Buat kondisi berdasarkan nilai yang Anda perlukan.

Pembelian tidak membuktikan adanya persetujuan untuk email pemasaran. Catat persetujuan secara terpisah dan periksa sebelum pengiriman promosi.


## Mengapa TRANSFER tidak pernah mengirim email?

RevenueCat mengirim TRANSFER dengan app user ID, tetapi tanpa email penerima. Brew mencatatnya sebagai peristiwa tanpa penerima dan tidak memulai otomatisasi.


## Mengapa peristiwa muncul tetapi email tidak terkirim?

Menerima peristiwa dan mengirim email adalah dua langkah terpisah. Pastikan otomatisasi yang cocok berstatus Aktif, lalu periksa filter dan riwayat eksekusinya, kelayakan penerima, serta domain pengirim. Pengiriman TEST tidak pernah memulai otomatisasi. Jika penerima tidak dapat ditentukan, periksa $email terlebih dahulu; Brew juga menerima app user ID, original app user ID, dan alias yang berformat email.


## Batasan dan pemecahan masalah

- Brew tidak dapat memberikan atau mencabut entitlement, menerbitkan pengembalian dana, atau mengubah langganan.
- Respons 401 karena header tanda tangan tidak ada biasanya berarti penandatanganan HMAC nonaktif, atau yang ditempelkan adalah nilai Authorization, bukan kunci rahasia. Aktifkan penandatanganan HMAC, salin kunci rahasia yang baru, lalu hubungkan ulang.
- Respons 401 karena HMAC tidak cocok berarti kunci rahasia yang tersimpan di Brew berbeda atau sudah usang. Merotasi kunci rahasia di RevenueCat membuat kunci yang lama tidak berlaku, jadi salin nilai barunya, lalu hubungkan ulang Brew.
- Jika tidak ada webhook yang masuk sama sekali, pastikan paket RevenueCat Anda mencakup webhook.
- Tinjau persetujuan dan tujuan setiap email. Menyinkronkan pelanggan tidak memberi izin untuk pengiriman promosi.

## Sumber dan panduan penyiapan

- [Panduan penyiapan RevenueCat](https://docs.brew.new/integrations/import/revenuecat)
- [Membuat otomatisasi](https://docs.brew.new/create-emails/build-an-automation)
- [Merge tag](https://docs.brew.new/create-emails/merge-tags)
- [Yang bisa Anda kirim dengan Brew](https://docs.brew.new/get-started/what-you-can-send)
- [Webhook RevenueCat](https://www.revenuecat.com/docs/integrations/webhooks)
- [Atribut pelanggan RevenueCat](https://www.revenuecat.com/docs/customers/customer-attributes)

## Terkait

- [Semua integrasi](https://brew.new/id/browse/integrations.md)
- [Daftar](https://brew.new/id/sign-up.md)
- Situs web: https://brew.new
