Add voice responses to your Alchemer surveys in 2 simple steps — the same steps if your account is still called SurveyGizmo. Works with any Alchemer plan that can add JavaScript Actions.
AvailableSurveyGizmo was renamed Alchemer in October 2020. It is the same platform and the same account — only the name changed — so this is the guide you want, and nothing in the steps below differs for an older account.
The setup needs two things: the survey’s custom HEAD, and the ability to add a JavaScript Action to a question. If you are checking whether your account can do this, those are the two settings to look for, and the prerequisites below say exactly where they live. Other platforms are listed on the integrations page.
Go to Style > HTML/CSS Editor > Custom HEAD and paste this script tag. This only needs to be done once per survey.
<script src="https://api.voicecapture.ai/voice.js" defer></script>Add an Action > JavaScript on the question page and paste this code. Change the QID variable to your Alchemer question ID number and replace proj_XXXXXXXX with your project key from the dashboard.
(function() {
var QID = '24'; // Change to your Alchemer question ID number
if (document.getElementById('genius-voice-q' + QID)) return;
var box = document.querySelector('[id*="-' + QID + '-box"]');
if (!box) { console.warn('[GeniusVoice] No Alchemer box found for question ' + QID); return; }
var c = document.createElement('div');
c.id = 'genius-voice-q' + QID;
c.className = 'genius-voice-capture';
c.setAttribute('data-project', 'proj_XXXXXXXX');
c.setAttribute('data-question', QID);
c.setAttribute('data-lang', 'es');
var sid = '[survey("session id")]';
if (sid.indexOf('[') === -1) c.setAttribute('data-session', sid);
var opts = box.querySelector('.sg-question-options');
if (opts) box.insertBefore(c, opts);
else box.appendChild(c);
if (window.GeniusVoice) GeniusVoice.init(c);
})();Open the Alchemer preview, click the microphone and speak for ten or fifteen seconds. The transcript should appear in your Voice Capture dashboard within about half a minute, tagged with the question ID you set. If nothing arrives, the project key or the QID is wrong — between them those two account for almost every silent install.
Publish the survey as usual. Each recording uploads and transcribes as it happens, so you can read the open end filling up during fieldwork instead of waiting for the close. Export the transcripts to CSV on any plan, or to Excel on a paid credit pack, and join them to your Alchemer export on the session id.
[survey("session id")]Alchemer's built-in merge code that uniquely identifies each respondent session.
The widget renders inside the question box, above Alchemer’s answer options, as a single microphone button with your prompt text. There is nothing to install: recording uses the browser’s own audio API and the ordinary microphone permission prompt any website would trigger.
A respondent can record, listen back and re-record before moving on. If the browser will not grant microphone access — an old device, a locked-down work laptop, a refused permission — the widget hides itself and the Alchemer text box stays fully functional, so no answer is ever blocked by the integration.
Phones behave the same way, and that matters more than it sounds. Most of the extra answer length comes from respondents who would have typed three words on a phone keyboard and instead talked for twenty seconds.
Audio uploads the moment the respondent stops recording and is transcribed automatically. Audio files are not kept — only the resulting text — and everything travels over an encrypted connection.
Every recording carries three identifiers: your project key, the question ID from the snippet, and Alchemer’s own session id, pulled in through the [survey("session id")] merge code. That third one is the join key: it is what lets you line the transcripts up against the rest of the Alchemer response, one column, no manual matching.
From the dashboard you read and edit transcripts as they arrive, and export the set to CSV, or to Excel on a paid credit pack. Spoken answers to the same question run about twice as many words as typed ones — the measurement, its sample and its limits are published in how we measured this.
The snippet could not find the question box. It looks for the Alchemer element whose id contains your question number, so if the QID variable does not match the real question ID it logs a [GeniusVoice] warning to the browser console and stops. Open the preview with the console visible — the warning names the ID it looked for.
Almost always a wrong or truncated project key. Copy it again from the dashboard; it is the data-project value in the snippet. A key that is close but not exact fails silently, because the widget has no way to tell a typo from a project it is not allowed to write to.
The session id merge code did not resolve. Alchemer only fills merge codes inside a running response, so a snippet exercised outside a live or preview survey leaves the value unresolved — and rather than store the literal merge code as a session, the widget skips the attribute entirely.
Each credit pack caps recording length: 90 seconds on the Free Trial, 180 on Essential, 300 on Professional. If respondents are regularly hitting the ceiling, the question is probably doing the work of two — splitting it usually produces better material than a longer limit would.
A longer, screenshot-free walkthrough of the same setup, plus prompt-writing advice and the questions researchers ask most often before their first voice study.
How to add voice responses to your Alchemer surveysOur AI assistant can walk you through the setup step by step.
Set up Voice Capture in under 5 minutes. No credit card. No commitment.
Get Started FreeWe use cookies to improve your experience and analyze site traffic. Learn more