Sending Qualtrics NPS survey results into Heap

  • 19 July 2023
  • 0 replies
  • 182 views

Userlevel 3
Badge +2
  • Heap Employee
  • 8 replies

As Heap’s Qualtrics owner, I get a lot of questions from CSMs and clients on how to integrate Heap and Qualtrics, so I wanted to share a few posts on this topic. This one will cover how to get Heap data into Qualtrics.

In the following posts, I will cover: how we get Heap data into Qualtrics in order to target surveys & ideas to report + analyze the data in Heap to understand how product behaviors influence your NPS score.

Objective:

  • Send Qualtrics survey response data into Heap in order to provide the foundation for further segmentation & analysis in Heap
  • Bring in the data to enable the NPS dashboard (see doc)

Gather/understand before you get started & you can complete config in about ~30 min:

  1. Your Heap App ID for the Environment where you’ll send this data
  2. The Identifier that you use as your users’ Heap Identity
  3. Access to create Qualtrics Workflows for your desired Qualtrics Project
  4. Know the survey questions in Qualtrics that you’ll want to sync into Heap
  5. Have the Heap Identity identifier available as Embedded Data within Qualtrics
  6. Quick understanding of the Heap Track API

Steps:

eiPbe8sViBwIPhgl_QanvKzzO-qtj6r6IM4LLM37gISh2SoFhbu_ivGe-4atbVGSYrHJFd1_61wVyMehSUys80YBlGQ7JPJvPP-s9f-ydcTsu_ALbPSJwsUI3pr6RE0xK7P9fZMxVhmmZCFPw__J_4w
_dxRnPaXfYj5wIXmaau8x427tAXTU_MDwg0fFzJy_qrUvLAvasr_vmfBDp3YtkOQzWK0mbwASG9oHQmM1fBGbaxtVT0vK-223AzPpqP8DOAmFFA7u2LGX8X_g3-JR1EkFkp6z1hsK022rRQUxHwXX-I
Within Qualtrics, go to your Project and then go to Workflows, create a workflow. Most people will want to trigger this event as soon as a survey response is received.

gE7PgM0jEl-XwUOesvWTmUKnXEvJWEDE1xnKKRTYycrRdN3W3Q67_mxJxGYfqh7zSNf43wVpUSlf_q4WMVlQdnZxYWgxfysE_iZRJBxJxLO39Nwb43o1qWmFDHC1ALCg5YpiT64N3j1gQN0AD1nGqRg
piV4AnqeN8nFEPkkzSlNIEyXqGKSRC-mhXwR3usD8iC4RTKmbhP-Ky7BnAg4XaXfSczNKJ73-ObaOrBjGD-36IEdrJ4K_GptBs4ZJANDZCdy1N-4s2f7jeTtp88ZeCMJuf_QbYQ01_SKZZvEQ7PBeRwChoose the Survey Response Trigger

 

tkiDVtm1LmkkNNr6XtU8g7DWID1kAGZFpo9lWXiPsNPjGX3rYY419ysGUft3SC1b5cArsyQXvJaa7Yzl-l-cGu8VTmO_80vrxDEfK4waVUVerkkp8hQi02XL9JXBnlKkoggOwtk5QPJlLqR-dNRbuzE
s1qYBN_D5LQ2Uk26nwzRyPL6ueP1fHK0KUaVLBXmA0rDKtRnJOwrj50nhVunf8QnVyBOVYMILRoXgY8WPdFzxF1O-ulvPjjaoRklN9E-6NEYZk6Be5pdOSb6w0Qq92i3u8QGbSSxYJBXHiowtlWxmyEDefault options here should be okay for most.

 

fnR0CWoAoXHRe5rkV5M1WIqHpBhs9ujegvMF7PI0IFSRYCAreLqOrfM31gyxA5p4by8xboQliDbt7EVnzXQi_Ax5lNFbtX8vONF1o4pqlcM466_PUXsnWNWy_9M4EOUGU_XOL1A1DbWrCRlS7qbND_4
pNL5jbZ-MR18WNnQG6E28TxKHSF7iyAtBfQ3CDjBbnwbDCa1wMrHxuTyecoACcCwnm_ZGtYOwKKLbyMANJwLJqYxlDwKEHjdgdm5WycY3qoM79YQO9Rc0pu3mfjqiKujTayHC-CEbyO4oBe6ici7JxkAdd a “task”

 

