Introduktion
Utlösa personliga e-postkampanjer och kundresor baserat på betalningshändelser. Skicka välkomstmejl till nya kunder, abonnemangsuppdateringar och meddelanden om betalningsfel automatiskt via Customer.io.
Denna integration kräver ditt Customer.io Site ID och API-nyckel.
Komma igång
Öppna Webhook-sektionen
I din Dodo Payments-instrumentpanel, navigera till Webhooks → + Lägg till slutpunkt och expandera integrationsrullgardinsmenyn.
Välj Customer.io
Välj Customer.io integrationskortet.
Ange autentiseringsuppgifter
Ange ditt Customer.io Site ID och API-nyckel i konfigurationen.
Konfigurera transformation
Redigera transformationskoden för att formatera händelser för Customer.io:s Track API.
Testa & Skapa
Testa med exempelpayloads och klicka på Skapa för att aktivera synkroniseringen.
Klart!
🎉 Betalningshändelser kommer nu att utlösa Customer.io e-postautomatiseringar.
Spåra betalningshändelser
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
Spåra abonnemangets livscykel
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
Spåra kundattribut
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
Tips
Använd konsekventa händelsenamn som matchar dina Customer.io-kampanjer
Inkludera relevanta attribut för personalisering
Sätt korrekta kundidentifierare för noggrann spårning
Använd meningsfulla händelsenamn för kampanjuppmaningar
Felsökning
Händelser utlöser inte kampanjer
Verifiera att Site ID och API-nyckel är korrekta
Kontrollera att händelsenamn matchar dina Customer.io-kampanjer
Se till att kundidentifierare är korrekt inställda
Granska Customer.io API:s hastighetsbegränsningar