Pendahuluan
Kirim email transaksional secara otomatis untuk konfirmasi pembayaran, pembaruan langganan, dan pemberitahuan penting menggunakan SendGrid. Trigger email yang dipersonalisasi berdasarkan peristiwa pembayaran dengan konten dinamis dan template profesional.
Integrasi ini memerlukan Kunci API SendGrid dengan izin Kirim Email.
Memulai
Buka Bagian Webhook
Di dasbor Dodo Payments Anda, navigasikan ke Webhooks → + Tambah Endpoint dan perluas dropdown integrasi.
Pilih SendGrid
Pilih kartu integrasi SendGrid .
Masukkan Kunci API
Berikan Kunci API SendGrid Anda dalam konfigurasi.
Konfigurasi Transformasi
Edit kode transformasi untuk memformat email untuk API Kirim Email SendGrid.
Uji & Buat
Uji dengan payload contoh dan klik Buat untuk mengaktifkan pengiriman email.
Selesai!
🎉 Peristiwa pembayaran sekarang akan secara otomatis memicu email transaksional melalui SendGrid.
Email Konfirmasi Pembayaran
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . url = "https://api.sendgrid.com/v3/mail/send" ;
webhook . payload = {
personalizations: [
{
to: [{ email: p . customer . email }],
dynamic_template_data: {
customer_name: p . customer . name ,
payment_amount: ( p . total_amount / 100 ). toFixed ( 2 ),
payment_id: p . payment_id ,
payment_date: new Date ( webhook . payload . timestamp ). toLocaleDateString (),
currency: p . currency || "USD"
}
}
],
from: {
email: "payments@yourdomain.com" ,
name: "Your Company"
},
template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
}
return webhook ;
}
See all 26 lines
Email Selamat Datang Langganan
function handler ( webhook ) {
if ( webhook . eventType === "subscription.active" ) {
const s = webhook . payload . data ;
webhook . url = "https://api.sendgrid.com/v3/mail/send" ;
webhook . payload = {
personalizations: [
{
to: [{ email: s . customer . email }],
dynamic_template_data: {
customer_name: s . customer . name ,
subscription_id: s . subscription_id ,
product_name: s . product_id ,
amount: ( s . recurring_pre_tax_amount / 100 ). toFixed ( 2 ),
frequency: s . payment_frequency_interval ,
next_billing: new Date ( s . next_billing_date ). toLocaleDateString ()
}
}
],
from: {
email: "welcome@yourdomain.com" ,
name: "Your Company"
},
template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
}
return webhook ;
}
See all 27 lines
Pemberitahuan Kegagalan Pembayaran
function handler ( webhook ) {
if ( webhook . eventType === "payment.failed" ) {
const p = webhook . payload . data ;
webhook . url = "https://api.sendgrid.com/v3/mail/send" ;
webhook . payload = {
personalizations: [
{
to: [{ email: p . customer . email }],
dynamic_template_data: {
customer_name: p . customer . name ,
payment_amount: ( p . total_amount / 100 ). toFixed ( 2 ),
error_message: p . error_message || "Payment processing failed" ,
payment_id: p . payment_id ,
retry_link: `https://yourdomain.com/retry-payment/ ${ p . payment_id } `
}
}
],
from: {
email: "support@yourdomain.com" ,
name: "Your Company Support"
},
template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
}
return webhook ;
}
See all 26 lines
Tips
Gunakan template dinamis SendGrid untuk konten yang dipersonalisasi
Sertakan data pembayaran yang relevan dalam variabel template
Atur alamat pengirim dan nama pengirim yang tepat
Gunakan ID template untuk format email yang konsisten
Sertakan tautan berhenti berlangganan untuk kepatuhan
Pemecahan Masalah
Verifikasi Kunci API memiliki izin Kirim Email
Periksa bahwa ID template valid dan aktif
Pastikan alamat email penerima valid
Tinjau batas dan kuota pengiriman SendGrid