Payload Structure and Example

Webhooks transmit data in JSON format. Below is the basic structure of the payload and examples of sample responses sent via webhook for forms created with all types of questions available in Moaform.

You can also receive sample payloads for the forms you've created through test transmissions for reference.

 

Payload Structure

The payload is primarily composed of event information, form, answers, and thankyou.

Event information contains the basic information of the webhook, including the dispatch conditions. The form holds the basic information of the respective form, and answers contain the detailed data of each response. thankyou contains the information fo the thank you page.

 

Event information

Basic information of the webhook

ELEMENT TYPE DESCRIPTION
event_id string Unique ID of the webhook. Assigned automatically
event_type string Webhook dispatch condition, currently only 'response_completed' is available
object_type string The object_type of the event, currently only 'response' is returned
response_id string Unique ID of the response
submitted_at string Timestamp of the response submission

 

form

The form represents the object of the form, showing information about the survey. Using the API, you can access more detailed information about the form.

ELEMENT TYPE DESCRIPTION
form object  
↳ id string Unique ID of the form
↳ title string From title
↳ answer_url string Form URL for collecting responses
↳ report_url string Result page URL
hidden object  
↳ d[n] string If hidden fields are present, display all hidden fields at the same hierarchy level. n=1~100

 

answers

answers is an array of objects that display the responses to questions within the form.

ELEMENT TYPE DESCRIPTION
answers [object]  
↳ type string Answer type
↳ block object  
     ↳ id string Unique ID of the block
     ↳ type string Block type
     ↳ content string Content of the block
... ... ...

 

The answers > type in the table above shows the type of each response, and the detailed data varies by type. These are described in a separate table below, which replaces the ... position in the table above for each type.

 

choice (choose one among many choices)

ELEMENT TYPE DESCRIPTION
↳ choice object  
     ↳ id string Unique ID of the choice
     ↳ label string Content of the choice
     ↳ other string Comments for 'Other' choice (appears only when the response is 'Other' choice)
     ↳ score number Assigned score (appears only when score is assigned)

 

choices (choose many among many choices)

ELEMENT TYPE DESCRIPTION
↳ choices [object]  
     ↳ id string Unique ID of the choice
     ↳ label string Content of the choice
     ↳ other string Comments for 'Other' choice (appears only when the response is 'Other' choice)
     ↳ score number Assigned score (appears only when score is assigned)

For ranking questions, the order in which the answers are listed represents their ranking.

 

media_choice (choose one among many media choices)

ELEMENT TYPE DESCRIPTION
↳ media_choice object  
     ↳ id string Unique ID of the choice
     ↳ label string Content of the choice
     ↳ other string Comments for 'Other' choice (appears only when the response is 'Other' choice)
     ↳ score number Assigned score (appears only when score is assigned)
     ↳ media object  
          ↳ url string Media URL
          ↳ type string Media type (currenty returns only 'image')

 

media_choices (choose many among many media choices)

ELEMENT TYPE DESCRIPTION
↳ media_choices [object]  
     ↳ id string Unique ID of the choice
     ↳ label string Content of the choice
     ↳ other string Comments for 'Other' choice (appears only when the response is 'Other' choice)
     ↳ score number Assigned score (appears only when score is assigned)
     ↳ media object  
          ↳ url string Media URL
          ↳ type string Media type (currenty returns only 'image')

For ranking questions, the order in which the answers are listed represents their ranking.

 

text (text answers)

ELEMENT TYPE DESCRIPTION
↳ text string Text input
↳ encrypted boolean Response data encrypted or not (appears only when it is "true")

 

email (email address)

ELEMENT TYPE DESCRIPTION
↳ email string Email address
↳ encrypted boolean Response data encrypted or not (appears only when it is "true")

 

url (url)

ELEMENT TYPE DESCRIPTION
↳ url string Website URL
↳ encrypted boolean Response data encrypted or not (appears only when it is "true")

 

number (answers in numbers such as Point Scale, Star rating, Numeric Value)

