Importing Responses to an Assessment Using the questionnaireResponses Endpoint

The /questionnaireResponses endpoint of the Engagement Risk Assessment External Response Import API imports responses to engagement risk assessments.

Context

Based on the result from the /assessment endpoint, the /questionnaireResponses endpoint imports responses for the relevant supplier assessments.

Procedure

  1. An engagement requestor creates an engagement request. Based on the requestor's answers to the business details and inherent risk screening questionnaires, required risk controls are assigned to the engagement request. Each control specifies at least one assessment, a questionnaire whose answers will help the risk control reviewer determine the effectiveness of the supplier's risk control in the area addressed by the assessment.
  2. The assessments/{assessmentName} endpoint retrieves the list of suppliers for which a specified assessment is currently Waiting for Response.
  3. For each supplier from the response to the assessments/{assessmentName} endpoint, the /questionnaireResponses endpoint imports the supplier's response to the assessment from the external system.
    • As part of the setup, you defined an External Field Mapping (the fieldMapping) for each question within a questionnaire for which responses will be imported.

    • In the POST body, you specify identifying information about the survey.

      • Within the answers block, include the fieldMapping for each question and details of the answer.

        Example:
        POST {{runtime_URL}}/questionnaireResponses&realm={{realmName}}
        {
          "assessmentName": "Information Security",
          "supplierId": "S1234567",
          "sourceSystem": "ABC123",
          "userId": "??",
          "answers": [
              "fieldMapping": "MQ42.Q12",
              "answerType": "integer",
              "multiValueAnswer": [
                "3000"
              ],
        }
      • To submit the questionnaire with default answers, use the markSubmitted field instead.

        Example:
        POST {{runtime_URL}}/questionnaireResponses&realm={{realmName}}
        {
          "assessmentName": "Name PoC",
          "assessmentProjectId": "WS123456789", 
          "supplierId": "S12345",
          "sourceSystem": "External System",
          "userId": "id12345",
          "answers":[ ]
        }

    The request returns an error code indicating success or failure of the update operation.