C0aJpcfufxpYmF6ONr0CIQ0Fz7uCOO47Y9iJM9ojZmMHobDMxB_Hd9sgkJwrUhplgy8jwYIRTgBXwSZmldzy6cdcU0PTz2ISiXaWmABOzS9Vov4Wl5Yf3sA6xa3g2yHT6FHQQusiiq_paN2panyFoxM
3MdJLGPAPp34OfJKsBGqsyvwpZ3OVMT14zxsoxGN5btWavQx2SJj_cG_Ba1uulpAVOCAriB76ljXMjNrDog6fWdB7cXrurkHV-owzveQ0BaG2J2-Hg-0mHPP31NxrYbIDL67Kz2KgtUywtR0kfp55IQScroll all the way down to the WebService task

 

fKchb8HgV4LRYpHCat3IP54ZkH_18DxP3R1xCxwaKK0UmUroHu4dAd1VIgEA0xfqEs00unckmga0goJLwYqCwUH-RfYxRgDqJhXu8czvRoJSv6_AUk6ZrYEGpJypR00qtV1M-1qIhe7VaRzUWllPUPE
J-3I1CRe9uJeT2bGC3kkvATTmi5fAB6PC2ZlTbBZi2fR_xUEvcIQqiOS0JXImoJ7I8S67pzlpjaTSWFDctzmyViLTkcA6MEN1EL9uXhzPFMrSynWUv_EOqHCOs05vIWvqpfmNWVO7BX2ozjNS1JmDlwUse a non-authenticated web service

 

6XgQPbae1S2RSC53vhpSEU2IvsMtUlt_NPzRWJfRtVOtY2i930CTeUD7Lq_8AFiESbDuUa7jAlUzdi-gZ82YGGgoCyo8c_ZTcDQx5tZT7fI2lpNHFp9PVC86nWAug2SvB_QRXpjQd0GMeJ3HsIjp_lM
EC7pL4na8-KqnvRlEncUqQq1lSInKYmgeRs7zWTB0zWPpm5Fx_QrA3If6TesSlR0ewYTqlPXSNfH2lmSr8snotNBjt68ICj4N-hD577DkQCISXhy_StOuQHz5sYtHy69Virn-TXnq2tGniTcAfjwQqkNow we get into the bulk of the configuration:

  • Optionally, give your task a name like I’ve done in this example
  • Select request type `POST` and the URL comes from the Heap Track API Docs (same as shown above for everyone)
  • Keep the content type key value pair in the header as default
  • Click Save

bggQM_2Z-d3Wcycz5-VEOyYX-jklIkqbqfYaHlSnsjJGFetEFzQfSdA6MNltRZ7vZUP44pKHS6xPqTLuW1k17IBjiQwSF4DcLgq04DI97INC70yb2baNF3b1atUs645NGk9g9INPP53irMQ_WmjtLHk
bctohD2R212n_QvLjsGq8yawdzQdoPBXN88skt-MZhVFWf6QLof6S_Qj4YcoV54OeW1MyeYxfDb9NJY87Aq0fv84rTQ-42qHzrl8lbApmxxn5Mn1cfUNyhPck-VIrpFWOF9aG-zvOx162iRYUAvTlQw
Configure the actual key value pairs with your survey content:

  • Use JSON key value pair option
  • Add pairs as needed, with at minimum the ones shown in 12 a-e above:
    • a. This will be the same as your Heap App ID
    • b. The name of the event that will show up in Heap - I suggest something like “Qualtrics NPS Response” or “Qualtrics Survey Response” - you can rename it later in Heap if you need to
    • c. Identity will be the identifier that you use in Heap. In this example, email is used as the identifier and it’s pulling from the embedded data in Qualtrics
    • d. idempotency_key - I suggest using the Response ID here - the purpose of this key is to ensure that if the API is called multiple times, you don’t end up with duplicates of the same response recorded in Heap and the Response ID should be unique in Qualtrics
    • e. Properties - I will go into this below
  • Properties: Configure your properties in a JSON Key-value pairs. The Qualtrics editor is clunky, so I suggest staring with a block like I’ve shared below and modify it as needed using a text editor or jsonformatter.io (prettify it to edit, then minify it before pasting it in to E). 
{

   "Overall NPS Score": "${q://QID42/ChoiceGroup/SelectedChoices}",

   "Link to response": "${srr://SingleResponseReportLink?ttl=157784630}",

   "Product - NPS Score": "${q://QID1010/ChoiceGroup/SelectedChoices}",

   "Customer Success NPS": "${q://QID1008/ChoiceGroup/SelectedChoices}",

   "Education - NPS Score": "${q://QID1026/ChoiceGroup/SelectedChoices}",

   "Support NPS": "${q://QID1022/ChoiceGroup/SelectedChoices}",

   "Product - Ability to get valuable business insights quickly from Heap": "${q://QID1031/ChoiceGroup/SelectedAnswers/1}",

   "Product - Ease of learning user interface for new users": "${q://QID1031/ChoiceGroup/SelectedAnswers/4}",

   "Product - Quality of visualization options available in Heap": "${q://QID1031/ChoiceGroup/SelectedAnswers/33}",

   "Distribution Channel": "${e://Field/Q_CHL}",

   "Survey Name": "Heap NPS",

   "ResponseID": "${rm://Field/ResponseID}"

}

