الانتقال إلى المحتوى الرئيسي

المقدمة

قم بتفعيل حملات البريد الإلكتروني المخصصة ورحلات العملاء بناءً على أحداث الدفع. أرسل رسائل ترحيب للعملاء الجدد، وتحديثات الاشتراك، وإشعارات فشل الدفع تلقائيًا من خلال Customer.io.
تتطلب هذه التكاملية معرف موقع Customer.io ومفتاح واجهة برمجة التطبيقات.

البدء

1

Open the Webhook Section

في لوحة تحكم Dodo Payments الخاصة بك، انتقل إلى Webhooks → + Add Endpoint وافتح القائمة المنسدلة للتكاملات.
Add Endpoint and integrations dropdown
2

Select Customer.io

اختر بطاقة التكامل Customer.io.
3

Enter Credentials

أدخل معرف موقع Customer.io ومفتاح واجهة برمجة التطبيقات في التكوين.
4

Configure Transformation

حرر كود التحويل لتنسيق الأحداث وفقًا لواجهة Track API الخاصة بـ Customer.io.
5

Test & Create

اختبر باستخدام حمولة عينة ثم انقر Create لتفعيل المزامنة.
6

Done!

🎉 ستؤدي أحداث الدفع الآن إلى تشغيل أتمتة البريد الإلكتروني في Customer.io.

أمثلة على كود التحويل

تتبع أحداث الدفع

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

تتبع دورة حياة الاشتراك

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

تتبع سمات العملاء

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

نصائح

  • استخدم أسماء أحداث متسقة تتطابق مع حملات Customer.io الخاصة بك
  • قم بتضمين سمات ذات صلة للتخصيص
  • قم بتعيين معرفات العملاء بشكل صحيح للتتبع الدقيق
  • استخدم أسماء أحداث ذات معنى لتفعيل الحملات

استكشاف الأخطاء وإصلاحها

  • تأكد من صحة معرف الموقع ومفتاح واجهة برمجة التطبيقات
  • تحقق من تطابق أسماء الأحداث مع حملات Customer.io الخاصة بك
  • تأكد من تعيين معرفات العملاء بشكل صحيح
  • راجع حدود معدل واجهة برمجة تطبيقات Customer.io
  • تحقق من تطابق بنية JSON مع تنسيق واجهة برمجة تطبيقات Customer.io
  • تأكد من وجود جميع الحقول المطلوبة
  • تأكد من تنسيق أسماء الأحداث والسمات بشكل صحيح