> ## 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.

# N8N

> قم بدمج مدفوعات دودي مع N8N لأتمتة سير العمل والاتصال بأكثر من 5000 تطبيق باستخدام webhooks—قم بتمكين أتمتة قوية وقابلة للتخصيص في بيئات N8N المستضافة ذاتيًا أو السحابية.

## المقدمة

قم بتوصيل مدفوعات دودي بآلاف التطبيقات والخدمات من خلال N8N. قم بأتمتة سير العمل عن طريق تشغيل سير عمل N8N عند حدوث أحداث الدفع، من إرسال رسائل البريد الإلكتروني إلى تحديث جداول البيانات، وإنشاء المهام، وعمليات قاعدة البيانات، والمزيد.

<Info>
  يتطلب هذا التكامل عنوان URL لـ N8N webhook من تكوين سير العمل الخاص بك.
</Info>

## البدء

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

    <Frame>
      <img src="https://mintcdn.com/dodopayments/OBONg3OSDVHCK_pv/images/integrations/n8n.png?fit=max&auto=format&n=OBONg3OSDVHCK_pv&q=85&s=1477d1a9fdb4446ae4db5c976e7d6fb8" alt="إضافة نقطة نهاية وقائمة الدمج المنسدلة" style={{ maxHeight: '500px', width: 'auto' }} width="2870" height="1482" data-path="images/integrations/n8n.png" />
    </Frame>
  </Step>

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

  <Step title="Create Webhook in N8N">
    في N8N، أنشئ سير عمل جديد وأضف عقدة <b>Webhook</b> كمحفز. قم بتكوينها كـ POST webhook وانسخ عنوان URL الخاص بالويب هوك.
  </Step>

  <Step title="Paste Webhook URL">
    الصق عنوان URL الخاص بـ N8N webhook في تكوين نقطة النهاية.
  </Step>

  <Step title="Configure Transformation">
    عدِّل كود التحويل لتنسيق البيانات وفق سير عمل N8N الخاص بك.
  </Step>

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

  <Step title="Activate Workflow">
    في N8N، قم بتنشيط سير العمل الخاص بك لبدء استقبال أحداث الويب هوك.
  </Step>

  <Step title="Done!">
    🎉 ستؤدي أحداث الدفع الآن إلى تشغيل سير العمل الخاص بـ N8N تلقائيًا.
  </Step>
</Steps>

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

### حمولة Webhook الأساسية

```javascript basic_webhook.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.payload = {
      event_type: webhook.eventType,
      payment_id: p.payment_id,
      amount: (p.total_amount / 100).toFixed(2),
      currency: p.currency || "USD",
      customer_email: p.customer.email,
      customer_name: p.customer.name,
      payment_method: p.payment_method || "unknown",
      timestamp: webhook.payload.timestamp
    };
  }
  return webhook;
}
```

### معالج حدث الاشتراك

```javascript subscription_webhook.js icon="js" expandable theme={null}
function handler(webhook) {
  const s = webhook.payload.data;
  switch (webhook.eventType) {
    case "subscription.active":
      webhook.payload = {
        event_type: "subscription_started",
        subscription_id: s.subscription_id,
        customer_email: s.customer.email,
        customer_name: s.customer.name,
        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,
        timestamp: webhook.payload.timestamp
      };
      break;
    case "subscription.cancelled":
      webhook.payload = {
        event_type: "subscription_cancelled",
        subscription_id: s.subscription_id,
        customer_email: s.customer.email,
        cancelled_at: s.cancelled_at,
        cancel_at_next_billing: s.cancel_at_next_billing_date,
        timestamp: webhook.payload.timestamp
      };
      break;
  }
  return webhook;
}
```

### معالج تنبيه النزاع

```javascript dispute_webhook.js icon="js" expandable theme={null}
function handler(webhook) {
  if (webhook.eventType.startsWith("dispute.")) {
    const d = webhook.payload.data;
    webhook.payload = {
      event_type: webhook.eventType,
      dispute_id: d.dispute_id,
      payment_id: d.payment_id,
      amount: (d.amount / 100).toFixed(2),
      status: d.dispute_status,
      stage: d.dispute_stage,
      remarks: d.remarks || "",
      urgent: webhook.eventType === "dispute.opened",
      timestamp: webhook.payload.timestamp
    };
  }
  return webhook;
}
```

