Giới thiệu
Gửi email giao dịch và tự động quản lý giao tiếp với khách hàng khi các sự kiện thanh toán xảy ra. Gửi xác nhận thanh toán, cập nhật đăng ký và thông báo quan trọng với hạ tầng email của Vòng lặp.
Tích hợp này yêu cầu Khóa API Loops của bạn để xác thực.
Bắt đầu
Mở phần Webhook
Trong bảng điều khiển Dodo Payments của bạn, điều hướng đến Webhooks → + Thêm Điểm cuối và mở rộng danh sách thả xuống tích hợp.
Chọn Loops
Chọn thẻ tích hợp Loops .
Nhập Khóa API
Cung cấp Khóa API Loops của bạn trong cấu hình.
Cấu hình Biến đổi
Chỉnh sửa mã biến đổi để định dạng email cho API của Loops.
Kiểm tra & Tạo
Kiểm tra với các payload mẫu và nhấp vào Tạo để kích hoạt việc gửi email.
Xong!
🎉 Các sự kiện thanh toán bây giờ sẽ tự động kích hoạt email giao dịch qua Loops.
Ví dụ Mã Biến đổi
Email Xác nhận Thanh toán
function handler ( webhook ) {
if ( webhook . eventType === "payment.succeeded" ) {
const p = webhook . payload . data ;
webhook . url = "https://api.loops.so/v1/events/send" ;
webhook . payload = {
eventName: "payment_confirmation" ,
email: p . customer . email ,
properties: {
customer_name: p . customer . name ,
payment_id: p . payment_id ,
amount: ( p . total_amount / 100 ). toFixed ( 2 ),
currency: p . currency || "USD" ,
payment_method: p . payment_method || "unknown" ,
payment_date: new Date ( webhook . payload . timestamp ). toLocaleDateString ()
}
};
}
return webhook ;
}
See all 19 lines
Email Chào mừng Đăng ký
function handler ( webhook ) {
if ( webhook . eventType === "subscription.active" ) {
const s = webhook . payload . data ;
webhook . url = "https://api.loops.so/v1/events/send" ;
webhook . payload = {
eventName: "subscription_welcome" ,
email: s . customer . email ,
properties: {
customer_name: s . customer . name ,
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
}
};
}
return webhook ;
}
See all 19 lines
Thông báo Thất bại Thanh toán
function handler ( webhook ) {
if ( webhook . eventType === "payment.failed" ) {
const p = webhook . payload . data ;
webhook . url = "https://api.loops.so/v1/events/send" ;
webhook . payload = {
eventName: "payment_failed" ,
email: p . customer . email ,
properties: {
customer_name: p . customer . name ,
payment_id: p . payment_id ,
amount: ( p . total_amount / 100 ). toFixed ( 2 ),
error_message: p . error_message || "Payment processing failed" ,
retry_link: `https://yourdomain.com/retry-payment/ ${ p . payment_id } `
}
};
}
return webhook ;
}
See all 18 lines
Mẹo
Sử dụng tên sự kiện mô tả để tổ chức mẫu email tốt hơn
Bao gồm các thuộc tính khách hàng liên quan để cá nhân hóa
Thiết lập các mẫu email trong bảng điều khiển Loops cho mỗi sự kiện
Sử dụng tên thuộc tính nhất quán giữa các sự kiện
Kiểm tra việc gửi email trước khi đưa vào hoạt động
Khắc phục sự cố
Xác minh Khóa API là chính xác và đang hoạt động
Kiểm tra rằng tên sự kiện khớp với các mẫu Loops của bạn
Đảm bảo địa chỉ email người nhận là hợp lệ
Xem xét giới hạn và hạn ngạch gửi của Loops
Xác thực cấu trúc JSON khớp với định dạng API của Loops
Kiểm tra rằng tất cả các trường bắt buộc đều có mặt
Đảm bảo tên sự kiện được định dạng đúng
Xác minh quyền truy cập của khóa API