Chuyển đến nội dung chính

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

1

Open the Webhook Section

Trong bảng điều khiển Dodo Payments của bạn, điều hướng đến Webhooks → + Add Endpoint và mở rộng menu thả xuống tích hợp.
Thêm điểm cuối và menu thả xuống tích hợp
2

Select Loops

Chọn thẻ tích hợp Loops.
3

Enter API Key

Cung cấp Khóa API Loops của bạn trong phần cấu hình.
4

Configure Transformation

Chỉnh sửa mã chuyển đổi để định dạng email cho API của Loops.
5

Test & Create

Kiểm tra bằng các payload mẫu và bấm Create để kích hoạt việc gửi email.
6

Done!

🎉 Các sự kiện thanh toán giờ sẽ tự động kích hoạt email giao dịch thông qua Loops.

Ví dụ Mã Biến đổi

Email Xác nhận Thanh toán

payment_confirmation.js
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;
}

Email Chào mừng Đăng ký

subscription_welcome.js
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;
}

Thông báo Thất bại Thanh toán

payment_failure.js
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;
}

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 đúng và đang hoạt động
  • Kiểm tra tên sự kiện khớp với mẫu Loops của bạn
  • Đảm bảo địa chỉ email người nhận hợp lệ
  • Xem lại giới hạn và hạn mức 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 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 của khóa API