Passer au contenu principal

Introduction

Envoyez automatiquement des e-mails transactionnels pour les confirmations de paiement, les mises à jour d’abonnement et les notifications importantes en utilisant SendGrid. Déclenchez des e-mails personnalisés basés sur des événements de paiement avec du contenu dynamique et des modèles professionnels.
Cette intégration nécessite une clé API SendGrid disposant des autorisations Mail Send.

Prise en main

1

Open the Webhook Section

Dans votre tableau de bord Dodo Payments, accédez à Webhooks → + Ajouter un Point de terminaison et développez le menu déroulant des intégrations.
Ajouter un point de terminaison et menu déroulant des intégrations
2

Select SendGrid

Choisissez la carte d’intégration SendGrid.
3

Enter API Key

Fournissez votre clé API SendGrid dans la configuration.
4

Configure Transformation

Modifiez le code de transformation pour formater les e-mails selon l’API Mail Send de SendGrid.
5

Test & Create

Testez avec des exemples de charges utiles et cliquez sur Créer pour activer l’envoi d’e-mails.
6

Done!

🎉 Les événements de paiement déclencheront désormais automatiquement des e-mails transactionnels via SendGrid.

Exemples de code de transformation

E-mail de confirmation de paiement

payment_confirmation.js
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;
}

E-mail de bienvenue d’abonnement

subscription_welcome.js
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;
}

Notification d’échec de paiement

payment_failure.js
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;
}

Conseils

  • Utilisez des modèles dynamiques SendGrid pour un contenu personnalisé
  • Incluez des données de paiement pertinentes dans les variables de modèle
  • Définissez des adresses d’expéditeur et des noms d’expéditeur appropriés
  • Utilisez des ID de modèle pour un formatage d’e-mail cohérent
  • Incluez des liens de désinscription pour la conformité

Dépannage

  • Vérifiez que la clé API dispose des autorisations Mail Send
  • Vérifiez que les ID de modèles sont valides et actifs
  • Assurez-vous que les adresses e-mail des destinataires sont valides
  • Consultez les limites et quotas d’envoi de SendGrid
  • Validez que la structure JSON correspond au format de l’API SendGrid
  • Vérifiez que tous les champs requis sont présents
  • Assurez-vous que les variables de données du modèle sont correctement formatées
  • Vérifiez que les adresses e-mail de l’expéditeur sont vérifiées dans SendGrid