Introdução
Envie automaticamente e-mails transacionais para confirmações de pagamento, atualizações de assinatura e notificações importantes usando o SendGrid. Acione e-mails personalizados com base em eventos de pagamento com conteúdo dinâmico e modelos profissionais.
Esta integração requer uma Chave de API do SendGrid com permissões de Mail Send.
Começando
Abra a Seção de Webhook
No seu painel do Dodo Payments, navegue até Webhooks → + Adicionar Endpoint e expanda o dropdown de integrações.
Selecione SendGrid
Escolha o cartão de integração SendGrid .
Insira a Chave da API
Forneça sua Chave de API do SendGrid na configuração.
Configure a Transformação
Edite o código de transformação para formatar e-mails para a API Mail Send do SendGrid.
Teste & Crie
Teste com cargas úteis de exemplo e clique em Criar para ativar o envio de e-mails.
Pronto!
🎉 Eventos de pagamento agora acionarão automaticamente e-mails transacionais via SendGrid.
E-mail de Confirmação de 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
E-mail de Boas-Vindas de Assinatura
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ção de Falha de 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
Dicas
Use modelos dinâmicos do SendGrid para conteúdo personalizado
Inclua dados de pagamento relevantes nas variáveis do modelo
Defina endereços de remetente e nomes de remetente adequados
Use IDs de modelo para formatação consistente de e-mails
Inclua links de cancelamento de inscrição para conformidade
Solução de Problemas
E-mails não estão sendo enviados
Verifique se a Chave da API tem permissões de Mail Send
Verifique se os IDs dos modelos são válidos e ativos
Certifique-se de que os endereços de e-mail dos destinatários são válidos
Revise os limites e cotas de envio do SendGrid