Langsung ke konten utama

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

1

Buka Bagian Webhook

Di dasbor Dodo Payments Anda, navigasikan ke Webhooks → + Tambah Endpoint dan perluas dropdown integrasi.
Tambah Endpoint dan dropdown integrasi
2

Pilih SendGrid

Pilih kartu integrasi SendGrid.
3

Masukkan Kunci API

Berikan Kunci API SendGrid Anda dalam konfigurasi.
4

Konfigurasi Transformasi

Edit kode transformasi untuk memformat email untuk API Kirim Email SendGrid.
5

Uji & Buat

Uji dengan payload contoh dan klik Buat untuk mengaktifkan pengiriman email.
6

Selesai!

🎉 Peristiwa pembayaran sekarang akan secara otomatis memicu email transaksional melalui SendGrid.

Contoh Kode Transformasi

Email Konfirmasi Pembayaran

payment_confirmation.js
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: "[email protected]",
        name: "Your Company"
      },
      template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    };
  }
  return webhook;
}

Email Selamat Datang Langganan

subscription_welcome.js
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: "[email protected]",
        name: "Your Company"
      },
      template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    };
  }
  return webhook;
}

Pemberitahuan Kegagalan Pembayaran

payment_failure.js
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: "[email protected]",
        name: "Your Company Support"
      },
      template_id: "d-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    };
  }
  return webhook;
}

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
  • Validasi struktur JSON sesuai dengan format API SendGrid
  • Periksa bahwa semua field yang diperlukan ada
  • Pastikan variabel data template diformat dengan benar
  • Verifikasi alamat email pengirim terverifikasi di SendGrid