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 behörighet att skicka e-post.

Komma igång

1

Open the Webhook Section

I din Dodo Payments-instrumentpanel, gå till Webhooks → + Lägg till slutpunkt och öppna rullgardinsmenyn för integrationer.
Add Endpoint and integrations dropdown
2

Select SendGrid

Välj integrationskortet SendGrid.
3

Enter API Key

Ange din SendGrid API-nyckel i konfigurationen.
4

Configure Transformation

Redigera transformationskoden för att formatera e-post för SendGrids Mail Send API.
5

Test & Create

Testa med exempelutskick och klicka på Skapa för att aktivera e-postutskicken.
6

Done!

🎉 Betalningshändelser utlöser nu automatiskt transaktionella e-postmeddelanden 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: "payments@yourdomain.com",
        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: "welcome@yourdomain.com",
        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: "support@yourdomain.com",
        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 behörighet att skicka e-post
  • Kontrollera att mall-ID:n är giltiga och aktiva
  • Säkerställ att mottagaradresserna är giltiga
  • Granska SendGrids begränsningar och kvoter för utskick
  • Verifiera att JSON-strukturen matchar SendGrids API-format
  • Kontrollera att alla obligatoriska fält finns
  • Säkerställ att mallens datavariabler är korrekt formaterade
  • Verifiera att avsändaradresserna är godkända i SendGrid