# Webhooks

## ☁️ ما هي Webhooks؟

تعد Webhooks طريقة ممتازة لإرسال بيانات المستجيب وإجاباته إلى أي نقطة نهاية API تعتمد على HTTP بمجرد تسجيل المستجيب في قاعدة بيانات ngSurvey.

## 🔅 خصائص Webhooks

* **`عنوان URL الخاص بالWebhook`** لنقطة نهاية REST API أو خادم HTTP التي يجب أن تستلم إرسال حمولة JSON الخاصة بالمستجيب.
* **`قالب تحويل الحمولة`** يُستخدم لتغيير بنية حمولة JSON المرسلة إلى بنية كائن مخصصة أخرى.

## 🔤 صيغة الإرسال

يتم إرسال المستجيب وإجاباته كحمولة بتنسيق JSON باستخدام فعل HTTP post. يمكن تخصيص حمولة JSON الافتراضية أدناه باستخدام [قالب تحويل الحمولة](https://docs.ngsurvey.com/ar/form-management/tasks/task-items/webhook/webhooks-payload-transform).

```javascript
{
  respondent: {
    id: string;
    surveyId: string;
    panelistId: string;
    contextUsername: string
    resumeUId: string;
    resumePageId: string;
    startDate: Date;
    voteDate: Date;
    iPSource: string;
    changeUID: string;
    progressSaveDate: Date;
    languageCode: string;
    timeToEnd: number;
    validated: boolean;        
  },
  answers: [{
      respondentId: string,
      value:string,
      answerId": string,
      answerText": string,
      questionId": string,
      questionAlias": string,
      questionText": string,
      sectionNumber": number
  }],
  visitedPages: [{
    id: string;
    respondentId: string;
    visitTime: string;
  }],
  dataAttributes: [{
    securityItemId: string;
    respondentId: string;
    attributeName: string;
    attributeValue: string;
  }],
  querystring: string
}
```

{% hint style="info" %}
الإجابات المشفرة باستخدام [مقيدة](https://docs.ngsurvey.com/ar/data-encryption/data-classification/restricted) سيتم إرسال تصنيف البيانات باعتبارها رسالة PGP مشفرة.&#x20;
{% endhint %}
