Webhooks payload transform

🔃 What is the Webhooks payload transform for ?

Not all APIs that should receive the payload of the respondent answers are the same as such you can use the transform template to transform the original JSON payload of the respondent answers into another custom formatted JSON of your choice to match perfectly any third party API specifications

Below a simple example that reformats the original payload properties names with new custom names and creates a hierarchical representation of the respondent and his answers. Its of course possible to completely re-transform the original JSON payload to any type of JSON structure.

{
    "myCustomRespondent": {
    "id": "#valueof($.respondent.id)",
    "surveyId": "#valueof($.respondent.surveyId)",
    "panelistId": "#valueof($.respondent.panelistId)",
    "contextUsername": "#valueof($.respondent.contextUsername)",
    "resumeUId": "#valueof($.respondent.resumeUId)",
    "resumePageId": "#valueof($.respondent.resumePageId)",
    "startDate": "#valueof($.respondent.startDate)",
    "voteDate": "#valueof($.respondent.voteDate)",
    "iPSource": "#valueof($.respondent.iPSource)",
    "changeUID": "#valueof($.respondent.changeUID)",
    "progressSaveDate": "#valueof($.respondent.progressSaveDate)",
    "languageCode": "#valueof($.respondent.languageCode)",
    "timeToEnd": "#valueof($.respondent.timeToEnd)",
    "validated": "#valueof($.respondent.validated)",
    "myQuerystring": "#valueof($.querystring)",
    "myCustomAnswers":{
      "#loop($.answers)": {
        "respondentId": "#currentvalueatpath($.respondentId)",
        "value":"#currentvalueatpath($.value)",
        "answerId": "#currentvalueatpath($.answerId)",
        "answerText": "#currentvalueatpath($.answerText)",
        "questionId": "#currentvalueatpath($.questionId)",
        "questionAlias": "#currentvalueatpath($.questionAlias)",
        "questionText": "#currentvalueatpath($.questionText)",
        "sectionNumber": "#currentvalueatpath($.sectionNumber)"
      }
    },
      "myCustomDataAttributes":{
      "#loop($.dataAttributes)": {
        "securityItemId": "#currentvalueatpath($.securityItemId)",
        "respondentId":"#currentvalueatpath($.respondentId)",
        "attributeName": "#currentvalueatpath($.attributeName)",
        "attributeValue": "#currentvalueatpath($.attributeValue)"
      }
    },
      "myVisitedPages":{
      "#loop($.visitedPages)": {
        "id": "#currentvalueatpath($.id)",
        "respondentId":"#currentvalueatpath($.respondentId)",
        "visitTime": "#currentvalueatpath($.visitTime)"
      }
    }
  }
}

Last updated

(c) 2024 Data Illusion Zumbrunn. All rights reserved. Reproduction strictly forbidden.