Webhooks

تسمح لك Webhooks بتلقي إشعارات في الوقت الفعلي حول روابطك — سواء عند النقر عليها أو عند إنشاؤها أو تحديثها أو حذفها. يرسل Linkly طلب POST إلى عنوان URL المحدد لديك مع معلومات تفصيلية عن كل حدث.

حالات الاستخدام

  • منصات الأتمتة: تفعيل سير العمل في Make أو Zapier عند النقر على الروابط
  • تحليلات مخصصة: إرسال بيانات النقر إلى نظام التحليلات الخاص بك
  • تحديثات CRM: تحديث سجلات العملاء عند نقرهم على الروابط
  • إشعارات Slack: احصل على إشعارات في Slack عند النقر على الروابط المهمة
  • تتبع العملاء المتوقعين: تتبع متى يتفاعل العملاء المحتملون مع روابطك

نصيحة: بالنسبة لمعظم حالات الأتمتة، فإن تكامل Make أو تكامل Zapier أسهل في الإعداد من webhooks المخصصة. يتضمنان محفزات نقر فورية مدعومة بـ webhooks، بدون الحاجة إلى أي ترميز.

كيفية إعداد webhooks على مستوى الرابط

1
2

قم بالتمرير لأسفل إلى قسم Webhooks.

3

أدخل عنوان URL الخاص بك للويبهوك، واحد لكل سطر.

يمكنك إضافة عناوين URL متعددة للويبهوك. ستتلقى جميع عناوين URL الحمولة نفسها عند النقر على الرابط.

أدخل عنوان URL الخاص بك للويبهوك، واحد لكل سطر.
أدخل عنوان URL الخاص بك للويبهوك، واحد لكل سطر.
4

تطلق webhooks على مستوى الرابط فقط عند النقر على هذا الرابط المحدد.

كيفية إعداد webhooks على مستوى المساحة العاملة

1

انتقل إلى Settings (أيقونة الترس في الشريط الجانبي).

2

انقر على Workspace Settings

3

أدخل عنوان URL الخاص بك للويبهوك، واحد لكل سطر.

يمكنك إضافة عناوين URL متعددة للويبهوك. ستتلقى جميع عناوين URL الحمولة نفسها عند النقر على أي رابط في مساحتك العاملة.

أدخل عنوان URL الخاص بك للويبهوك، واحد لكل سطر.
أدخل عنوان URL الخاص بك للويبهوك، واحد لكل سطر.
4

انقر على Save Settings.

تطلق webhooks على مستوى المساحة العاملة على كل نقرة على أي رابط في مساحتك العاملة.

ملاحظة: إذا قمت بتكوين webhooks على كلا المستويين، فسيتم تطلق كلاهما للنقرات على هذا الرابط.

الأحداث

يتلقى كل webhook جميع أنواع الأحداث الخاصة به — webhook على مستوى الرابط يحصل على أحداث هذا الرابط، و webhook على مستوى المساحة العاملة يحصل على أحداث كل رابط في المساحة العاملة. تحقق من حقل event على المستوى الأعلى للتمييز بينهم:

eventينقل عند
clickيتم النقر على رابط قصير. يتضمن كائن click ببيانات الطلب الخاصة بالزائر.
link.createdيتم إنشاء رابط جديد في المساحة العاملة.
link.updatedتتغير إعدادات الرابط. يتم التطلق عند كل تحديث، بما في ذلك التعديلات المحفوظة تلقائياً، لذلك قد تتلقى عدة تحديثات لكل جلسة تحرير.
link.deletedيتم حذف رابط. يحافظ كائن link على slug والمجال الذي كان لديه قبل الحذف.

حمولة Webhook

حمولة النقر

عند حدوث نقرة، يرسل Linkly طلب POST مع حمولة JSON التالية:

