Skip to main content

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.
Dialog Add endpoint dengan SendGrid dipilih di dropdown Integration dan langkah How to connect SendGrid
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 menetapkan webhook.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 from yang sesuai dengan sender terverifikasi, serta name sender.
  • 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 = true sebelum mengembalikan webhook. Log mencatat pengiriman yang dilewati sebagai berhasil.

Pemecahan Masalah

  • Pastikan API key memiliki izin Mail Send. Untuk menggantinya, edit endpoint lalu tempelkan key baru di API key.
  • Pastikan setiap template_id merujuk 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.
  • Pastikan payload sesuai dengan format Mail Send SendGrid.
  • Pastikan semua field wajib tersedia: personalizations dengan setidaknya satu alamat to, serta from.
  • Pastikan key dalam dynamic_template_data sesuai dengan variabel dalam template Anda, seperti {{customer_name}}.
  • Pastikan setiap alamat from telah diverifikasi di SendGrid.
Terakhir diubah pada 28 September 2026