Pendahuluan
Kirim email transaksional dan kelola komunikasi pelanggan secara otomatis saat peristiwa pembayaran terjadi. Kirim konfirmasi pembayaran, pembaruan langganan, dan pemberitahuan penting dengan infrastruktur email Loops.
Integrasi ini memerlukan Kunci API Loops Anda untuk otentikasi.
Memulai
Open the Webhook Section
Di dasbor Dodo Payments Anda, buka Webhooks → + Add Endpoint dan perluas dropdown integrasi.
Select Loops
Pilih kartu integrasi Loops .
Enter API Key
Masukkan Kunci API Loops Anda dalam konfigurasi.
Configure Transformation
Sunting kode transformasi untuk memformat email bagi API Loops.
Test & Create
Uji dengan payload contoh dan klik Create untuk mengaktifkan pengiriman email.
Done!
🎉 Event pembayaran kini akan secara otomatis memicu email transaksional melalui Loops.
Email Konfirmasi Pembayaran
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . url = "https://api.loops.so/v1/events/send" ;
webhook . payload = {
eventName: "payment_confirmation" ,
email: p . customer . email ,
properties: {
customer_name: p . customer . name ,
payment_id: p . payment_id ,
amount: ( p . total_amount / 100 ). toFixed ( 2 ),
currency: p . currency || "USD" ,
payment_method: p . payment_method || "unknown" ,
payment_date: new Date ( webhook . payload . timestamp ). toLocaleDateString ()
}
};
}
return webhook ;
}
See all 19 lines
Email Selamat Datang Langganan
function handler ( webhook ) {
if ( webhook . eventType === "subscription.active" ) {
const s = webhook . payload . data ;
webhook . url = "https://api.loops.so/v1/events/send" ;
webhook . payload = {
eventName: "subscription_welcome" ,
email: s . customer . email ,
properties: {
customer_name: s . customer . name ,
subscription_id: s . subscription_id ,
product_id: s . product_id ,
amount: ( s . recurring_pre_tax_amount / 100 ). toFixed ( 2 ),
frequency: s . payment_frequency_interval ,
next_billing: s . next_billing_date
}
};
}
return webhook ;
}
See all 19 lines
Pemberitahuan Kegagalan Pembayaran
function handler ( webhook ) {
if ( webhook . eventType === "payment.failed" ) {
const p = webhook . payload . data ;
webhook . url = "https://api.loops.so/v1/events/send" ;
webhook . payload = {
eventName: "payment_failed" ,
email: p . customer . email ,
properties: {
customer_name: p . customer . name ,
payment_id: p . payment_id ,
amount: ( p . total_amount / 100 ). toFixed ( 2 ),
error_message: p . error_message || "Payment processing failed" ,
retry_link: `https://yourdomain.com/retry-payment/ ${ p . payment_id } `
}
};
}
return webhook ;
}
See all 18 lines
Tips
Gunakan nama peristiwa yang deskriptif untuk organisasi template email yang lebih baik
Sertakan properti pelanggan yang relevan untuk personalisasi
Siapkan template email di dasbor Loops untuk setiap peristiwa
Gunakan penamaan properti yang konsisten di seluruh peristiwa
Uji pengiriman email sebelum diluncurkan
Pemecahan Masalah
Verifikasi bahwa Kunci API benar dan aktif
Periksa bahwa nama event sesuai template Loops Anda
Pastikan alamat email penerima valid
Tinjau batasan dan kuota pengiriman Loops