انتقل إلى المحتوى

إرسال الإجابات إلى نقطة نهايتك عبر الويب هوك

أرسل كل إجابة تتلقاها حملة، موقّعة، إلى عنوان HTTPS خاص بك، أو أي حمولة من خطوة في سير عمل. وتعرّف على الفرق بين موصل Webhooks والويب هوك في الإعدادات ← واجهة البرمجة.

فريق Polzyقراءة 7 دحُدّث في 31 أكتوبر 2026أعمال وما فوقها
في هذه الصفحة
  1. 1أي ويب هوك تحتاج؟
  2. 2قبل أن تبدأ
  3. 3ربط موصل Webhooks
  4. 4إعطاء الحملة نقطة نهايتها
  5. 5ما تستقبله نقطة نهايتك
  6. 6التحقق من التوقيع
  7. 7إرسال ويب هوك من سير عمل
  8. 8التحقق من أنه يعمل
  9. 9حل المشكلات
  10. 10معلومات مفيدة

يرسل الموصل Webhooks كل إجابة تتلقاها حملة إلى عنوان على خادمك الخاص، في طلب POST موقّع، بعد لحظات من تقديمها. ويمكن لسير العمل استخدامه أيضًا لإرسال كل ما يعرفه التشغيل. في نهاية هذا الدليل سيكون لديك نقطة نهاية تستقبل الإجابات، ووسيلة للتحقق من أن كل طلب يأتي فعلًا من Polzy.

يتوفر موصل Webhooks في خطة أعمال. لا يستطيع ربطه واختيار وجهة إجابات الحملة إلا المسؤول.

أي ويب هوك تحتاج؟

يمكن لـ Polzy استدعاء خادمك بثلاث طرق:

موصل Webhooks (هذه المقالة)الإعدادات ← واجهة البرمجة ← الويب هوكخطوة ويب هوك صادر
ما يُرسلكل إجابة لحملة، أو حمولة خطوة في سير عملأحداث مساحة العمل: إنشاء إجابة، انتهاء حملة، إنشاء إجراء أو إكمالهما تحدده خطوة سير العمل
مكان الإعدادالتكاملات، ثم علامة التبويب التكاملات في الحملة أو خطوة في سير العملالإعدادات ← واجهة البرمجة ← الويب هوكسير عمل
الخطةأعمالفريقفريق
التوقيعX-Polzy-Signature، على المتنX-Polzy-Signature، على الطابع الزمني والمتنلا
عند فشل التسليمثلاث محاولات إجمالًاست محاولات خلال نحو نصف ساعة، مع سجل لكل محاولةتقرر قاعدة الخطأ في الخطوة

للأحداث على مستوى مساحة العمل كلها، راجع إرسال الويب هوك واستقباله.

قبل أن تبدأ

تحتاج إلى:

  • مساحة عمل على خطة أعمال، ودور مسؤول فيها.
  • تفعيل التكاملات لمساحة العمل، من الإعدادات ← عام ← ما تقوم به مساحة العمل هذه.
  • نقطة نهاية على الإنترنت، عبر HTTPS، تقبل POST بمتن JSON وترد بحالة 2xx خلال 10 ثوانٍ. يرفض Polzy عناوين http:// والعناوين داخل شبكة خاصة.

ربط موصل Webhooks

عند الربط يُحفظ ما تشترك فيه كل الطلبات: سر التوقيع وأي ترويسات.

  1. في الشريط الجانبي، ضمن الأتمتة، افتح التكاملات واختر علامة التبويب متاحة.
  2. ابحث عن Webhooks واختر ربط.
  3. في سر التوقيع، أدخل قيمة عشوائية طويلة واحتفظ بنسخة منها لخادمك.
  4. ضمن ترويسات HTTP، أضِف أي ترويسات تريد إرسالها، مثل Authorization. تُحفظ قيمها مشفّرة. راجع معلومات مفيدة لمعرفة وجهتها.
  5. اختر ربط. يرد الاختبار بـ Connected. Each survey and step names the endpoint it posts to.