ELEMENT TYPE DESCRIPTION
↳ number number Number
↳ encrypted boolean Response data encrypted or not (only for Numeric Value block, appears only when it is "true")

 

address (address)

ELEMENT TYPE DESCRIPTION
↳ address [object]  
     ↳ street string street input (appears only when defined as visibile_fields)
     ↳ detail string detail input (appears only when defined as visibile_fields)
     ↳ city string city input (appears only when defined as visibile_fields)
     ↳ region string region input (appears only when defined as visibile_fields)
     ↳ postal_code string postal_code input (appears only when defined as visibile_fields)
     ↳ country string country input (appears only when defined as visibile_fields)
↳ encrypted boolean  Response data encrypted or not (appears only when it is "true")

 

files (attachment files)

ELEMENT TYPE DESCRIPTION
↳ files [object]  
     ↳ name string File name
     ↳ size integer File size
     ↳ url object  
          ↳ api string File download API URL (URL that can only be downloaded through the API)
          ↳ report string File download web URL (URL that can be directly downloaded by owners or collaborators who are PRO members)

 

row (Matrix)

For matirx-type questions, since there is an array of choice and choices, the table for choice or choices is inserted again at the ... position in the table below. In this case, choice or choices are included as a subset of the rows object.

ELEMENT TYPE DESCRIPTION
↳ rows [object]  
     ↳ type string

Answer type

     ↳ block object  
          ↳ id string Unique ID of the sub-question
          ↳ content string Content of the sub-question
... ... ...

 

The answers array is only displayed in the payload if there is response data. If the respondent does not answer a non-mandatory question, or skips a question due to logic, resulting in no response data for that question, the answers array for that question will not be displayed in the payload.

 

thankyou

Upon completing and finally submitting a response to a form created with Moaform, respondents are always directed to a thank you (closing remarks) page. There can be multiple closing thank you pages, and respondents are directed to one of these pages through logic. The payload will display the id and url of the thank you page that the respondent ultimately reaches.

ELEMENT TYPE DESCRIPTION
thankyou object  
↳ id string Unique ID of the thank you page
↳ url string URL of the thank you page

 

 

Payload Example

This is an example payload that includes all types of questions available in Moaform.

