Introduzione
L’integrazione SendGrid invia un’email transazionale tramite la Mail Send API di SendGrid quando si verifica un evento di Dodo Payments. Ogni email utilizza uno dei tuoi template dinamici di SendGrid, compilato con i dati dell’evento, così puoi confermare i pagamenti, dare il benvenuto ai nuovi abbonati e ricontattare i clienti in caso di pagamenti non riusciti.Questa integrazione richiede una chiave API di SendGrid con il permesso Mail Send, un mittente verificato in SendGrid e un template dinamico per ogni email che invii. Devi inoltre avere accesso a Developer → Webhooks nella dashboard di Dodo Payments.
Iniziare
1
Open the Webhook Section
Nella dashboard di Dodo Payments, vai a Sviluppatore → Webhook e fai clic su Aggiungi endpoint.

2
Select SendGrid
In Integration, seleziona SendGrid. La dashboard compila Endpoint URL e il codice di trasformazione per SendGrid, mentre il pannello How to connect SendGrid mostra i passaggi di configurazione.
3
Enter API Key
In SendGrid, vai a Settings → API Keys e fai clic su Create API Key. Scegli Restricted Access con il permesso Mail Send, oppure Full Access. SendGrid mostra la chiave, che inizia con
SG., una sola volta. Incollala in API key. Dodo Payments la invia come bearer token nell’header Authorization di ogni richiesta a SendGrid.4
Select Events
In Subscribed events, seleziona solo gli eventi gestiti dalla tua trasformazione. Un evento che la trasformazione lascia invariato raggiunge SendGrid nel formato di Dodo Payments e SendGrid lo rifiuta.
5
Configure Transformation
In Transformation code, modifica l’handler per formattare le email per la Mail Send API di SendGrid. Parti dagli esempi e sostituisci ogni
template_id con l’ID del tuo template dinamico, che inizia con d-.6
Test & Create
In Test this code, seleziona un tipo di evento e fai clic su Simulate per visualizzare in anteprima la richiesta a SendGrid. Quindi fai clic su Create endpoint.
7
Done
Dodo Payments ora invia un’email tramite SendGrid per ogni evento sottoscritto. Per visualizzare ogni invio e la risposta di SendGrid, apri la scheda Logs in Developer → Webhooks.
Esempi di codice di trasformazione
Ogni handler impostawebhook.url sull’endpoint Mail Send e passa i dati dell’evento a un template dinamico tramite dynamic_template_data. Gli importi di Dodo Payments sono espressi nell’unità minima della valuta, quindi gli esempi li dividono per 100. Per le valute senza decimali, come JPY e KRW, utilizza l’importo così com’è.
Email di conferma del pagamento
Invia una ricevuta quando un pagamento va a buon fine (payment.succeeded):
payment_confirmation.js
Email di benvenuto per l’abbonamento
Dai il benvenuto a un cliente quando un abbonamento diventa attivo (subscription.active):
subscription_welcome.js
Notifica di pagamento non riuscito
Chiedi al cliente di riprovare quando un pagamento non va a buon fine (payment.failed):
payment_failure.js
Suggerimenti
- Utilizza i template dinamici di SendGrid per personalizzare i contenuti.
- Passa i dati del pagamento richiesti dal template in
dynamic_template_data. - Imposta un indirizzo
fromche corrisponda a un mittente verificato e unnamedel mittente. - Riutilizza gli ID dei template, così le email dello stesso tipo mantengono lo stesso formato.
- Includi un link per annullare l’iscrizione in ogni email che contiene contenuti di marketing.
- Per ignorare un evento nel codice, imposta
webhook.cancel = trueprima di restituire il webhook. I log registrano un invio ignorato come riuscito.
Risoluzione dei problemi
Emails Not Being Sent
Emails Not Being Sent
- Verifica che la chiave API disponga del permesso Mail Send. Per sostituirla, modifica l’endpoint e incolla una nuova chiave in API key.
- Verifica che ogni
template_idappartenga a un template dinamico attivo. - Verifica che gli indirizzi email dei destinatari siano validi.
- Verifica i limiti e le quote di invio SendGrid previsti dal tuo piano.
- Apri la scheda Logs in Developer → Webhooks e leggi la risposta di SendGrid relativa all’invio non riuscito.
Transformation Errors
Transformation Errors
- Verifica che il payload corrisponda al formato Mail Send di SendGrid.
- Verifica che siano presenti tutti i campi obbligatori:
personalizationscon almeno un indirizzotoefrom. - Verifica che le chiavi in
dynamic_template_datacorrispondano alle variabili del template, come{{customer_name}}. - Verifica che ogni indirizzo
fromsia verificato in SendGrid.