ربط موصل Webhooks: سر التوقيع وأي ترويسات.

إذا تُرك سر التوقيع فارغًا، يُنشأ سر لك — لكنه لا يُعرض أبدًا، فلن تستطيع التحقق من التوقيعات به. أدخل سرّك الخاص. ولتغييره لاحقًا، اختر تهيئة واكتب السر الجديد فوق القيمة المحفوظة.

إعطاء الحملة نقطة نهايتها

  1. افتح الحملات، ثم الحملة وعلامة التبويب التكاملات الخاصة بها.
  2. ضمن إضافة اتصال، ابحث عن Webhooks واختر اتصال. إذا ظهر على الزر إعداد، فهذا يعني أن الموصل لم يُربط بمساحة العمل بعد.
  3. في الوجهة، أدخل العنوان الذي تُرسل إليه إجابات هذه الحملة.
  4. اختر حفظ التغييرات.
وجهة الحملة: نقطة النهاية التي تُرسل إليها إجاباتها.

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

علامة التبويب التكاملات في الحملة: وجهة كل إجابة وما يمكن إضافته.

ما تستقبله نقطة نهايتك

كل إجابة طلب POST بهذه الترويسات:

الترويسةما تحتويه
Content-Typeapplication/json
X-Polzy-Eventresponse.submitted لإجابة الحملة؛ ومن سير العمل، اسم الحدث الخاص بالخطوة.
X-Polzy-Signature‏HMAC-SHA256 لمتن الطلب الخام، محسوبة بسر التوقيع ومكتوبة بالنظام الست عشري.
X-Polzy-Timestampقيمة timestamp من المتن.
Idempotency-Keyمن خطوة في سير العمل فقط: تبقى نفسها عند تكرار الخطوة ذاتها، لكي تتجاهل التكرار.

وهذا المتن بصيغة JSON:

الحقلما يحتويه
eventresponse.submitted.
timestampوقت إرسال الطلب. وفي الإجابة المجهولة، اليوم الذي قُدّمت فيه.
survey.id, survey.titleمعرّف الاستبيان وعنوانه.
response.idمعرّف الإجابة في Polzy. فارغ في الإجابة المجهولة.
response.submittedAtوقت إكمال الإجابة. وفي الإجابة المجهولة، اليوم فقط.
response.answersعنصر لكل سؤال أُجيب عنه، يحتوي كل منها على questionId وquestionText وvalue.
response.scoreالدرجة الإجمالية، إذا كانت قد حُسبت وقت إرسال الطلب.

تحمل الإجابة المجهولة ما قالته ودرجتها ويومها، ولا شيء يمكن أن يكشف صاحبها أو يحدد وقتها. وينتظر Polzy فحص السلامة لكل إجابة، لمدة تصل إلى 10 دقائق، قبل إرسالها؛ والإجابة المحجوبة لمراجعة السلامة تصل نصًا بديلًا. لا يحجب الحد الأدنى لحجم المجموعة الإجابات المفردة.

التحقق من التوقيع

  1. اقرأ متن الطلب كما وصل تمامًا، قبل تحليله.
  2. احسب HMAC-SHA256 له بسر التوقيع، مكتوبًا بالنظام الست عشري.
  3. قارنه بـ X-Polzy-Signature باستخدام مقارنة بزمن ثابت. وإذا اختلفا، فارفض الطلب.

الطابع الزمني جزء من المتن، لذا فإن أي تغيير فيه يُبطل التوقيع أيضًا.

