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
Öppna Webhook-sektionen
I din Dodo Payments-instrumentpanel, navigera till Webhooks → + Lägg till slutpunkt och expandera integrationsrullgardinsmenyn.
Välj SendGrid
Välj SendGrid integrationskortet.
Ange API-nyckel
Ange din SendGrid API-nyckel i konfigurationen.
Konfigurera transformation
Redigera transformationskoden för att formatera mail för SendGrids Mail Send API.
Testa & Skapa
Testa med exempelpayloads och klicka på Skapa för att aktivera mailutskick.
Klart!
🎉 Betalningshändelser kommer nu automatiskt att utlösa transaktionsmail via SendGrid.
Betalningsbekräftelsemail
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 ;
}
See all 26 lines
Välkomstmail för abonnemang
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 ;
}
See all 27 lines
Meddelande om betalningsfel
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 ;
}
See all 26 lines
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