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

المقدمة

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

البدء

1

Open the Webhook Section

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

Select N8N

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

Create Webhook in N8N

في N8N، أنشئ سير عمل جديد وأضف عقدة Webhook كمحفز. قم بتكوينها كـ POST webhook وانسخ عنوان URL الخاص بالويب هوك.
4

Paste Webhook URL

الصق عنوان URL الخاص بـ N8N webhook في تكوين نقطة النهاية.
5

Configure Transformation

عدِّل كود التحويل لتنسيق البيانات وفق سير عمل N8N الخاص بك.
6

Test & Create

اختبر باستخدام حمولات عينة وانقر على Create لتنشيط التكامل.
7

Activate Workflow

في N8N، قم بتنشيط سير العمل الخاص بك لبدء استقبال أحداث الويب هوك.
8

Done!

🎉 ستؤدي أحداث الدفع الآن إلى تشغيل سير العمل الخاص بـ N8N تلقائيًا.

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

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

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

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

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

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

dispute_webhook.js
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 الشائعة

  • إرسال رسائل Gmail/Outlook لتأكيدات الدفع
  • إنشاء تسلسلات بريدية في Mailchimp/ConvertKit
  • إرسال إشعارات Slack/Discord عبر webhooks
  • إنشاء سجلات في Google Sheets تلقائيًا
  • إرسال رسائل Telegram/WhatsApp
  • إضافة جهات الاتصال إلى HubSpot/Salesforce
  • إنشاء صفقات في Pipedrive/Close
  • تحديث سجلات العملاء في Airtable
  • تسجيل الأنشطة في Monday.com
  • مزامنة البيانات مع قواعد بيانات PostgreSQL/MySQL
  • إنشاء مهام في Asana/Trello
  • إضافة عناصر المهام في Notion
  • إنشاء أحداث تقويم في Google Calendar
  • إرسال إشعارات SMS عبر Twilio
  • إنشاء مشكلات GitHub للنزاعات
  • تحويل وتحسين بيانات الدفع
  • تخزين الأحداث في قواعد البيانات (PostgreSQL، MongoDB)
  • تجميع المقاييس والتحليلات
  • إنشاء تقارير وتصديرات
  • تشغيل سير عمل متعدد الخطوات معقد

نصائح

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

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

  • تحقق من صحة عنوان URL للويب هوك وإمكانية الوصول إليه
  • تأكد من تنشيط سير العمل في N8N
  • تأكد من تكوين عقدة الويب هوك كطريقة POST
  • اختبر تسليم الويب هوك في سجل تنفيذ N8N
  • تحقق من أن إعدادات الجدار الناري/الشبكة تسمح بوصول الويب هوك الوارد
  • تحقق من إعدادات مصادقة الويب هوك في N8N إذا تم تكوينها
  • تحقق من أسماء الحقول في تكوينات عقد N8N
  • تأكد من تطابق أنواع البيانات مع التنسيقات المتوقعة في العقد
  • استخدم ميزة الاختبار في N8N لفحص البيانات الواردة
  • تأكد من أن كود التحويل يُرجع JSON صالح
  • تحقق من إعدادات تنسيق الاستجابة لعقدة الويب هوك
  • استخدم عقدة Set لإعادة تسمية الحقول أو إعادة هيكلتها
  • راجع سجلات التنفيذ في N8N لرسائل الخطأ التفصيلية
  • تحقق من إعدادات اتصال العقدة وبيانات الاعتماد
  • تأكد من وجود جميع الحقول المطلوبة في الحمولة
  • اختبر العقد الفردية ببيانات عينة
  • فعِّل مسارات الأخطاء لالتقاط الأخطاء ومعالجتها
  • تحقق من حدود المعدل وحصص واجهات برمجة التطبيقات للخدمات المتصلة