How to Add Voice Responses to Your QuestionPro Surveys
QuestionPro exposes JavaScript Logic on its Research and Team editions, and that is all Voice Capture needs. One Pre JS block, pasted once, turns any open-ended question into a spoken one — with the transcript waiting in your dashboard before fieldwork closes.
Why put voice on a QuestionPro open end
The open-ended question is where a QuestionPro study earns its keep, and it is also where respondents give up first. Typing a considered paragraph into a phone keyboard is work, so most people write the shortest thing that will let them continue.
Across seven client studies we measured, typed answers averaged 10 words and spoken answers to the same questions averaged 23 — about twice as many words, from an unchanged questionnaire (how we measured this). Nothing about the survey design changes. The respondent simply gets a microphone button next to the text box, and whoever prefers to type still types.
Voice Capture handles the recording and the transcription. You keep QuestionPro as your survey platform, your sample, your logic and your reporting.
Check your QuestionPro edition first
This is the one thing worth confirming before you spend any time at all: JavaScript Logic is a Research and Team edition feature. It is not exposed on Essentials or Advanced, and neither are the webhooks that sit alongside it. On those editions the block below will look perfectly correct in the editor and never execute — which is a confusing failure, because nothing errors, nothing warns, and the survey simply renders without a microphone.
If you are on Essentials or Advanced, there is no supported workaround. What you can do is run the pilot on a survey platform that does allow custom JavaScript, or use the generic embed on a web form you control, and make the edition upgrade a decision you take with data in hand rather than on spec.
What you need
- A Voice Capture account. The Free Trial includes 250 credits — one credit is one transcribed response — and asks for no credit card, which is enough to field a real open end rather than a demo.
- A QuestionPro Research or Team edition survey, with edit rights and access to Logic → JavaScript Logic.
- One open-ended text question on the page you want voice on.
- About five minutes. Nothing is installed on QuestionPro's servers — the widget runs in the respondent's browser.
Step 1 — Create the Voice Capture project
Log in and click New Project. Name it after the study so you can find it in six months ("Q3 Brand Tracker — QuestionPro"), and set the transcription language to the language your fieldwork is actually in. Save, and the project page shows you a project key that looks like proj_XXXXXXXX. That key is the only thing that ties recordings to your account, so copy it exactly — a truncated paste is the single most common reason a setup goes silent.
While you are there, set the maximum recording length. Ninety seconds suits most open ends; the Free Trial caps at 90 seconds, Essential at 180 and Professional at 300.
Step 2 — Paste one block into Pre JavaScript Logic
In the QuestionPro survey editor, go to Logic → JavaScript Logic → Pre JS and paste the block below. Replace proj_XXXXXXXX with your project key, and set data-lang to your fieldwork language.
window.__VC_PRELOADED=true; try {
var ta = document.querySelector('textarea.form-input:not(.hidden-text)');
if (ta && !document.getElementById('gv-container')) {
var wrap = document.createElement('div');
wrap.id = 'gv-container';
wrap.setAttribute('data-project','proj_XXXXXXXX');
wrap.setAttribute('data-target','textarea[id="'+ta.id+'"]');
wrap.setAttribute('data-lang','en');
ta.parentNode.insertBefore(wrap, ta);
if (!document.getElementById('gv-script')) {
var s = document.createElement('script');
s.id = 'gv-script';
s.src = 'https://api.voicecapture.ai/voice.js';
s.onload = function(){ try { if (window.GeniusVoice && GeniusVoice.init) GeniusVoice.init(wrap); } catch(e){} };
document.body.appendChild(s);
}
}
} catch(e) {}
That is the whole install. There is no second snippet, no header script tag and nothing to add to the question text. Unlike the Alchemer setup — which needs a script in the survey head plus a per-question JavaScript Action — QuestionPro's Pre JS slot lets one block do both jobs.
Step 3 — Understand what the block attached to
Read the first line and you know everything about this integration's one real constraint. The block finds the visible open-ended answer field on the page and inserts the microphone immediately above it.
Two consequences follow. The good one: you never edit the question text, so the integration survives someone rewording the enunciation, changing the answer field's size, or reordering the page. The awkward one: a page with two open-ended questions is ambiguous, and a page whose open end is hidden by display logic until another answer is given has nothing to attach to at the moment the code runs. Give each voice-enabled open end its own page, visible from the start.
Step 4 — Decide how transcripts will join back to your data
This is the step people skip and regret. Alchemer hands the widget a session id through a merge code, so transcripts line up with survey responses automatically. QuestionPro does not pass anything equivalent into Pre JS, which means that by default your transcripts arrive carrying a project key and the identifier of the field they were attached to — and no QuestionPro response id.
If your analysis needs voice answers sitting on the same row as the rest of the interview, wire a QuestionPro merge field into a data-session attribute on the container, next to the other setAttribute calls, before you go to field:
// add this line alongside the other setAttribute calls,
// substituting whatever merge field carries your response id
wrap.setAttribute('data-session', myQuestionProResponseId);
Do it before fieldwork. Matching on timestamp afterwards works for a handful of test interviews and is thoroughly unpleasant on a real sample.
Step 5 — Test with a real recording
Open the survey's test link and record ten or fifteen seconds. Then watch the Voice Capture dashboard: the transcript should land within about half a minute, already transcribed, showing the session value if you set one.
If nothing arrives, work through these in order — they cover nearly every case:
- Project key. Compare it character by character with the dashboard. Wrong keys fail silently by design.
- Edition. Confirm Research or Team. A block sitting in a JavaScript Logic field on an edition without the feature is inert.
- The open end. Is there a visible open-ended text question on that page, at the moment the page loads?
- The slot. Confirm the code went into Pre JS, which is where it is written to run.
Test from a phone as well as a laptop. Mobile is where most of your sample will be, and it is where voice does the most work.
Step 6 — Field it, then export
Publish the survey as usual. Recordings upload and transcribe as they happen, so you can read the open end filling up while fieldwork is still live — useful for catching a badly worded prompt on day one instead of at tabulation. Export transcripts to CSV on any plan, or to Excel on a paid credit pack, and join them to your QuestionPro export.
What your respondents actually see
A single microphone button above the text field, with your prompt on it. Recording uses the browser's own audio API, so nothing is installed and the only permission dialog is the standard microphone prompt any website would show. Respondents can record, play their answer back and re-record before moving on.
If a browser refuses microphone access — an old device, a locked-down work laptop, a declined permission — the widget never mounts and the QuestionPro text field is left exactly as it was. Nobody is prevented from answering because voice was unavailable to them, which matters both for data quality and for anyone who has to sign off on accessibility.
Frequently asked questions
Does this work on QuestionPro Essentials?
No. JavaScript Logic is a Research and Team edition feature. That gate is QuestionPro's, not ours, and there is no supported way around it.
Do respondents need to install anything?
No. It is the browser's audio API, the same one a video call uses in a tab. No app, no plugin, no download.
Is the audio stored?
No. Audio is transcribed and the recording is not kept — only the resulting text, which travels over an encrypted connection. See the Privacy Policy for the full picture.
Can I have voice on more than one question?
Yes, one voice-enabled open end per page. The block attaches to the answer field it finds on the page it runs on.
Will the transcript appear inside my QuestionPro response?
No. Transcripts live in Voice Capture and are joined to the QuestionPro data at export, on the session value you supplied in step 4. It is a reporting join, not a live field in QuestionPro.
How accurate are the transcripts?
Good enough to read and code directly, and not flawless. Noisy rooms, crosstalk and one-word utterances all produce weaker text, so the dashboard lets you edit any transcript before export and flags low-confidence ones rather than hiding them.
Getting better answers, not just longer ones
- Write the prompt to be spoken. "Please describe your experience" produces a written-sounding sentence. "Tell us what happened, in your own words, like you were telling a friend" produces something you can quote.
- Keep the cap tight. Ninety seconds yields focused answers; three minutes yields rambling that nobody on the analysis side will thank you for.
- Put the voice open end early. Enthusiasm for talking decays across a long questionnaire much like everything else.
- Pilot on one question. Run one wave with voice on a single open end and compare it against the same question in your last wave. That comparison is more persuasive internally than any vendor's number, including ours.
Set it up
The full setup reference, with the copy-paste block, prerequisites and the troubleshooting list, lives on the QuestionPro integration page. If you also run studies in Alchemer, the equivalent guide is How to add voice responses to your Alchemer surveys, and for the broader methodology there is the complete guide to voice surveys in market research.
The Free Trial includes 250 credits and no credit card, which is enough to put voice on one real open end and see the transcripts for yourself.
Ready to add voice to your surveys?
Start free — no credit card required. Setup takes 2 minutes.
Try Voice Capture Free