Introducción
La integración con SendGrid envía un correo electrónico transaccional mediante la API Mail Send de SendGrid cuando se produce un evento de Dodo Payments. Cada correo utiliza una de tus plantillas dinámicas de SendGrid, completada con datos del evento, para que puedas confirmar pagos, dar la bienvenida a nuevos suscriptores y hacer seguimiento de pagos fallidos.Esta integración requiere una clave de API de SendGrid con el permiso Mail Send, un remitente verificado en SendGrid y una plantilla dinámica para cada correo que envíes. También necesitas acceso a Developer → Webhooks en el panel de Dodo Payments.
Comenzando
1
Open the Webhook Section
En el dashboard de Dodo Payments, ve a Developer → Webhooks y haz clic en Add endpoint.

2
Select SendGrid
En Integration, selecciona SendGrid. El panel completa Endpoint URL y el código de transformación para SendGrid, y el panel How to connect SendGrid muestra los pasos de configuración.
3
Enter API Key
En SendGrid, ve a Settings → API Keys y haz clic en Create API Key. Elige Restricted Access con el permiso Mail Send, o Full Access. SendGrid muestra la clave, que comienza con
SG., una sola vez. Pégala en API key. Dodo Payments la envía como un token bearer en el encabezado Authorization de cada solicitud a SendGrid.4
Select Events
En Subscribed events, selecciona solo los eventos que gestione tu transformación. Un evento que la transformación deja sin cambios llega a SendGrid en el formato de Dodo Payments, y SendGrid lo rechaza.
5
Configure Transformation
En Transformation code, edita el controlador para dar formato a los correos para la API Mail Send de SendGrid. Comienza con los ejemplos y reemplaza cada
template_id con el ID de tu propia plantilla dinámica, que comienza con d-.6
Test & Create
En Test this code, selecciona un tipo de evento y haz clic en Simulate para previsualizar la solicitud a SendGrid. Después, haz clic en Create endpoint.
7
Done
Dodo Payments ahora envía un correo mediante SendGrid por cada evento suscrito. Para ver cada entrega y la respuesta de SendGrid, abre la pestaña Logs en Developer → Webhooks.
Ejemplos de código de transformación
Cada controlador establecewebhook.url en el endpoint de Mail Send y pasa los datos del evento a una plantilla dinámica mediante dynamic_template_data. Los importes de Dodo Payments están expresados en la unidad monetaria más pequeña, por lo que los ejemplos los dividen entre 100. Para monedas sin decimales, como JPY y KRW, utiliza el importe tal cual.
Correo de confirmación de pago
Envía un recibo cuando un pago se complete correctamente (payment.succeeded):
payment_confirmation.js
Correo de bienvenida de suscripción
Da la bienvenida a un cliente cuando una suscripción pasa a estar activa (subscription.active):
subscription_welcome.js
Notificación de pago fallido
Pide al cliente que vuelva a intentarlo cuando falle un pago (payment.failed):
payment_failure.js
Consejos
- Utiliza plantillas dinámicas de SendGrid para personalizar el contenido.
- Pasa los datos de pago que necesita tu plantilla en
dynamic_template_data. - Establece una dirección
fromque coincida con un remitente verificado y un remitentename. - Reutiliza los ID de las plantillas para que los correos del mismo tipo mantengan el mismo formato.
- Incluye un enlace para cancelar la suscripción en cualquier correo que contenga contenido de marketing.
- Para omitir un evento en el código, establece
webhook.cancel = trueantes de devolver el webhook. Los registros indican que una entrega omitida se realizó correctamente.
Solución de problemas
Emails Not Being Sent
Emails Not Being Sent
- Comprueba que la clave de API tenga el permiso Mail Send. Para reemplazarla, edita el endpoint y pega una clave nueva en API key.
- Comprueba que cada
template_idpertenezca a una plantilla dinámica activa. - Comprueba que las direcciones de correo de los destinatarios sean válidas.
- Comprueba los límites y las cuotas de envío de SendGrid correspondientes a tu plan.
- Abre la pestaña Logs en Developer → Webhooks y lee la respuesta de SendGrid a la entrega fallida.
Transformation Errors
Transformation Errors
- Comprueba que el payload coincida con el formato Mail Send de SendGrid.
- Comprueba que estén presentes todos los campos obligatorios:
personalizationscon al menos una direccióntoyfrom. - Comprueba que las claves de
dynamic_template_datacoincidan con las variables de tu plantilla, como{{customer_name}}. - Comprueba que cada dirección
fromesté verificada en SendGrid.