{
  "event": "click",
  "timestamp": "2025-01-15T10:30:00Z",
  "link": {
    "id": 12345,
    "name": "My Campaign Link",
    "url": "https://example.com/landing-page",
    "full_url": "https://yourdomain.com/abc123",
    "domain": "yourdomain.com",
    "slug": "/abc123",
    "destination": "https://example.com/landing-page",
    "workspace_id": 1,
    "enabled": true,
    "cloaking": false,
    "forward_params": true,
    "block_bots": true,
    "public_analytics": false,
    "utm_source": "newsletter",
    "utm_medium": "email",
    "utm_campaign": "spring-sale",
    "og_title": "Special Offer",
    "og_description": "Check out our spring sale!",
    "rules": [
      {
        "what": "country",
        "matches": "US",
        "url": "https://example.com/us-landing"
      }
    ]
  },
  "click": {
    "country": "US",
    "is_eu_country": false,
    "platform": "desktop",
    "browser_name": "Chrome",
    "referer": "https://twitter.com/",
    "isp": "Comcast",
    "bot_name": null,
    "destination": "https://example.com/landing-page",
    "params": {
      "utm_source": "twitter"
    }
  }
}

حقول الحمولة

معلومات الحدث

الحقلالوصف
eventclick أو link.created أو link.updated أو link.deleted
timestampطابع وقت ISO 8601 للنقرة

كائن الرابط

الحقلالوصف
idمعرف الرابط الفريد
nameاسم الرابط المستعار
urlعنوان URL الوجهة الأصلي
full_urlعنوان URL الرابط القصير
domainالمجال المخصص (إن أمكن)
slugمسار URL/slug
destinationالوجهة الفعلية لهذه النقرة (قد تختلف عن url إذا تم تطبيق القواعد)
workspace_idمعرف المساحة العاملة
enabledما إذا كان الرابط نشطاً
rulesمصفوفة قواعد التحويل (جغرافية، جهاز، محرك)
utm_*معاملات UTM إن وجدت
og_*إعدادات Open Graph إن وجدت

كائن النقر

الحقلالوصف
countryرمز الدولة بحرفين (مثل "US" أو "GB")
is_eu_countryما إذا كانت النقرة من الاتحاد الأوروبي
platformمنصة الجهاز (سطح المكتب والـ iOS والـ Android وغيرها)
browser_nameاسم المتصفح (Chrome و Safari و Firefox وغيرها)
refererعنوان URL الذي يشير إليه (إن أمكن)
ispمزود خدمة الإنترنت
bot_nameمعرف الروبوت (فارغ للنقرات البشرية)
destinationعنوان URL الوجهة النهائي لهذه النقرة
paramsمعاملات الاستعلام التي تم تمريرها إلى الرابط

ملاحظة الخصوصية: لا يتم تضمين عناوين IP في حمولة webhook.

حمولة دورة حياة الرابط

تشترك أحداث link.created و link.updated و link.deleted في شكل واحد. لا توجد كائن click — تحصل على event و timestamp والكامل link:

{
  "event": "link.created",
  "timestamp": "2026-06-20T10:30:00Z",
  "link": {
    "id": 12345,
    "name": "My Campaign Link",
    "url": "https://example.com/landing-page",
    "full_url": "https://yourdomain.com/abc123",
    "domain": "yourdomain.com",
    "slug": "/abc123",
    "workspace_id": 1,
    "enabled": true,
    "rules": []
  }
}

تكاملات منصات الأتمتة

للإعداد الأسهل بدون ترميز مخصص، استخدم التكاملات الأصلية الخاصة بنا:

  • تكامل Make - منصة أتمتة مرئية مع محفزات نقر فورية
  • تكامل Zapier - قم بتوصيل Linkly بآلاف التطبيقات بدون كود

كلا التكاملات يستخدمان webhooks تحت الغطاء لكنهما يتعاملان مع الإعداد تلقائياً.

أفضل الممارسات

عناوين URLs متعددة للويبهوك

يمكنك إضافة عناوين URL متعددة للويبهوك (واحد لكل سطر). ستتلقى جميع عناوين URL الحمولة نفسها عند حدوث نقرة.

معالجة الأخطاء

  • Webhooks عبارة عن fire-and-forget - لا يحاول Linkly إعادة المحاولة في حالة الفشل
  • فشل Webhook لا يؤثر على إعادة التوجيه أبداً - يصل المستخدمون دائماً إلى وجهتهم
  • تأكد من أن نقطة نهاية webhook الخاصة بك تستجيب بسرعة (أقل من 5 ثوانٍ موصى به)

الأمان

  • استخدم نقاط نهاية HTTPS لعناوين URL الخاصة بك للويبهوك
  • تحقق من الطلبات الواردة في معالج webhook الخاص بك
  • فكر في إضافة معامل سري إلى عنوان URL الخاص بك للويبهوك للتحقق