إرسال ويب هوك من سير عمل

  1. افتح سير العمل ثم سير العمل المطلوب، أو أنشئ واحدًا جديدًا.
  2. ضمن الموصلات في الخطوات المثبتة، اسحب إرسال ويب هوك · Webhooks إلى لوحة العمل.
  3. في نقطة النهاية، أدخل العنوان الذي ترسل إليه هذه الخطوة.
  4. في اسم الحدث، أبقِ workflow.step أو سمِّ الحدث الذي يتوقعه خادمك. يُرسل باسم X-Polzy-Event.
  5. اترك الحمولة فارغة لإرسال كل ما يعرفه التشغيل، أو اكتب JSON الذي تريده، مع {{ لإدراج قيم من التشغيل.
  6. اختر إرسال اختبار لإرسال طلب واحد مملوء بإجابة نموذجية.
الخطوة إرسال ويب هوك: نقطة النهاية واسم الحدث والحمولة.

تُوقَّع الخطوة بسر الاتصال، وتمرّر رد خادمك باسم {{connector.statusCode}} و{{connector.response}}.

التحقق من أنه يعمل

في علامة التبويب التكاملات للحملة، يحتسب سطر النشاط الإجابات المرسلة وتلك التي فشلت. وتعرض صفحة الموصل كل عملية إرسال ضمن النشاط، مع نجح أو فشل والسبب.

صفحة الموصل: حالته وآخر سبعة أيام وكل عملية إرسال.

حل المشكلات

ضمن النشاط، تظهر عملية الإرسال الفاشلة بعبارة Webhook failed: متبوعة بالسبب؛ ويعرض تشغيل سير العمل السبب نفسه دون هذه البادئة.

  • Webhook failed: only https endpoints are allowed. يجب أن تبدأ نقطة النهاية بـ https://.
  • Webhook failed: private addresses are not allowed. يشير العنوان إلى شبكة خاصة، مثل localhost أو 10.0.0.5. استخدم عنوانًا يمكن الوصول إليه من الإنترنت.
  • Webhook failed: that host could not be found. الاسم الوارد في العنوان غير موجود. تحقق من كتابته.
  • Webhook failed: متبوعة بحالة مثل 500، أو timeout of 10000ms exceeded. ردّت نقطة نهايتك بخطأ، أو استغرقت أكثر من 10 ثوانٍ. أي رد غير 2xx يُعد فاشلًا، ويُعاد الإرسال ثلاث مرات إجمالًا.
  • No endpoint for this survey. Set one on its Integrations tab. لا توجد نقطة نهاية للحملة. أضِف واحدة عبر تعديل الإعداد في علامة التبويب التكاملات للحملة.
  • لا يتطابق التوقيع. احسبه على المتن الخام، قبل أي تحليل، بالسر الذي أدخلته. وإذا أُنشئ السر لك، فأدخل سرّك الخاص.
  • لا تصل الترويسة الخاصة بك. راجع ما يلي: لا تذهب الترويسات إلا إلى مضيف يرسل إليه الاتصال نفسه.

الإجابات التي وصلت قبل حفظ نقطة النهاية، أو أثناء إيقاف المفتاح، لا تُرسل لاحقًا. صدّرها بدلًا من ذلك من الردود في الاستبيان.

معلومات مفيدة

  • إلى أين تذهب ترويسات HTTP؟ إلى مضيف يرسل إليه الاتصال نفسه فقط. نقطة النهاية التي تختارها حملة أو خطوة على مضيف آخر تُستدعى دونها، فلا تصل قيمة Authorization المحفوظة أبدًا إلى عنوان لم تكن مخصصة له. اعتمد على التوقيع لتمييز طلبات Polzy عن غيرها.
  • هل تُرسل الإجابات غير المكتملة؟ لا. تُرسل الإجابات المكتملة فقط، مرة واحدة لكل منها.
  • هل يمكن لنقطة نهايتي أن ترد ببيانات؟ في خطوة سير العمل، نعم: يُحفظ الرد باسم {{connector.response}} للخطوات اللاحقة. أما في إجابات الحملة فلا يُعتد إلا بحالة الرد.
هل كان هذا مفيدًا؟
ما زلت عالقًا؟

يمكن للأعضاء المسجّلين سؤال Polzy أو مراسلة الفريق من صفحة الدعم. تعتمد سرعة ردّنا على خطتك.