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

Giới thiệu

Tự động đồng bộ khách hàng đang thanh toán của bạn vào danh sách người đăng ký MailerLite khi các sự kiện thanh toán xảy ra. Thêm khách hàng vào các nhóm cụ thể, kích hoạt quy trình tự động hóa và giữ cho danh sách tiếp thị email của bạn luôn cập nhật với dữ liệu thanh toán thực. MailerLite là một nền tảng tiếp thị email mạnh mẽ cho bản tin, chiến dịch và tự động hóa. Tích hợp này giúp bạn tự động quản lý người đăng ký dựa trên hoạt động thanh toán - hoàn hảo cho các chuỗi onboarding, phân khúc khách hàng và các chiến dịch tiếp thị nhắm mục tiêu.
Tích hợp này yêu cầu Khóa API MailerLite của bạn để xác thực. Bạn có thể tạo một từ Trang tích hợp MailerLite.

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 tích hợp.
Thêm điểm cuối và menu tích hợp
2

Select MailerLite

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

Enter API Key

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

Configure Transformation

Chỉnh sửa mã chuyển đổi để định dạng dữ liệu người đăng ký cho API của MailerLite.
5

Test & Create

Kiểm tra với mẫu payload và nhấp Create để kích hoạt đồng bộ người đăng ký.
6

Done!

Các sự kiện thanh toán bây giờ sẽ tự động đồng bộ khách hàng vào danh sách MailerLite của bạn.

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

Thêm Khách hàng khi Thanh toán Thành công

add_customer.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: p.customer.email,
      fields: {
        name: p.customer.name,
        company: p.customer.business_name || "",
        last_name: ""
      },
      groups: ["your-group-id-here"],
      status: "active"
    };
  }
  return webhook;
}

Thêm Người đăng ký vào Nhiều Nhóm Dựa trên Sản phẩm

product_segmentation.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    
    // Determine groups based on product or amount
    const groups = ["customers-group-id"];
    
    // Add to premium group if high-value purchase
    if (p.total_amount >= 10000) { // $100+
      groups.push("premium-customers-group-id");
    }
    
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: p.customer.email,
      fields: {
        name: p.customer.name,
        last_purchase_amount: (p.total_amount / 100).toFixed(2),
        last_purchase_date: new Date(webhook.payload.timestamp).toISOString().split('T')[0],
        payment_id: p.payment_id
      },
      groups: groups,
      status: "active"
    };
  }
  return webhook;
}

Thêm Người đăng ký Mới khi Kích hoạt Đăng ký

subscription_subscriber.js
function handler(webhook) {
  if (webhook.eventType === "subscription.active") {
    const s = webhook.payload.data;
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: s.customer.email,
      fields: {
        name: s.customer.name,
        subscription_plan: s.product_id,
        subscription_amount: (s.recurring_pre_tax_amount / 100).toFixed(2),
        billing_frequency: s.payment_frequency_interval,
        subscription_start: new Date().toISOString().split('T')[0]
      },
      groups: ["subscribers-group-id", "active-subscriptions-group-id"],
      status: "active"
    };
  }
  return webhook;
}

Cập nhật Người đăng ký khi Hủy Đăng ký

subscription_cancelled.js
function handler(webhook) {
  if (webhook.eventType === "subscription.cancelled") {
    const s = webhook.payload.data;
    // Use PUT to update existing subscriber
    webhook.url = "https://connect.mailerlite.com/api/subscribers/" + encodeURIComponent(s.customer.email);
    webhook.method = "PUT";
    webhook.payload = {
      fields: {
        subscription_status: "cancelled",
        cancellation_date: new Date().toISOString().split('T')[0]
      },
      groups: ["churned-customers-group-id"]
    };
  }
  return webhook;
}

Thêm Khách hàng với Các Trường Tùy chỉnh

custom_fields.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: p.customer.email,
      fields: {
        name: p.customer.name,
        company: p.customer.business_name || "",
        country: p.customer.country || "",
        city: p.customer.city || "",
        phone: p.customer.phone || "",
        // Custom fields (must be created in MailerLite first)
        total_spent: (p.total_amount / 100).toFixed(2),
        customer_since: new Date().toISOString().split('T')[0],
        payment_method: p.payment_method || "unknown",
        currency: p.currency || "USD"
      },
      groups: ["paying-customers-group-id"],
      status: "active",
      subscribed_at: new Date().toISOString().replace('T', ' ').split('.')[0]
    };
  }
  return webhook;
}

