Hoppa till huvudinnehåll

Introduktion

Automatiskt skicka transaktionsmail för betalningsbekräftelser, abonnemangsuppdateringar och viktiga meddelanden med hjälp av SendGrid. Utlös personliga mail baserat på betalningshändelser med dynamiskt innehåll och professionella mallar.
Denna integration kräver en SendGrid API-nyckel med Mail Send-behörigheter.

Komma igång

1

Öppna Webhook-sektionen

I din Dodo Payments-instrumentpanel, navigera till Webhooks → + Lägg till slutpunkt och expandera integrationsrullgardinsmenyn.
Lägg till slutpunkt och integrationsrullgardinsmeny
2

Välj SendGrid

Välj SendGrid integrationskortet.
3

Ange API-nyckel

Ange din SendGrid API-nyckel i konfigurationen.
4

Konfigurera transformation

Redigera transformationskoden för att formatera mail för SendGrids Mail Send API.
5

Testa & Skapa

Testa med exempelpayloads och klicka på Skapa för att aktivera mailutskick.
6

Klart!

🎉 Betalningshändelser kommer nu automatiskt att utlösa transaktionsmail via SendGrid.

Exempel på transformationskod

Betalningsbekräftelsemail

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;
}

Välkomstmail för abonnemang

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;
}

Meddelande om betalningsfel

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

  • Använd SendGrid dynamiska mallar för personligt innehåll
  • Inkludera relevant betalningsdata i mallvariabler
  • Ställ in korrekta avsändaradresser och avsändarnamn
  • Använd mall-ID:n för konsekvent mailformatering
  • Inkludera avregistreringslänkar för efterlevnad

Felsökning

  • Verifiera att API-nyckeln har Mail Send-behörigheter
  • Kontrollera att mall-ID:n är giltiga och aktiva
  • Se till att mottagarens e-postadresser är giltiga
  • Granska SendGrid:s sändningsgränser och kvoter
  • Validera att JSON-strukturen matchar SendGrid API-formatet
  • Kontrollera att alla obligatoriska fält är närvarande
  • Se till att mallens datavariabler är korrekt formaterade
  • Verifiera att avsändarens e-postadresser är verifierade i SendGrid