Pendahuluan
Integrasi SendGrid mengirimkan email transaksional melalui Mail Send API milik SendGrid saat terjadi event Dodo Payments. Setiap email menggunakan salah satu dynamic template SendGrid Anda, yang diisi dengan data dari event tersebut, sehingga Anda dapat mengonfirmasi pembayaran, menyambut subscriber baru, dan menindaklanjuti pembayaran yang gagal.Integrasi ini memerlukan API key SendGrid dengan izin Mail Send, sender yang telah diverifikasi di SendGrid, dan dynamic template untuk setiap email yang Anda kirim. Anda juga memerlukan akses ke Developer → Webhooks di dashboard Dodo Payments.
Memulai
1
Open the Webhook Section
Di dasbor Dodo Payments, buka Developer → Webhooks dan klik Add endpoint.

2
Select SendGrid
Di Integration, pilih SendGrid. Dashboard mengisi Endpoint URL dan kode transformasi untuk SendGrid, lalu panel How to connect SendGrid menampilkan langkah-langkah penyiapannya.
3
Enter API Key
Di SendGrid, buka Settings → API Keys lalu klik Create API Key. Pilih Restricted Access dengan izin Mail Send, atau Full Access. SendGrid menampilkan key yang diawali dengan
SG. hanya sekali. Tempelkan key tersebut ke API key. Dodo Payments mengirimkannya sebagai bearer token dalam header Authorization pada setiap request ke SendGrid.4
Select Events
Di Subscribed events, pilih hanya event yang ditangani oleh transformasi Anda. Event yang tidak diubah oleh transformasi akan diteruskan ke SendGrid dalam format Dodo Payments, dan SendGrid akan menolaknya.
5
Configure Transformation
Di bagian Transformation code, edit handler untuk memformat email untuk Mail Send API milik SendGrid. Mulai dari contoh, lalu ganti setiap
template_id dengan ID dynamic template Anda sendiri, yang diawali dengan d-.6
Test & Create
Di bagian Test this code, pilih jenis event lalu klik Simulate untuk melihat pratinjau request ke SendGrid. Setelah itu, klik Create endpoint.
7
Done
Dodo Payments kini mengirimkan email melalui SendGrid untuk setiap event yang di-subscribe. Untuk melihat setiap pengiriman dan respons SendGrid, buka tab Logs di Developer → Webhooks.
Contoh Kode Transformasi
Setiap handler menetapkanwebhook.url ke endpoint Mail Send dan meneruskan data event ke dynamic template melalui dynamic_template_data. Jumlah Dodo Payments menggunakan unit mata uang terkecil, sehingga contoh-contoh ini membaginya dengan 100. Untuk mata uang tanpa angka desimal seperti JPY dan KRW, gunakan jumlah tersebut apa adanya.
Email Konfirmasi Pembayaran
Kirim tanda terima saat pembayaran berhasil (payment.succeeded):
payment_confirmation.js
Email Sambutan Subscription
Sambut customer saat subscription menjadi aktif (subscription.active):
subscription_welcome.js
Notifikasi Kegagalan Pembayaran
Minta customer untuk mencoba lagi saat pembayaran gagal (payment.failed):
payment_failure.js
Tips
- Gunakan dynamic template SendGrid untuk mempersonalisasi konten.
- Teruskan data pembayaran yang diperlukan template Anda di
dynamic_template_data. - Tetapkan alamat
fromyang sesuai dengan sender terverifikasi, sertanamesender. - Gunakan kembali ID template agar email dengan jenis yang sama tetap memiliki format yang sama.
- Sertakan link berhenti berlangganan dalam email apa pun yang berisi konten marketing.
- Untuk melewati suatu event dalam kode, tetapkan
webhook.cancel = truesebelum mengembalikan webhook. Log mencatat pengiriman yang dilewati sebagai berhasil.
Pemecahan Masalah
Emails Not Being Sent
Emails Not Being Sent
- Pastikan API key memiliki izin Mail Send. Untuk menggantinya, edit endpoint lalu tempelkan key baru di API key.
- Pastikan setiap
template_idmerujuk ke dynamic template yang aktif. - Pastikan alamat email penerima valid.
- Periksa batas pengiriman dan kuota SendGrid untuk paket Anda.
- Buka tab Logs di Developer → Webhooks dan baca respons SendGrid untuk pengiriman yang gagal.
Transformation Errors
Transformation Errors
- Pastikan payload sesuai dengan format Mail Send SendGrid.
- Pastikan semua field wajib tersedia:
personalizationsdengan setidaknya satu alamatto, sertafrom. - Pastikan key dalam
dynamic_template_datasesuai dengan variabel dalam template Anda, seperti{{customer_name}}. - Pastikan setiap alamat
fromtelah diverifikasi di SendGrid.