Kích hoạt Tự động hóa qua Sự kiện

trigger_automation.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    
    // First, ensure subscriber exists
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: p.customer.email,
      fields: {
        name: p.customer.name,
        // Add a trigger field that your automation watches
        last_payment_trigger: new Date().toISOString(),
        last_payment_amount: (p.total_amount / 100).toFixed(2)
      },
      status: "active"
    };
    
    // Tip: Create an automation in MailerLite that triggers
    // when 'last_payment_trigger' field is updated
  }
  return webhook;
}

Mẹo

  • Tạo các trường tùy chỉnh trong MailerLite trước khi sử dụng chúng trong các biến đổi của bạn
  • Sử dụng các nhóm để phân khúc khách hàng theo sản phẩm, cấp độ kế hoạch hoặc hành vi mua hàng
  • Thiết lập các quy trình tự động hóa trong MailerLite mà kích hoạt khi có cập nhật trường
  • Sử dụng hành vi upsert (POST đến /subscribers) để tránh lỗi người đăng ký trùng lặp
  • Lưu trữ siêu dữ liệu thanh toán trong các trường tùy chỉnh để có cái nhìn tốt hơn về khách hàng
  • Kiểm tra với một nhóm nhỏ trước khi kích hoạt cho tất cả các thanh toán

Thiết lập Trường Tùy chỉnh

Trước khi sử dụng các trường tùy chỉnh, bạn cần tạo chúng trong MailerLite:
  1. Đi đến bảng điều khiển MailerLite của bạn
  2. Đi tới Trường Người đăng ký
  3. Nhấp Tạo trường và thêm các trường như:
    • total_spent (Number)
    • customer_since (Date)
    • subscription_plan (Text)
    • payment_method (Text)
    • last_payment_amount (Number)

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 địa chỉ email hợp lệ (tuân thủ RFC 2821)
  • Đảm bảo ID nhóm chính xác và tồn tại trong tài khoản của bạn
  • Lưu ý: Người đăng ký đã hủy, bị trả lại, hoặc bị cho là rác không thể được kích hoạt lại qua API
  • Xác minh trường tùy chỉnh tồn tại trong MailerLite trước khi sử dụng
  • Kiểm tra tên trường khớp chính xác (phân biệt chữ hoa chữ thường)
  • Đảm bảo giá trị trường khớp loại mong đợi (văn bản, số, ngày tháng)
  • API MailerLite có giới hạn 120 yêu cầu mỗi phút
  • Sử dụng điểm cuối hàng loạt nếu xử lý nhiều người đăng ký
  • Triển khai chiến lược giảm tần suất cho các tình huống khối lượng lớn
  • Xác minh ID nhóm là chuỗi số
  • Kiểm tra nhóm tồn tại trong tài khoản MailerLite của bạn
  • Lưu ý: Sử dụng PUT với nhóm sẽ loại bỏ người đăng ký khỏi các nhóm không được liệt kê

Tài liệu API

API Người đăng ký MailerLite chấp nhận các tham số khóa sau:
Tham sốLoạiBắt buộcMô tả
emailstringYesĐịa chỉ email hợp lệ (RFC 2821)
fieldsobjectNoĐối tượng với cặp tên/giá trị trường
fields.namestringNoTên riêng của người đăng ký
fields.last_namestringNoHọ của người đăng ký
fields.companystringNoTên công ty
fields.countrystringNoQuốc gia
fields.citystringNoThành phố
fields.phonestringNoSố điện thoại
groupsarrayNoMảng ID nhóm để thêm người đăng ký vào
statusstringNoMột trong các giá trị: active, unsubscribed, unconfirmed, bounced, junk
subscribed_atstringNoNgày theo định dạng yyyy-MM-dd HH:mm:ss
ip_addressstringNoĐịa chỉ IP của người đăng ký
Để biết tài liệu API đầy đủ, hãy truy cập Nhà phát triển MailerLite.