Capturing survey responses client-side — Custom Code vs Qualtrics Adobe Analytics Extension | Experience Community
Skip to main content

Capturing survey responses client-side — Custom Code vs Qualtrics Adobe Analytics Extension

  • February 26, 2026
  • 1 reply
  • 22 views

Forum|alt.badge.img+1

Hello Everyone,                                                                                                                                            
                                         
We run Qualtrics Website Intercept surveys on our websites. We use Tealium and Adobe Analytics for reporting.                                           
                                                                                                                                                          
What we're tracking per user:                                                                                                                           

  1. Survey funnel events — when the survey is displayed to a user, when the user answers the first question, and when the user completes the survey  (at each user level) 
  2. Individual question responses — question text + answer for every question.

 
Current plan:

  1.  For question responses, we plan to use the Qualtrics Adobe Analytics Extension. It handles everything automatically — sends question-answer pairs to AA with no custom code per question. The known trade-offs are the 24hr processing delay, 60 embedded data field limit, and no free-form text support.
  2. For funnel events, the Qualtrics AA Extension doesn't help. We need to track at the individual user level when a survey is displayed and when a user starts answering — but Qualtrics only creates response records when a user clicks Next. If a user sees the survey but doesn't interact, there's no response record. So we use custom JavaScript in the survey to tell Tealium when the survey is shown, started, and completed, and Tealium forwards these to AA in real-time. 

     

This means we'd be maintaining two separate data pipelines for the same survey — the AA Extension for responses, and custom JS + Tealium for funnel events.

 

What we're exploring:
To consolidate into one pipeline, we're exploring sending individual question responses via the same custom JS + Tealium path as the funnel events.

 
We've tested using addOnPageSubmit with the SurveyEngine API and it works, but we have two concerns:

  1. No global JS hook -- The addOnPageSubmit code must be added to every question individually. There's no survey-level event we can hook into. Since each of our survey pages contains one question, this means modifying every page. We tried Header scripts but they don't have access to SurveyEngine.addOnPageSubmit or QuestionData.getInstance.
  2. No standard answer extraction — Each question type requires different API methods to extract answers, making the code fragile and hard to maintain.  The API method varies by type — getSelectedChoices() + Choices[id].Text for MC, DOM querySelector('textarea') for Text Entry (since getTextValue() doesn't work for standalone TE), getChoiceValue() for Slider and Rank Order, getTextValue(choiceId) for Form Fields. We've validated MC single/multi, Text Entry, NPS, Slider, Rank Order, and Form Field — but the inconsistency across types and the need for per-question JS makes this fragile.

 

Our questions:

  1. Is there a way to run JavaScript globally on every page submit — without adding code to each question? 
  2. Is there a standard or recommended way to capture question + answer details for every question on the client side with minimal per-question setup?
  3. For our use case (real-time funnel tracking + question responses), would you recommend the AA Extension + custom JS hybrid, or fully custom client-side tracking?

 
Thanks in advance for helping with this.

1 reply

Lpena
Qualtrics Employee
Forum|alt.badge.img+3
  • Qualtrics Employee
  • March 4, 2026

Hey there! It looks like you've run into some of the core architectural limits of the platform when it comes to global listeners. To answer your main point, there isn't a native global JavaScript hook that triggers on every page submit across a survey; currently, the addOnPageSubmit function has to be defined within each individual question. Since the header scripts don't have a direct way to hook into a universal SurveyEngine event for every question automatically, it does make sitewide tracking a bit of a manual process.

Regarding the data extraction, you’re spot on—there isn't a standardized client-side method to pull answers because different question types require different API calls, like getSelectedChoices versus getChoiceValue. For your real-time funnel tracking, a hybrid approach is likely your best bet. Using the Adobe Analytics Extension handles the response data well, while custom JS via Tealium can fill the gaps for those real-time funnel events that the extension might miss due to processing delays. Going fully custom is definitely possible, but as you noted, it's pretty fragile and high-maintenance.

If you find this is blocking your workflow or if you think you've hit a specific bug with how the script is executing, it might be worth opening a ticket with the experts. You can head over to the Customer Success Hub, log in with your account credentials, and use the technical support tile to get a deeper look into your specific setup: https://support-portal.qualtrics.com/ 🛠️

Would you like me to find the specific documentation for the Adobe Analytics Integration to help refine that hybrid approach?