الاختبار

  1. 1
    قم بإعداد عنوان URL للويبهوك باستخدام خدمة مثل webhook.site أو RequestBin
  2. 2
    انقر على الرابط الخاص بك
  3. 3
    فحص الحمولة المستلمة
  4. 4
    بمجرد التحقق، انتقل إلى عنوان URL للويبهوك الخاص بالإنتاج

وصول API

يمكنك أيضاً إدارة webhooks برمجياً عبر API:

POST   /api/v1/link/:link_id/webhooks
DELETE /api/v1/link/:link_id/webhooks/:hook_id
GET    /api/v1/link/:link_id/webhooks

POST   /api/v1/workspace/:workspace_id/webhooks
DELETE /api/v1/workspace/:workspace_id/webhooks/:hook_id
GET    /api/v1/workspace/:workspace_id/webhooks

انظر وثائق API للتفاصيل.

أسئلة شائعة حول Webhooks

ما الأحداث التي يمكن لـ webhooks أن ترسلها؟

يتم تطلق Webhooks على أربعة أحداث، يتم تحديدها من خلال حقل الحدث في الحمولة. تحصل على click عند النقر على الرابط، بالإضافة إلى link.created و link.updated و link.deleted عند تغيير الروابط. يتلقى كل webhook جميع أنواع الأحداث الخاصة به، لذا قم بالفصل على حقل الحدث للتعامل مع كل منها.

لماذا لا تطلق webhooks الخاصة بي؟

تحقق من أن عنوان URL الخاص بك للويبهوك صحيح وقابل للوصول، وأن webhooks محفوظ على الرابط أو المساحة العاملة. لأحداث النقر، لاحظ أن webhooks يطلق فقط عند تسجيل نقرة فعلية - عناوين IP المستبعدة أو المتصفحات المتجاوزة لن تطلقها.

لماذا تكون بعض الحقول فارغة في حمولة webhook؟

قد تكون بعض الحقول فارغة إذا لم تتوفر المعلومات (مثل عدم وجود referer)، أو منعت إعدادات الخصوصية التجميع، أو كانت النقرة من روبوت (وفي هذه الحالة سيتم ملء bot_name بدلاً من ذلك).

هل يعيد Linkly محاولة تسليم webhooks الفاشلة؟

لا. Webhooks عبارة عن fire-and-forget. لا يتم إعادة محاولة التسليمات الفاشلة، ولا يتتبع Linkly حالة تسليم webhook. تنتهي مهلة طلبات Webhook بعد 5 ثوانٍ.

هل يدعم Linkly postbacks لتتبع التحويلات؟

لا. Webhooks الخاصة بـ Linkly موجهة للخارج فقط وتطلق عند حدوث نقرات. لا يمكننا استقبال بيانات postback من شبكات الشركات التابعة أو منصات الإعلانات. بالنسبة لتتبع التحويلات، استخدم التتبع الأصلي لمنصة الوجهة، أو مرر معرف النقرة عبر إعادة توجيه معامل الاستعلام، أو استخدم تكامل BigQuery الخاص بنا لربط بيانات النقر ببيانات التحويل الخاصة بك.

هل يجب أن أستخدم webhooks أو Make/Zapier؟

بالنسبة لمعظم حالات الأتمتة، فإن تكاملات Make أو Zapier الخاصة بنا أسهل في الإعداد. إنها تستخدم webhooks تحت الغطاء لكنها تتعامل مع جميع التكوينات تلقائياً. استخدم webhooks مخصصة عندما تحتاج إلى إرسال البيانات إلى أنظمتك الخاصة أو تتطلب مزيداً من التحكم في التكامل.

هل يمكن أن يكون لدي webhooks على كل من الرابط والمساحة العاملة؟

نعم. إذا قمت بتكوين webhooks على كلا المستويين، فسيتم تطلق كلاهما عند النقر على هذا الرابط. هذا مفيد إذا كنت تريد تسجيل محفوظات في المساحة العاملة بالإضافة إلى إجراءات محددة لروابط معينة.

توافر الخطة

متوفر على Business وما فوق

مقارنة الخطط →

احصل على 100 رابط مختصر وتتبع 500 نقرة شهريًا مجانًا.