Pendahuluan
Memicu kampanye email yang dipersonalisasi dan perjalanan pelanggan berdasarkan peristiwa pembayaran. Kirim email sambutan untuk pelanggan baru, pembaruan langganan, dan pemberitahuan kegagalan pembayaran secara otomatis melalui Customer.io.
Integrasi ini memerlukan Site ID dan API Key Customer.io Anda.
Memulai
Open the Webhook Section
Di dasbor Dodo Payments Anda, buka Webhooks → + Add Endpoint dan perluas dropdown integrasi.
Select Customer.io
Pilih kartu integrasi Customer.io .
Enter Credentials
Masukkan Site ID dan API Key Customer.io Anda dalam konfigurasi.
Configure Transformation
Edit kode transformasi untuk memformat event agar sesuai dengan Track API Customer.io.
Test & Create
Uji dengan payload sampel dan klik Create untuk mengaktifkan sinkronisasi.
Done!
🎉 Event pembayaran sekarang akan memicu otomatisasi email Customer.io.
Lacak Peristiwa Pembayaran
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
Lacak Siklus Hidup Langganan
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
Lacak Atribut Pelanggan
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
Gunakan nama peristiwa yang konsisten yang cocok dengan kampanye Customer.io Anda
Sertakan atribut relevan untuk personalisasi
Atur pengidentifikasi pelanggan yang tepat untuk pelacakan yang akurat
Gunakan nama peristiwa yang bermakna untuk pemicu kampanye
Pemecahan Masalah
Events not triggering campaigns
Verifikasi bahwa Site ID dan API Key sudah benar
Periksa bahwa nama event sesuai dengan kampanye Customer.io Anda
Pastikan pengenal pelanggan telah diatur dengan benar
Tinjau batas laju API Customer.io