## حالات استخدام N8N الشائعة

<AccordionGroup>
  <Accordion title="Email Notifications">
    * إرسال رسائل Gmail/Outlook لتأكيدات الدفع
    * إنشاء تسلسلات بريدية في Mailchimp/ConvertKit
    * إرسال إشعارات Slack/Discord عبر webhooks
    * إنشاء سجلات في Google Sheets تلقائيًا
    * إرسال رسائل Telegram/WhatsApp
  </Accordion>

  <Accordion title="CRM Updates">
    * إضافة جهات الاتصال إلى HubSpot/Salesforce
    * إنشاء صفقات في Pipedrive/Close
    * تحديث سجلات العملاء في Airtable
    * تسجيل الأنشطة في Monday.com
    * مزامنة البيانات مع قواعد بيانات PostgreSQL/MySQL
  </Accordion>

  <Accordion title="Task Management">
    * إنشاء مهام في Asana/Trello
    * إضافة عناصر المهام في Notion
    * إنشاء أحداث تقويم في Google Calendar
    * إرسال إشعارات SMS عبر Twilio
    * إنشاء مشكلات GitHub للنزاعات
  </Accordion>

  <Accordion title="Data Processing">
    * تحويل وتحسين بيانات الدفع
    * تخزين الأحداث في قواعد البيانات (PostgreSQL، MongoDB)
    * تجميع المقاييس والتحليلات
    * إنشاء تقارير وتصديرات
    * تشغيل سير عمل متعدد الخطوات معقد
  </Accordion>
</AccordionGroup>

## نصائح

* احتفظ ببنية الحمولة بسيطة لسهولة تحليل عقد N8N
* استخدم أسماء حقول متسقة عبر جميع الأحداث
* تضمين الطوابع الزمنية لتوقيت سير العمل وجدولته
* اختبر سير العمل الخاص بك باستخدام بيانات عينة قبل التفعيل
* استخدم عقدة IF في N8N للمنطق الشرطي والتوجيه
* استغل عقدة Code في N8N لتحويل البيانات المخصصة
* استخدم عقدة Switch لتوجيه أنواع الأحداث المختلفة إلى مسارات مختلفة
* إعداد سير عمل الأخطاء للتعامل مع فشل تسليم webhook

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

<AccordionGroup>
  <Accordion title="Workflow not triggering">
    * تحقق من صحة عنوان URL للويب هوك وإمكانية الوصول إليه
    * تأكد من تنشيط سير العمل في N8N
    * تأكد من تكوين عقدة الويب هوك كطريقة POST
    * اختبر تسليم الويب هوك في سجل تنفيذ N8N
    * تحقق من أن إعدادات الجدار الناري/الشبكة تسمح بوصول الويب هوك الوارد
    * تحقق من إعدادات مصادقة الويب هوك في N8N إذا تم تكوينها
  </Accordion>

  <Accordion title="Data not mapping correctly">
    * تحقق من أسماء الحقول في تكوينات عقد N8N
    * تأكد من تطابق أنواع البيانات مع التنسيقات المتوقعة في العقد
    * استخدم ميزة الاختبار في N8N لفحص البيانات الواردة
    * تأكد من أن كود التحويل يُرجع JSON صالح
    * تحقق من إعدادات تنسيق الاستجابة لعقدة الويب هوك
    * استخدم عقدة Set لإعادة تسمية الحقول أو إعادة هيكلتها
  </Accordion>

  <Accordion title="Workflow execution errors">
    * راجع سجلات التنفيذ في N8N لرسائل الخطأ التفصيلية
    * تحقق من إعدادات اتصال العقدة وبيانات الاعتماد
    * تأكد من وجود جميع الحقول المطلوبة في الحمولة
    * اختبر العقد الفردية ببيانات عينة
    * فعِّل مسارات الأخطاء لالتقاط الأخطاء ومعالجتها
    * تحقق من حدود المعدل وحصص واجهات برمجة التطبيقات للخدمات المتصلة
  </Accordion>
</AccordionGroup>
