Introduzione
Invia automaticamente email transazionali per conferme di pagamento, aggiornamenti di abbonamento e notifiche importanti utilizzando SendGrid. Attiva email personalizzate basate su eventi di pagamento con contenuti dinamici e modelli professionali.
Questa integrazione richiede una chiave API di SendGrid con autorizzazioni Mail Send.
Iniziare
Open the Webhook Section
Nel pannello di Dodo Payments, vai su Webhooks → + Aggiungi endpoint e apri il menu a discesa delle integrazioni.
Select SendGrid
Scegli la scheda di integrazione SendGrid .
Enter API Key
Inserisci la tua chiave API di SendGrid nella configurazione.
Configure Transformation
Modifica il codice di trasformazione per formattare le email per l’API Mail Send di SendGrid.
Test & Create
Testa con payload di esempio e fai clic su Crea per attivare l’invio delle email.
Done!
🎉 Gli eventi di pagamento attiveranno ora automaticamente email transazionali tramite SendGrid.
Email di Conferma di Pagamento
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
Email di Benvenuto per Abbonamento
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
Notifica di Fallimento del Pagamento
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
Suggerimenti
Utilizza modelli dinamici di SendGrid per contenuti personalizzati
Includi dati di pagamento pertinenti nelle variabili del modello
Imposta indirizzi email e nomi del mittente appropriati
Utilizza ID modello per una formattazione email coerente
Includi link di disiscrizione per conformità
Risoluzione dei Problemi
Verifica che la chiave API abbia autorizzazioni Mail Send
Controlla che gli ID dei modelli siano validi e attivi
Assicurati che gli indirizzi email dei destinatari siano validi
Rivedi i limiti di invio e le quote di SendGrid