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 membutuhkan SendGrid API Key dengan izin Mail Send.

Memulai

1

Open the Webhook Section

Di dashboard Dodo Payments Anda, arahkan ke Webhooks → + Add Endpoint dan perluas dropdown integrasi.
Add Endpoint and integrations dropdown
2

Select SendGrid

Pilih kartu integrasi SendGrid.
3

Enter API Key

Masukkan SendGrid API Key Anda di konfigurasi.
4

Configure Transformation

Sunting kode transformasi untuk memformat email sesuai Mail Send API SendGrid.
5

Test & Create

Uji dengan payload sampel dan klik Create untuk mengaktifkan pengiriman email.
6

Done!

🎉 Event pembayaran kini secara otomatis akan 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: "payments@yourdomain.com",
        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: "welcome@yourdomain.com",
        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: "support@yourdomain.com",
        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 bahwa API Key memiliki izin Mail Send
  • Periksa apakah ID template valid dan aktif
  • Pastikan alamat email penerima valid
  • Tinjau batasan dan kuota pengiriman SendGrid
  • Validasi struktur JSON sesuai format API SendGrid
  • Periksa bahwa semua bidang yang diperlukan ada
  • Pastikan variabel data template diformat dengan benar
  • Verifikasi alamat email pengirim sudah diverifikasi di SendGrid