integrationsurveysurveymonkey

Survey Monkey API Integration


We were thinking to implement Survey Monkey API Integration.

But we have few doubts regarding it which goes as:

  1. Do people really use it. I mean, Do people outside of Survey Monkey found it useful?

  2. How do i store back the responses of survey done through Survey Monkey?

Won't i need the same type of database as Survey Monkey would have to store responses?

Please share much more details about the integration. Pros & Cons about it ?

Thanks...


Solution

  • With regards to the first concern, yes many people use the SurveyMonkey API. You can see a list of public apps we partner with here. But there is many more integrations being used by companies not featured there. As well as lots of personal use and even more people using the API to integrate with their internal infrastructure.

    Since you're interest is in pulling out responses, I think what you'll be using the most is the bulk response fetching endpoint.

    The endpoint to get all your responses is:

    GET /surveys/<survey_id>/responses/bulk
    

    In the documentation, you can see an example request and response to see what the data looks like, also some code examples. But the general response for bulk would look something like:

    {
      "page": 1,
      "per_page": 100,
      "total": 1000,
      "data": [{
        "id": "5007154325",
        "collector_id": "50253586",
        "survey_id": "105723396",
        "custom_variables": {...},
        "date_modified": "2016-01-17T19:16:34+00:00",
        "date_created": "2016-01-17T19:07:34+00:00",
        ...
        "pages": [{
          "id": "103332310",
          "questions": [{
              "answers": [{
                  "choice_id": "3057839051"
              }],
              "id": "319352786"
          }]
        }],
      },
      ... second response,
      ... third response,
      ...
      ]
    }
    

    Basically a list of full responses, the metadata associated with the response and then in the pages key has all the choices that were actually responded to.

    The format of pages is always in the format

    [{
        "id": "<Page 1's ID>",
        "questions": [{
          "id": "<Question 1's ID>",
          "answers": [{
            "choice_id": "<ID of the choice, if there is one",
            "row_id": "<ID of the row, if there is one",
            "col_id": "<ID of the column, if there is one",
            "other_id": "<ID of the other option, if there is one",
            "text": "Any open ended text"
          },
          ... (other answers to the same question: case checkbox, multiple rows)
          ]
        },
        ... next question
        ]
    },
    ... next page
    ]
    

    Note that this is not the same format that the data is stored in the SurveyMonkey database - to answer your question about needing the exact same database as SurveyMonkey. The response is always returned for any endpoint in our API as JSON format, you can then move/format/store the data in any way you want - you'll just have to do the conversion to your database yourself.

    If you need your entire survey data in order to reference what all the IDs from the responses API mean, you can see that here.

    The endpoint is:

    GET /surveys/<survey_id>/details
    

    You should be able to solve your problems using the SurveyMonkey API if you plan to use SurveyMonkey as the platform for your integration. Hopefully this answers all your questions.