awmPDNKRJ_MUTrXd4SVbHywxTNr3i1nHMLdTXaasonCOpdi4RyzSxBfVu0gsnm2QPxGhHpHXdBflAdRwHSb9IvvflN_f7XmzoaKbElrgujQzti_DBU39WSi61vNUq3a7xIdcXx-gQi2bPujaslZMk58These Qualtrics variables can be a bit hard to decipher - follow the example below where you grab those variables and enclose them in double quotes - you can get these by clicking on the {a} as shown below, then formatting them into this JSON before pasting it back into “E” which will contain all the properties.
bVv4O9pKTy1Eco7x4Avxe2hfmqHxyWoVcyWdbyctD2z5ZqcXgHJYsrb_w-ND3BNxrjQ5DzM0F2qUVnt54t5UB_UIU7E_ZvxKIMzLVr6LZGXnayOS-U8r8PU5SuI2Nw2J0CU0vvVRpRUILynXJEkNTN0
mHxnd1dT6FjMto1BXe8qjKGcf1Bz6Rh2bs8qAWLOvzQakTtclQCKSYvVjUDekVNFxF7ud_42T20hcbCI69k4UF-d8VyrzJs9McHqOsRv301H8ICpicsC42SS4uq4PlAcmzPEQFtAqK5EIZm-urL6raI

Test it out and see that it works (scroll down in the same config screen and you’ll be given the option to test it)

sLgeucUMYcan7pqrRUwK3L9i-wpEr4v_0wSXVpzqHbXfhPSozPSb-4ERNtDFgxRlgQQExt_NjtxQSn6WRTmq-oiKVXjHnNDmsDDAGxQNY21mRbW6TFcxE-Ny4_CEInl_B8aT4S3clH3h51kf2GNwa9k
You can enter any test values here, but remember if you’re using your Response ID as the Idempotency Key, each time you want to test it, you need to change it, so if you test it multiple times makes it test1234 and test12345, etc.

Once you get a positive response, go into Heap to make sure your response made it there, shown below with the arrows (probably obvious :-)

yhzj5aCaq5F6jP5FXJ18boJ9_ZVBOmoX-uCsAwIVMCW0BDI2U9-YytmrFrPO-oBI1QwdCi9ODNT3ysXIrber9ZI8WGS6vg_kEO70cC5Zv5l5PiC1r_Hpn8slnIoIPoZaclUUa_FUv9P-p9NuLULyb-s
Define the event by clicking “Define” - this is where you have the opportunity to rename the event from what you’ve input in the Qualtrics Webservice if you need to.


Now head over to Definitions where you can check out the properties and further customize your event definition. In “D” you can group by various properties that you sent in if you want to further verify. At this point, your event is ready for analysis in Heap!

QV1HkXcQ0KTRV4KTN__KpBTfzettyemwnYpdkD3csk26qx1HsM6C44M4rucn6sXTAmVsny0o4DPqJ1vwqZeo1uJm1GyqSFqVuwxUnSh_ms9DfUMawv5Bzms9dpxbuSPUrKIMeNACJfwygRhIMtoDBqI


0 replies

Be the first to reply!

Reply