{
  "event_id": "4ebbbcdb-7f4b-47a9-a72c-1009b4990d12",
  "event_type": "response_completed",
  "hidden": {
    "d1": "andrew"
  },
  "response_id": "123-45-67890",
  "submitted_at": "2024-02-01T04:55:13Z",
  "form": {
    "id": "jW5o2M",
    "title": "Google Gemini User Experience Survey",
    "report_url": "https://www.moaform.com/reports/aZlOQ0RjJNR64YWb",
    "answer_url": "https://moaform.com/q/yGV1GF"
  },
  "answers": [
    {
      "block": {
        "id": "cls2lcsmq00082v6moddhz0hs",
        "type": "single_choice",
        "title": "<p>How often do you use Google Gemini?</p>"
      },
      "type": "choice",
      "choice": {
        "id": "cls2lcsmq000a2v6mfnn8y93n",
        "label": "<p>Daily</p>",
        "score": 1
      },
    },
    {
      "block": {
        "id": "cls2ldkvd00062v6nbpberh35",
        "type": "multiple_choice",
        "title": "<p>Which features of Google Gemini do you use? Select all that apply.</p>"
      },
      "type": "choices",
      "choices": [
        {
          "id": "cls2ldkvd00092v6nfe42p10y",
          "label": "<p>Cloud Storage</p>",
          "score": 1
        },
        {
          "id": "cls2lu0iy003p2v6n57wd3ave",
          "label": "<p>Maps</p>",
          "score": 2
        },
        {
          "id": "cls2ldkvd00072v6nvno7ue6h",
          "label": "<p>Search Engine</p>",
          "score": 3
        }
      ],
    },
    {
      "block": {
        "id": "cls2ldvil000c2v6nefizm132",
        "type": "dropdown",
        "title": "<p>Did you experience any issues while using Google Gemini?</p>"
      },
      "type": "choice",
      "choice": {
        "id": "cls2ldvil000e2v6n90i4kec7",
        "label": "<p>No</p>",
        "score": 2
      },
    },
    {
      "block": {
        "id": "cls2le19d000i2v6n0ppo6jxl",
        "type": "ranking",
        "title": "<p>Please rank the following Google Gemini services in order of importance to you.</p>"
      },
      "type": "choices",
      "choices": [
        {
          "id": "cls2le19d000l2v6n61biepmr",
          "label": "<p>Cloud storage space</p>"
        },
        {
          "id": "cls2le19d000j2v6nla70peux",
          "label": "<p>Search accuracy</p>"
        }
      ]
    },
    {
      "block": {
        "id": "cls2le8ax000o2v6n6eg0bx8a",
        "type": "media_single_choice",
        "title": "<p>Which type of media do you consume most frequently on Google Gemini platforms?</p>"
      },
      "type": "media_choice",
      "media_choice": {
        "id": "cls2m6nhn00402v6nxbmsqna6",
        "label": "<p>E-Books</p>",
        "score": 5
        "media": {
          "type": "image",
          "url": "https://robohash.org/commodioptioearum.png"
        }
      },
    },
    {
      "block": {
        "id": "cls2lgcvg000u2v6nfh7o8ivp",
        "type": "media_multiple_choice",
        "title": "<p>Select the types of media you have used or interacted with on Google Gemini services.</p>"
      },
      "type": "media_choices",
      "media_choices": [
        {
          "id": "cls2lgcvg000v2v6nszdcdswo",
          "label": "<p>Video tutorials</p>",
          "score": 1,
          "media": {
            "type": "image",
            "url": "https://robohash.org/doloresveldolor.png"
          }
        },
        {
          "id": "cls2m79fz00412v6nsff1q9wz",
          "label": "<p>News articles</p>",
          "score": 4,
          "media": {
            "type": "image",
            "url": "https://robohash.org/nihilrerummaiores.png"
          }
        }
      ],
    },
    {
      "block": {
        "id": "cls2lgoh100102v6noq3j19po",
        "type": "media_ranking",
        "title": "<p>Rank the following media types based on your preference for content consumption on Google Gemini.</p>"
      },
      "type": "media_choices",
      "media_choices": [
        {
          "id": "cls2lgoh100122v6nndvd1m8c",
          "label": "<p>Audio Content</p>",
          "media": {
            "type": "image",
            "url": "https://robohash.org/perferendisestomnis.png"
          }
        },
        {
          "id": "cls2m864s00442v6nibp8yiey",
          "label": "<p>Visual Content</p>",
          "media": {
            "type": "image",
            "url": "https://robohash.org/teneturrationealias.png"
          }
        },
        {
          "id": "cls2lgoh100112v6n1z0bpnym",
          "label": "<p>Video Content</p>",
          "media": {
            "type": "image",
            "url": "https://robohash.org/minusiureexplicabo.png"
          }
        },
        {
          "id": "cls2m80g000432v6n6a74huoc",
          "label": "<p>Interactive Content</p>",
          "media": {
            "type": "image",
            "url": "https://robohash.org/aspernaturreprehenderitaut.png"
          }
        },
        {
          "id": "cls2lgoh100132v6ngiepv9jk",
          "label": "<p>Written Content</p>",
          "media": {
            "type": "image",
            "url": "https://robohash.org/aspernaturautut.png"
          }
        },
        {
          "id": "cls2lgoh100152v6nyggfy2y7",
          "label": "other",
          "other": "You can get anything you want at Alice's restaurant.",
          "media": {
            "type": "image",
            "url": ""
          }
        },
      ]
    },
    {
      "block": {
        "id": "cls2lv2jp003r2v6nc14yp877",
        "type": "point_scale",
        "title": "<p>On a scale from -5 to 5, how would you rate the overall performance of Google Gemini?</p>"
      },
      "type": "number",
      "number": 3
    },
    {
      "block": {
        "id": "cls2lhfaa001c2v6n703dea3q",
        "type": "nps",
        "title": "<p>How likely are you to recommend Google Gemini to a friend or colleague? &nbsp;</p>"
      },
      "type": "number",
      "number": 5
    },
    {
      "block": {
        "id": "cls2lgyu700162v6nog617gmn",
        "type": "rating",
        "title": "<p>How would you rate the user interface of Google Gemini?</p>"
      },
      "type": "number",
      "number": 7
    },
    {
      "block": {
        "id": "cls2lho58001i2v6n4t10n5oj",
        "type": "matrix_single_choice",
        "title": "<p>What is your primary purpose for using Google Gemini?</p>"
      },
      "rows": [
        {
          "block": {
            "id": "cls2lho58001m2v6ns4hdd9nn",
            "title": "<p>at Home</p>"
          },
          "type": "choice",
          "choice": {
            "id": "cls2lho58001m2v6ns4hdd9nn:cls2lho58001l2v6nueh42tzp",
            "label": "<p>Educational activities</p>",
            "score": 3
          },
        },
        {
          "block": {
            "id": "cls2li5zy001o2v6n1dcjwute",
            "title": "<p>at Office</p>"
          },
          "type": "choice",
          "choice": {
            "id": "cls2li5zy001o2v6n1dcjwute:cls2lho58001j2v6np1atlo93",
            "label": "<p>Personal use</p>",
            "score": 1
          },
          }
      ]
    },
    {
      "block": {
        "id": "cls2lictr001p2v6nbqdrpp6s",
        "type": "matrix_multiple_choice",
        "title": "<p>Which Google Gemini features do you use regularly? Select all that apply.</p>"
      },
      "rows": [
        {
          "block": {
            "id": "cls2lictr001t2v6nxzl24rsy",
            "title": "<p>at Home</p>"
          },
          "type": "choices",
          "choices": [
            {
              "id": "cls2lictr001t2v6nxzl24rsy:cls2mchoe00462v6n5trjchsw",
              "label": "<p>Maps</p>".
              "score": 4
            }
          ],
        },
        {
          "block": {
            "id": "cls2lictr001u2v6n9xntfosy",
            "title": "<p>at Office</p>"
          },
          "type": "choices",
          "choices": [
            {
              "id": "cls2lictr001u2v6n9xntfosy:cls2lictr001s2v6na1kvxgh8",
              "label": "<p>Drive</p>",
              "score": 1
            },
            {
              "id": "cls2lictr001u2v6n9xntfosy:cls2lictr001q2v6nh82ekevh",
              "label": "<p>Search</p>",
              "score": 3
            }
          ],
        }
      ]
    },
    {
      "block": {
        "id": "cls2lipfv001w2v6nothvfcj1",
        "type": "matrix_ranking",
        "title": "<p>Rank the devices you most frequently use to access Google Gemini services.</p>"
      },
      "rows": [
        {
          "block": {
            "id": "cls2lipfv00202v6nsd0qhctz",
            "title": "<p>at Home</p>"
          },
          "type": "choices",
          "choices": [
            {
              "id": "cls2lipfv00202v6nsd0qhctz:cls2lipfv001x2v6n08hhaqo8",
              "label": "<p>Smartphone</p>"
            },
            {
              "id": "cls2lipfv00202v6nsd0qhctz:cls2lipfv001y2v6niexsh5ro",
              "label": "<p>Tablet</p>"
            },
            {
              "id": "cls2lipfv00202v6nsd0qhctz:cls2me0bu00492v6nqtwno5mg",
              "label": "<p>Smartwatch</p>"
            },
            {
              "id": "cls2lipfv00202v6nsd0qhctz:cls2lipfv001z2v6nygztclsc",
              "label": "<p>Laptop</p>"
            },
            {
              "id": "cls2lipfv00202v6nsd0qhctz:cls2mdwe300482v6nzia1b5bc",
              "label": "<p>Desktop</p>"
            }
          ]
        },
        {
          "block": {
            "id": "cls2lipfv00212v6n0jsyogyx",
            "title": "<p>at Office</p>"
          },
          "type": "choices",
          "choices": [
            {
              "id": "cls2lipfv00212v6n0jsyogyx:cls2lipfv001x2v6n08hhaqo8",
              "label": "<p>Smartphone</p>"
            }
          ]
        },
        {
          "block": {
            "id": "cls2meu2a004a2v6nqt0ambov",
            "title": "<p>at School</p>"
          },
          "type": "choices",
          "choices": [
            {
              "id": "cls2meu2a004a2v6nqt0ambov:cls2lipfv001y2v6niexsh5ro",
              "label": "<p>Tablet</p>"
            },
            {
              "id": "cls2meu2a004a2v6nqt0ambov:cls2mdwe300482v6nzia1b5bc",
              "label": "<p>Desktop</p>"
            }
          ]
        }
      ]
    },
    {
      "block": {
        "id": "cls2lixno00232v6nrofkx97v",
        "type": "long_text",
        "title": "<p>What improvements would you like to see in future updates of Google Gemini? &nbsp;</p>",
        "encrypted": true
      },
      "type": "text",
      "text": "Culpa architecto nesciunt. Distinctio asperiores dolore. Fuga a consequatur.\nBeatae eum blanditiis. Quia ut aspernatur. Est et est.\nMinus incidunt expedita. Autem vel quia. Nisi nobis quam."
    },
    {
      "block": {
        "id": "cls2ljluw002a2v6nhec80sfu",
        "type": "short_text",
        "title": "<p>What is your favorite aspect of Google Gemini?</p>",
        "encrypted": true
      },
      "type": "text",
      "text": "Nemo aperiam voluptatem.\nSunt cum aut.\nVel accusantium deleniti."
    },
    {
      "block": {
        "id": "cls2lkb4z002h2v6neg2u3axs",
        "type": "address",
        "title": "<p>Please provide your full address for our records.</p>",
        "encrypted": true
      },
      "type": "address",
      "address": [
        {
          "street": "1264 Bashirian River"
        },
        {
          "detail": "Apt. 204"
        },
        {
          "city": "Antoinefort"
        },
        {
          "region": "Tennessee"
        },
        {
          "postal_code": "11952"
        },
        {
          "country": "American Samoa"
        }
      ]
    },
    {
      "block": {
        "id": "cls2lks7x002o2v6n4o653zs9",
        "type": "numeric_value",
        "title": "<p>How many years have you been using Google Gemini?</p>",
        "encrypted": true
      },
      "type": "number",
      "number": 10
    },
    {
      "block": {
        "id": "cls2ll3pd002v2v6n3zja3wmp",
        "type": "email",
        "title": "<p>Enter your email address to receive updates or to be contacted for further feedback.</p>",
        "encrypted": true
      },
      "type": "email",
      "email": "cinthia@hodkiewicz.example"
    },
    {
      "block": {
        "id": "cls2llc4b00322v6nsi7sgi9o",
        "type": "url",
        "title": "<p>If you have a personal website or a portfolio, please enter the URL here.</p>",
        "encrypted": true
      },
      "type": "url",
      "url": "http://metz.example/jacinto_christiansen"
    },
    {
      "block": {
        "id": "cls2llkus00392v6n0b5heal9",
        "type": "file_upload",
        "title": "<p>If you have any screenshots of issues or errors, please upload them here.</p>"
      },
      "type": "files",
      "files": [
        {
          "name": "porro.doc",
          "size": 40389,
          "url": {
            "report": "https://www.moaform.com/reports/aZlOQ0RjJNR64YWb/responses/4EICalTehPKULp1_hzvo2Q/download/submission_files/bab2d598-1405-4da7-82d2-ceabd193e4c5",
            "api": "https://api.moaform.com/v1/forms/jW5o2M/responses/123-45-67890/files/bab2d598-1405-4da7-82d2-ceabd193e4c5"
          }
      ]
    }
  ],
  "thankyou": {
    "id": "cls2lbwjk00010enyd9gjjvur",
    "url": "https://answer.stage.moaform.com/answers/jW5o2M/thankyou/Wo2b1Z09wx5"
  }
}