# Cara mengotomatiskan email siklus hidup dari peristiwa Stripe

URL kanonis: https://brew.new/id/blog/how-to-automate-lifecycle-emails-from-stripe-subscription-events
Penulis: Philip Sørensen
Dipublikasikan: 2026-09-18
Diperbarui: 2026-09-29

Stripe menghasilkan peristiwa setiap kali langganan, invoice, dan pembayaran berubah. Peristiwa ini bisa memulai email yang bermanfaat, tetapi setiap pesan tetap memerlukan penerima, tujuan, dan aturan yang jelas untuk menentukan apakah pesan itu masih tepat waktu.

[Integrasi Stripe](/id/browse/integrations/stripe) di Brew menangani koneksi OAuth dan penyiapan webhook. Panduan ini membahas cara merancang program email yang dibangun di atasnya. Untuk alur yang dimulai dari peristiwa produk, bukan penagihan, lihat [otomatisasi email AI](/id/blog/ai-email-automation).

## Petakan satu peristiwa ke satu pesan

| Tujuan | Peristiwa kandidat | Tinjau sebelum mengirim |
| --- | --- | --- |
| Menyambut pelanggan baru | `customer.subscription.created` | Hindari email sambutan ganda dari checkout |
| Menjelaskan masa uji coba yang akan berakhir | `customer.subscription.trial_will_end` | Tenggat yang sebenarnya dan apakah akan ada tagihan |
| Memberi tahu pembayaran invoice yang gagal | `invoice.payment_failed` | Invoice terkini, tautan penagihan, pemberitahuan Stripe yang sudah ada |
| Menjelaskan perubahan paket | `customer.subscription.updated` | Field mana yang berubah dan apakah perubahannya penting |
| Mengonfirmasi pembatalan | `customer.subscription.deleted` | Kapan akses berakhir dan apa yang diminta pelanggan |
| Menjelaskan pengembalian dana | `refund.created` | Field khusus pengembalian dana yang tersedia di peristiwa |

Gunakan [referensi peristiwa Stripe](https://docs.stripe.com/api/events/types) dan skema pemicu Brew yang Anda pilih. Pembaruan langganan bisa mewakili beberapa jenis perubahan; jangan kirim email perubahan paket untuk setiap pembaruan tanpa memeriksa datanya.

## Hubungkan dan publikasikan dengan cermat

Berikan otorisasi untuk Stripe di halaman Integrasi Brew. Brew mendaftarkan webhook dan menyiapkan pemicu yang didukung. Tidak ada tombol untuk mengaktifkan atau menonaktifkan peristiwa. Hanya otomatisasi berstatus Aktif yang terhubung ke peristiwa tersebut yang akan berjalan.

Gunakan opsi Sinkronkan pelanggan dari Stripe jika Anda perlu mengimpor kontak lama. Mengimpor kontak penagihan tidak membuktikan adanya persetujuan untuk email pemasaran. Pengaturan Sinkronkan nama lengkap per peristiwa mengatur pembaruan nama, bukan menentukan apakah email dipicu.

Buat otomatisasi pertama sebagai draf, periksa email yang dihasilkan, lalu uji dengan penerima yang terkendali sebelum memublikasikannya. Ikuti [panduan penyiapan Stripe](https://docs.brew.new/integrations/import/stripe) untuk detail koneksi; Brew menghubungkan akun Stripe live, dan peristiwa mode uji tidak memulai otomatisasi.

## Tangani pembayaran gagal tanpa mengirim pengingat yang sudah basi

Pemberitahuan kegagalan yang langsung dikirim bisa dimulai dari `invoice.payment_failed`. Jelaskan apa yang terjadi dan tautkan ke halaman penagihan Anda sendiri. Jangan menjanjikan bahwa Brew akan mencoba ulang tagihan; operasi pembayaran adalah wewenang Stripe.

Untuk pengingat tiga hari kemudian, minta aplikasi Anda menjadwalkan pemeriksaan status invoice. Jika invoice masih belum dibayar dan pelanggan masih memenuhi syarat, kirim peristiwa pengingat Brew yang terpisah. Jika pembayaran sudah pulih, selesaikan tanpa mengirim peristiwa itu.

Setelah langkah Tunggu, field peristiwa masih berisi payload peristiwa aslinya. Kondisi pada `contact.stripe_subscription_status` membaca nilai field tersebut saat ini pada kontak Brew ketika langkah itu dijalankan. Kondisi ini tidak menanyakan ke Stripe dan tidak membuktikan bahwa invoice ini sudah dibayar. Peristiwa `invoice.paid` yang datang belakangan tidak otomatis membatalkan eksekusi yang lebih lama. Memperbarui metode pembayaran juga bukan bukti pembayaran.

Uji skenario pembayaran yang pulih sebelum pemeriksaan pengingat, invoice yang tetap belum dibayar, dan tugas yang dicoba ulang. Gunakan kembali kunci idempotensi yang sama untuk peristiwa logis yang sama dalam [jendela percobaan ulang yang terdokumentasi](https://docs.brew.new/api-reference/api/idempotency).

## Personalisasi dari field yang dideklarasikan

Brew bisa menyinkronkan field penagihan ke kontak, termasuk status dan paket langganan. Payload peristiwa dan field kontak adalah dua sumber yang berbeda. Baca skema pemicu sebelum memakai `amount`, `currency`, `invoiceNumber`, `previousPlan`, `newPlan`, atau `failureMessage`; tidak setiap peristiwa menyediakan semua field tersebut.

ID objek Stripe dihapus dari payload otomatisasi. Jangan menyusun URL portal pelanggan dari ID invoice atau langganan yang diasumsikan. Gunakan halaman penagihan di aplikasi Anda yang memerlukan autentikasi, atau tautan yang sengaja disertakan dalam peristiwa kustom. Ikuti [panduan merge tag](https://docs.brew.new/create-emails/merge-tags).

## Beri setiap sistem satu tanggung jawab

Tinjau [pengaturan email pelanggan Stripe](https://docs.stripe.com/billing/revenue-recovery/customer-emails). Tentukan sistem mana yang mengirim bukti pembayaran, pemberitahuan pembayaran gagal, dan pengingat. Mengaktifkan otomatisasi Brew tidak menonaktifkan email dari Stripe.

Jangan masukkan konten promosi ke dalam pemberitahuan akun, kecuali Anda sudah meninjau tujuan dan izin pesan tersebut. Pengingat pemasaran memerlukan persetujuan yang sesuai dan penanganan berhenti berlangganan.

## Periksa seluruh jalurnya

Pastikan peristiwa muncul di Brew, otomatisasi yang terhubung berstatus Aktif, dan riwayat eksekusinya menunjukkan penerima serta hasil yang diharapkan. Lalu, periksa email yang diterima dan tautan penagihannya. Jika peristiwa masuk tetapi tidak ada pesan yang terkirim, periksa filter, pengecualian, dan kesiapan domain pengirim sebelum menyimpulkan bahwa webhook gagal.

Mulailah dengan satu peristiwa dan satu email yang sudah diuji. Tambahkan pengingat berikutnya hanya jika pemeriksaan status terkini dan perilaku percobaan ulang sudah tercakup dalam pengujian aplikasi Anda.
