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 permessi Mail Send.
Iniziare
Apri la Sezione Webhook
Nel tuo dashboard di Dodo Payments, vai a Webhooks → + Aggiungi Endpoint ed espandi il menu a discesa delle integrazioni.
Seleziona SendGrid
Scegli la scheda di integrazione SendGrid .
Inserisci la Chiave API
Fornisci la tua chiave API di SendGrid nella configurazione.
Configura la Trasformazione
Modifica il codice di trasformazione per formattare le email per l’API Mail Send di SendGrid.
Testa & Crea
Testa con payload di esempio e clicca su Crea per attivare l’invio delle email.
Fatto!
🎉 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 permessi Mail Send
Controlla che gli ID modello siano validi e attivi
Assicurati che gli indirizzi email dei destinatari siano validi
Rivedi i limiti e le quote di invio di SendGrid