الانتقال إلى المحتوى الرئيسي
تتيح مشغّلات ربط الويب للخدمات الخارجية بدء تشغيل عمليات سير العمل لديك عبر إرسال بيانات إلى عنوان URL فريد. استخدمها لربط النماذج والتطبيقات من جهات خارجية والتكاملات المخصّصة.

متى تستخدم ربط الويب

حالة الاستخداممثال
نماذج الويبتُنشئ عمليات إرسال نموذج الاتصال عملاء محتملين
تطبيقات جهات خارجيةدفعة Stripe → إنشاء سجل عميل
تكاملات مخصّصةتطبيقك → أتمتة Twenty
أدوات بدون كوداتصالات Zapier وMake وn8n

إعداد خطوة بخطوة

الخطوة 1: إنشاء سير العمل

  1. اذهب إلى الإعدادات → سير العمل
  2. انقر + سير عمل جديد
  3. قم بتسميته (مثلًا، “إرسال نموذج الموقع”)

الخطوة 2: تهيئة مشغّل ربط الويب

  1. انقر على كتلة المشغّل
  2. اختر ربط الويب
  3. ستتلقى عنوان URL فريدًا لربط الويب مثل:
    https://api.twenty.com/webhooks/workflow/abc123...
    
  4. انسخ هذا العنوان URL - ستحتاج إليه لخدمتك الخارجية

الخطوة 3: تحديد بنية البيانات المتوقعة

بالنسبة لطلبات POST، حدِّد بنية جسم الطلب المتوقعة:
  1. انقر تحديد الجسم المتوقع
  2. أدخل JSON نموذجيًا يطابق ما سترسله خدمتك:
{
  "firstName": "John",
  "lastName": "Doe",
  "email": "[email protected]",
  "company": "Acme Inc",
  "message": "Interested in your product"
}
  1. انقر حفظ - سيؤدي هذا إلى إنشاء متغيّرات يمكنك استخدامها في الخطوات اللاحقة

الخطوة 4: إضافة إجراءات

أضف الآن إجراءات تستخدم بيانات ربط الويب: مثال: إنشاء سجل شخص
  1. أضف إجراء إنشاء سجل
  2. حدِّد كائن الأشخاص
  3. عيّن الحقول:
الحقلالقيمة
الاسم الأول{{trigger.body.firstName}}
الاسم الأخير{{trigger.body.lastName}}
البريد الإلكتروني{{trigger.body.email}}
الشركةابحث أو أنشئ بناءً على {{trigger.body.company}}

الخطوة 5: اختبار ربط الويب

قبل التفعيل، اختبر ربط الويب لديك: باستخدام cURL:
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
  -H "Content-Type: application/json" \
  -d '{"firstName":"Test","lastName":"User","email":"[email protected]"}'
باستخدام Postman أو ما شابهه:
  1. أنشئ طلب POST إلى عنوان ربط الويب الخاص بك
  2. عيّن ترويسة Content-Type إلى application/json
  3. أضف جسم JSON الاختباري الخاص بك
  4. أرسل وتحقّق من تشغيلات سير العمل

الخطوة 6: التفعيل

بعد الاختبار، انقر تفعيل لجعل سير العمل فعّالًا.

التعامل مع بُنى بيانات مختلفة

بيانات متداخلة

إذا كان ربط الويب يرسل بيانات متداخلة:
{
  "contact": {
    "name": "John Doe",
    "email": "[email protected]"
  },
  "source": "website"
}
أشر إليها باستخدام: {{trigger.body.contact.email}}

المصفوفات

إذا كانت البيانات تتضمن مصفوفات:
{
  "items": [
    {"name": "Product A", "qty": 2},
    {"name": "Product B", "qty": 1}
  ]
}
تعتمد طريقة تعاملك مع المصفوفات على حالة الاستخدام لديك: عدد العناصر غير معروف → استخدم Iterator إذا كنت بحاجة إلى معالجة كل عنصر في المصفوفة (مثلًا، إنشاء سجل لكل عنصر)، أضف إجراء Code لتحليل المصفوفة، ثم استخدم Iterator:
export const main = async (params: { items: any }) => {
  const items = typeof params.items === "string"
    ? JSON.parse(params.items)
    : params.items;
  return { items };
};
ثم استخدم Iterator للتكرار عبر: {{code.items}} حقول معروفة/محددة → استخرجها إلى حقول مسماة إذا كانت المصفوفة تحتوي على حقول محددة تريد الوصول إليها بشكل فردي (مثلًا، إجابات نموذج حيث الموضع 0 دائمًا هو “الاسم الأول”، والموضع 1 دائمًا هو “اسم العائلة”)، فأضف إجراء Code لاستخراجها:
export const main = async (params: { items: any }) => {
  const items = typeof params.items === "string"
    ? JSON.parse(params.items)
    : params.items;

  return {
    product: {
      name: items[0]?.name || "",
      qty: items[0]?.qty || 0
    }
  };
};
يمكنك الآن اختيار product.name وproduct.qty بشكل فردي في الخطوات اللاحقة.
لمزيد من التفاصيل حول التعامل مع المصفوفات، راجع التعامل مع المصفوفات في إجراءات Code.

ذات صلة