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
Open the Webhook Section
I din Dodo Payments-instrumentpanel, gå till Webhooks → + Lägg till slutpunkt och öppna rullgardinsmenyn för integrationer.
Select SendGrid
Välj integrationskortet SendGrid .
Enter API Key
Ange din SendGrid API-nyckel i konfigurationen.
Configure Transformation
Redigera transformationskoden för att formatera e-post för SendGrids Mail Send API.
Test & Create
Testa med exempelutskick och klicka på Skapa för att aktivera e-postutskicken.
Done!
🎉 Betalningshändelser utlöser nu automatiskt transaktionella e-postmeddelanden 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 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