> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MailerLite

> إضافة العملاء تلقائيًا إلى قوائم المشتركين في MailerLite وتفعيل أتمتة البريد الإلكتروني بناءً على أحداث مدفوعات Dodo.

## المقدمة

قم بمزامنة عملائك الذين يدفعون تلقائيًا إلى قوائم المشتركين في MailerLite عند حدوث أحداث الدفع. أضف العملاء إلى مجموعات محددة، وفعل سير العمل الأوتوماتيكي، وابقِ قوائم التسويق عبر البريد الإلكتروني محدثة ببيانات الدفع الحقيقية.

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

<Info>
  تتطلب هذه التكامل مفتاح API الخاص بـ MailerLite للمصادقة. يمكنك إنشاؤه من [صفحة تكامل MailerLite](https://dashboard.mailerlite.com/integrations/api).
</Info>

## البدء

<Steps>
  <Step title="Open the Webhook Section">
    في لوحة معلومات Dodo Payments الخاصة بك، انتقل إلى <b>Webhooks + إضافة الواجهة النهائية</b> وقم بتوسيع قائمة التكامل.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/j9AWnq3yJLUq3cjh/images/integrations/mailerlite.png?fit=max&auto=format&n=j9AWnq3yJLUq3cjh&q=85&s=4f247c342f82ffe529b79970fcf1a4e3" alt="إضافة الواجهة النهائية وقائمة التكامل" style={{ maxHeight: '500px', width: 'auto' }} width="876" height="769" data-path="images/integrations/mailerlite.png" />
    </Frame>
  </Step>

  <Step title="Select MailerLite">
    اختر بطاقة التكامل <b>MailerLite</b>.
  </Step>

  <Step title="Enter API Key">
    قم بتوفير مفتاح API الخاص بـ MailerLite في الإعدادات.
  </Step>

  <Step title="Configure Transformation">
    قم بتحرير كود التحويل لتنسيق بيانات المشتركين لواجهة MailerLite البرمجية.
  </Step>

  <Step title="Test & Create">
    اختبر باستخدام عينات الحمولة وانقر على <b>Create</b> لتفعيل مزامنة المشتركين.
  </Step>

  <Step title="Done!">
    ستقوم أحداث الدفع الآن بمزامنة العملاء تلقائيًا مع قوائم MailerLite الخاصة بك.
  </Step>
</Steps>

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

### إضافة عميل عند الدفع الناجح

```javascript add_customer.js icon="js" expandable theme={null}
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;
}
```

### إضافة مشترك إلى مجموعات متعددة بناءً على المنتج

```javascript product_segmentation.js icon="js" expandable theme={null}
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;
}
```

### إضافة مشترك جديد عند تفعيل الاشتراك

```javascript subscription_subscriber.js icon="js" expandable theme={null}
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;
}
```

### تحديث مشترك عند إلغاء الاشتراك

```javascript subscription_cancelled.js icon="js" expandable theme={null}
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;
}
```

### إضافة عميل مع حقول مخصصة

```javascript custom_fields.js icon="js" expandable theme={null}
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;
}
```

### تفعيل الأتمتة عبر الحدث

```javascript trigger_automation.js icon="js" expandable theme={null}
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;
}
```

## نصائح

* أنشئ حقولًا مخصصة في MailerLite قبل استخدامها في التحويلات الخاصة بك
* استخدم المجموعات لتقسيم العملاء حسب المنتج، أو مستوى الخطة، أو سلوك الشراء
* قم بإعداد سير العمل الأوتوماتيكي في MailerLite الذي يتم تفعيله عند تحديث الحقول
* استخدم سلوك upsert (POST إلى /subscribers) لتجنب أخطاء المشتركين المكررين
* قم بتخزين بيانات الدفع الوصفية في حقول مخصصة للحصول على رؤى أفضل عن العملاء
* اختبر مع مجموعة صغيرة قبل التفعيل لجميع المدفوعات

## إعداد الحقول المخصصة

قبل استخدام الحقول المخصصة، تحتاج إلى إنشائها في MailerLite:

1. انتقل إلى لوحة تحكم MailerLite الخاصة بك
2. انتقل إلى **حقول المشتركين**
3. انقر على **Create field** وأضف حقول مثل:
   * `total_spent` (رقم)
   * `customer_since` (تاريخ)
   * `subscription_plan` (نص)
   * `payment_method` (نص)
   * `last_payment_amount` (رقم)

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

<AccordionGroup>
  <Accordion title="Subscribers not being added">
    * تحقق من أن مفتاح API صحيح ونشط
    * تأكد من أن عنوان البريد الإلكتروني صالح (متوافق مع RFC 2821)
    * تأكد من أن معرفات المجموعات صحيحة وموجودة في حسابك
    * ملاحظة: لا يمكن إعادة تنشيط المشتركين الذين ألغوا الاشتراك أو ارتدت رسائلهم أو تم تصنيفهم كرسائل غير مرغوب فيها عبر واجهة برمجة التطبيقات
  </Accordion>

  <Accordion title="Custom fields not updating">
    * تحقق من وجود الحقول المخصصة في MailerLite قبل استخدامها
    * تأكد من تطابق أسماء الحقول تمامًا (حساسية لحالة الأحرف)
    * تأكد من أن قيم الحقول تتطابق مع النوع المتوقع (نص، رقم، تاريخ)
  </Accordion>

  <Accordion title="Rate limit errors">
    * واجهة برمجة تطبيقات MailerLite لها حد سرعة يبلغ 120 طلبًا في الدقيقة
    * استخدم نقاط النهاية الدُفعية إذا كنت تعالج العديد من المشتركين
    * نفذ استراتيجيات تراجع في حالات الحجم الكبير
  </Accordion>

  <Accordion title="Group assignment not working">
    * تحقق من أن معرفات المجموعات هي سلاسل رقمية
    * تحقق من وجود المجموعات في حساب MailerLite الخاص بك
    * ملاحظة: سيؤدي استخدام PUT مع المجموعات إلى إزالة المشترك من المجموعات غير المدرجة
  </Accordion>
</AccordionGroup>

## مرجع API

تقبل واجهة برمجة تطبيقات مشتركي MailerLite المعلمات الرئيسية التالية:

| الوسيط             | النوع  | مطلوب | الوصف                                                          |
| ------------------ | ------ | ----- | -------------------------------------------------------------- |
| `email`            | string | Yes   | عنوان بريد إلكتروني صالح (RFC 2821)                            |
| `fields`           | object | No    | كائن يحتوي على أزواج اسم/قيمة للحقول                           |
| `fields.name`      | string | No    | الاسم الأول للمشترك                                            |
| `fields.last_name` | string | No    | اسم عائلة المشترك                                              |
| `fields.company`   | string | No    | اسم الشركة                                                     |
| `fields.country`   | string | No    | البلد                                                          |
| `fields.city`      | string | No    | المدينة                                                        |
| `fields.phone`     | string | No    | رقم الهاتف                                                     |
| `groups`           | array  | No    | مصفوفة بمعرفات المجموعات التي يجب إضافة المشترك إليها          |
| `status`           | string | No    | أحد الخيارات: active، unsubscribed، unconfirmed، bounced، junk |
| `subscribed_at`    | string | No    | تاريخ بالتنسيق `yyyy-MM-dd HH:mm:ss`                           |
| `ip_address`       | string | No    | عنوان بروتوكول الإنترنت (IP) للمشترك                           |

للحصول على وثائق API الكاملة، قم بزيارة [مطورين MailerLite](https://developers.mailerlite.com/docs/subscribers.html).
