Webhooks
تسمح لك Webhooks بتلقي إشعارات في الوقت الفعلي حول روابطك — سواء عند النقر عليها أو عند إنشاؤها أو تحديثها أو حذفها. يرسل Linkly طلب POST إلى عنوان URL المحدد لديك مع معلومات تفصيلية عن كل حدث.
حالات الاستخدام
- منصات الأتمتة: تفعيل سير العمل في Make أو Zapier عند النقر على الروابط
- تحليلات مخصصة: إرسال بيانات النقر إلى نظام التحليلات الخاص بك
- تحديثات CRM: تحديث سجلات العملاء عند نقرهم على الروابط
- إشعارات Slack: احصل على إشعارات في Slack عند النقر على الروابط المهمة
- تتبع العملاء المتوقعين: تتبع متى يتفاعل العملاء المحتملون مع روابطك
نصيحة: بالنسبة لمعظم حالات الأتمتة، فإن تكامل Make أو تكامل Zapier أسهل في الإعداد من webhooks المخصصة. يتضمنان محفزات نقر فورية مدعومة بـ webhooks، بدون الحاجة إلى أي ترميز.
كيفية إعداد webhooks على مستوى الرابط
انتقل إلى Links وانقر على الرابط الذي تريد تكوينه.
قم بالتمرير لأسفل إلى قسم Webhooks.
أدخل عنوان URL الخاص بك للويبهوك، واحد لكل سطر.
يمكنك إضافة عناوين URL متعددة للويبهوك. ستتلقى جميع عناوين URL الحمولة نفسها عند النقر على الرابط.

انقر على Save Link.
تطلق webhooks على مستوى الرابط فقط عند النقر على هذا الرابط المحدد.
كيفية إعداد webhooks على مستوى المساحة العاملة
انتقل إلى Settings (أيقونة الترس في الشريط الجانبي).
انقر على Workspace Settings
أدخل عنوان URL الخاص بك للويبهوك، واحد لكل سطر.
يمكنك إضافة عناوين URL متعددة للويبهوك. ستتلقى جميع عناوين URL الحمولة نفسها عند النقر على أي رابط في مساحتك العاملة.

انقر على 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"
}
}
}
حقول الحمولة
معلومات الحدث
| الحقل | الوصف |
|---|---|
event | click أو 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قم بإعداد عنوان URL للويبهوك باستخدام خدمة مثل webhook.site أو RequestBin
- 2انقر على الرابط الخاص بك
- 3فحص الحمولة المستلمة
- 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 مخصصة عندما تحتاج إلى إرسال البيانات إلى أنظمتك الخاصة أو تتطلب مزيداً من التحكم في التكامل.
توافر الخطة
متوفر على Business وما فوق
احصل على 100 رابط مختصر وتتبع 500 نقرة شهريًا مجانًا.