Export survey results with raw user data
  • 21 Mar 2024
  • 3 Minutes to read

    Export survey results with raw user data


      Article Summary

      Overview

      Export Raw User Data API prepares the raw data for events and attributes together, and also allows you to export App Survey results for multiple requested events and attributes of a user (e.g. name, phone number, age, city, etc.) into Insider's AWS S3 bucket. The request returns a link to partner's webhook endpoint, and this link enables you to have access to the raw user data and transfer it to your end.

      When a user answers a survey question and submits their response, this action triggers the survey_result event along with its camp ID, variant ID, question, answer, and timestamp event parameters. This event and its parameters can be listed on the respective user's User Profile.

      Your title goes here

      You should provide a webhook endpoint in the request to be notified when the export link is ready. After sending a request, your webhook endpoint receives an export link as follows to have access to the raw user data.

      https://insider-data-export.useinsider.com/{partner name}/p/{file name}

      You can export raw user data in the following use cases:

      • Analyze user information using a business intelligence tool.
      • Sync the data that you want via daily jobs.
      • Get detailed insights about users who submit responses on surveys.

      Endpoint and Headers

      POST https://unification.useinsider.com/api/raw/v1/export

      Headers

      HeaderSample ValueDescription
      X-PARTNER-NAMEmybrandThis is your partner name. Navigate to Inone > Inone Settings > Account Preferences to copy your partner name. The partner name should be lowercase.
      X-REQUEST-TOKEN1a2b3c4e5d6f

      This key is required to authorize your request. Refer to API Authentication Tokens to generate your token.

      Content-Typeapplication/jsonThis header specifies the media type of the resource.

      Body Parameters

      Before starting the implementation, make sure to share the following information with Insider team:

      • A webhook endpoint that will be notified when the export link is ready
      • A preferred format: CSV or Parquet
      • A list of attributes, events, and event parameters that you want to export
      • A dynamic segment that you want to export
      Your title goes here
      You can consult Insider team on which parameters to add in the request.
      your title goes here
      Each request must have attributes or events object to return the respective user profiles. In the event of using events object, its keys are required as stated in the table below.
      ParameterDescriptionData TypeRequired
      segmentSegment ID of the user filter. To find yourDynamic Segment ID, navigate to Audience > Segments > Saved Segments > Dynamic Segments. Click on the Segment whose ID you want to get. You can see it on the top right corner on the summary page. Refer here for further information.ObjectYes
      attributesArray of attributesArray (of string)No
      eventsArray of eventsObjectYes
      start_date
      Beginning of the date range for the wanted eventsNumberYes
      end_date
      End of the date range for the wanted eventsNumberYes
      wanted
      Object of the wanted eventsArrayYes
      event_name
      Name of the eventStringYes
      params
      Event parameters of the eventArray (of string)Yes
      formatThe export formatStringYes
      hookYour webhook endpointStringYes

      Sample Example

      Sample Request

      The sample below displays a request to get the survey results with raw user data (e.g. attributes such as insider ID(iid), unique device ID (udid), phone number(pn), unique user ID (uuid), email (em), app version, model (mo), and device software version (ov)).

      curl --location --request POST 'https://unification.useinsider.com/api/raw/v1/export' \
      --header 'X-PARTNER-NAME: mybrand' \
      --header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \
      --header 'Content-Type: application/json' \
      --header 'Cookie: __cfduid=d1a0bc0c8335c7fecbd3485839787329b1615112066' \
      --data-raw '{
         "segment": {
              "segment_id": 123456789
          },
         "attributes":[
              "iid",
              "udid",
              "pn",
              "uuid",
              "em",
              "app_version",
              "mo",
              "ov"
          ],
         "events":{
            "start_date":1606311893,
            "end_date":1611582293,
            "wanted":[
               {
                  "event_name":"survey_result",
                  "params":[
                     "timestamp",
                     "answer",
                     "camp_id",
                     "question",
                     "variant_id"
                  ]
               }
            ]
         },
         "format":"parquet",
         "hook":"xyz.test.com"
      }'

      Sample Responses

      200 OK

      When the data is ready to download, you will receive the export link on your webhook URL as displayed below.

      {"url":"https://insider-data-export.useinsider.com/{partner name}/p/{file name}"}
      Your title goes here
      If a user has performed the requested event(s) N times, that user will be displayed in N rows in the exported file. However, since attributes always display the latest information of the user, the attributes on N rows will be the same.

      429 Too Many Requests

      If you exceed the rate limits, you receive an error shown below:

      {
          "error": "rejected: too many requests"
      }
      • 400 Empty Partner
      • 400 Empty Token
      • 403 Authentication Failed

      Limitations

      • All functions must be executed with a simple HTTPS POST request.
      • Only a response that states if the request is successful or failed can be received via this API. No data can be inserted.
      • The request token should be provided on the request header. If the token is incorrect, the operation will not be executed.
      • The exported data can be in CSV, Parquet or JSON formats.
      • The export link expires in 24 hours after it is ready.
      • The rate limit is 1 request per day. The API can be called only once in 24 hours with respect to the UTC time zone. The limitation timeline resets at UTC 00:00.
      • The value of X-PARTNER-NAME header should be lowercase.

      Was this article helpful?

      ESC

      Eddy, a super-smart generative AI, opening up ways to have tailored queries and responses