Introducción
Activa campañas de correo electrónico personalizadas y recorridos de clientes basados en eventos de pago. Envía correos electrónicos de bienvenida para nuevos clientes, actualizaciones de suscripción y notificaciones de fallos de pago automáticamente a través de Customer.io.
Esta integración requiere tu Customer.io Site ID y API Key.
Comenzando
Open the Webhook Section
En el panel de Dodo Payments, navega a Webhooks → + Add Endpoint y despliega el menú desplegable de integraciones.
Select Customer.io
Elige la tarjeta de integración de Customer.io .
Enter Credentials
Proporciona tu Customer.io Site ID y API Key en la configuración.
Configure Transformation
Edita el código de transformación para formatear los eventos para el Track API de Customer.io.
Test & Create
Prueba con cargas útiles de ejemplo y haz clic en Create para activar la sincronización.
Done!
🎉 Los eventos de pago ahora activarán las automatizaciones de correo electrónico de Customer.io.
Rastrear Eventos de Pago
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . url = "https://track.customer.io/api/v2/entity" ;
webhook . payload = {
type: "person" ,
identifiers: {
id: p . customer . customer_id
},
action: "payment_completed" ,
name: "Payment Completed" ,
attributes: {
email: p . customer . email ,
name: p . customer . name ,
payment_amount: ( p . total_amount / 100 ). toFixed ( 2 ),
payment_method: p . payment_method || "unknown" ,
payment_id: p . payment_id ,
currency: p . currency || "USD"
}
};
}
return webhook ;
}
See all 23 lines
Rastrear el Ciclo de Vida de la Suscripción
function handler ( webhook ) {
const s = webhook . payload . data ;
switch ( webhook . eventType ) {
case "subscription.active" :
webhook . url = "https://track.customer.io/api/v2/entity" ;
webhook . payload = {
type: "person" ,
identifiers: {
id: s . customer . customer_id
},
action: "subscription_started" ,
name: "Subscription Started" ,
attributes: {
email: s . customer . email ,
subscription_id: s . subscription_id ,
product_id: s . product_id ,
amount: ( s . recurring_pre_tax_amount / 100 ). toFixed ( 2 ),
frequency: s . payment_frequency_interval ,
next_billing: s . next_billing_date
}
};
break ;
case "subscription.cancelled" :
webhook . url = "https://track.customer.io/api/v2/entity" ;
webhook . payload = {
type: "person" ,
identifiers: {
id: s . customer . customer_id
},
action: "subscription_cancelled" ,
name: "Subscription Cancelled" ,
attributes: {
email: s . customer . email ,
subscription_id: s . subscription_id ,
cancelled_at: s . cancelled_at ,
cancel_at_next_billing: s . cancel_at_next_billing_date
}
};
break ;
}
return webhook ;
}
See all 42 lines
Rastrear Atributos del Cliente
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . url = "https://track.customer.io/api/v2/entity" ;
webhook . payload = {
type: "person" ,
identifiers: {
id: p . customer . customer_id
},
action: "identify" ,
name: "Customer Identified" ,
attributes: {
email: p . customer . email ,
name: p . customer . name ,
total_spent: ( p . total_amount / 100 ). toFixed ( 2 ),
payment_method: p . payment_method || "unknown" ,
last_payment_date: webhook . payload . timestamp ,
customer_since: webhook . payload . timestamp
}
};
}
return webhook ;
}
See all 23 lines
Consejos
Usa nombres de eventos consistentes que coincidan con tus campañas de Customer.io
Incluye atributos relevantes para la personalización
Establece identificadores de cliente adecuados para un seguimiento preciso
Usa nombres de eventos significativos para los disparadores de campaña
Solución de Problemas
Events not triggering campaigns
Verifica que el Site ID y la API Key sean correctos
Comprueba que los nombres de eventos coincidan con tus campañas de Customer.io
Asegúrate de que los identificadores de clientes estén configurados correctamente
Revisa los límites de tasa (rate limits) de la API de Customer.io