- Brand
- Voicepanel
- Category
- Data & Analytics
- Primary Subcategory
- Customer Feedback & Research Platforms
Integration details
Description
Measure what real people think about new products, prototypes, messaging, and more. Let AI conduct 100s of feedback sessions so you can launch with confidence.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Customer Feedback & Research Platforms
- Secondary Subcategories
- None listed
- Brand
- Voicepanel
- Access
- Account required
- First tracked
- 2026-08-28
- Tool count
- 54
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Voicepanel
Get updates when Voicepanel’s Discoverability Score or category rank changes.
Competing in ChatGPT Customer Feedback & Research Platforms
View Category54 tools agents can invoke
Add one treatment label to the scenarios of a scenario set. A treatment is what one variant shows for a scenario, e.g. the search results of the current ranking ("control") or of a new one ("variant-b"). An eval run grades one label across the scenarios that have it. Give each treatment the `scenario_id` from get_scenario_set and an `artifact`. The judge reads only the artifact's `summary`, `listings`, and `pages`, so each artifact needs at least one of them. Use `listings` for structured result rows. A scenario holds one treatment per label: if a scenario already has this label, the call fails unless you pass `replace: true`. With `replace`, only the scenarios in this call change. Send at most 100 treatments per call; call again with the same label for more.
create_treatments
Check which quotes can be used in a highlight reel, and how long the reel would run, before you call create_highlight_reel. Takes the same `highlights` list create_highlight_reel takes, and creates nothing. For each quote it returns `found`, and on a match `matched_text` (the words the recording holds, which can differ from the quote you passed), `duration_seconds`, and `media_type` (the recording a reel would play it from). A quote with found: false gives a `reason` and would fail create_highlight_reel, so reword it, drop its `type`, or drop the quote. `duration_seconds` at the top level is how long a reel of the found quotes would run — use it to pick quotes for a target length. It returns no file links: build the reel with create_highlight_reel and open the link it gives you.
check_quotes
Get a short-lived pre-signed URL to upload ONE media file (image/video/audio) directly to Voicepanel storage, for use as study stimulus. This is for agent/coding clients that can run a shell command (e.g. Claude Code); a plain chat client cannot use it — use create_upload_session (a hosted upload page) for that. Returns `upload_url` (a pre-signed PUT URL) and `public_url`. To upload, the client must run the following — WITH THE USER'S APPROVAL, since it reads a local file and runs a shell command: curl -X PUT "<upload_url>" -H "Content-Type: <mime_type>" --data-binary @<local-file-path> After the PUT succeeds, use `public_url` as the stimulus `url` in create_study/edit_study. Handles large files (e.g. video) that inline uploads can't. Accepted types: JPEG, PNG, GIF, WEBP, MP4, MOV, MP3, M4A, WAV, WEBM (SVG and other types are rejected). HTML is accepted only for accounts with the HTML stimulus feature enabled, and is rejected otherwise.
create_asset_upload_url
Create a grader: an LLM judge that scores each treatment on its rubrics. Give it at least one rubric. Pass `rubric_ids` to reuse rubrics from list_rubrics as they are, and `rubrics` to create new ones with the grader. Leave out `system_prompt` and `user_prompt_template` to use the default judge prompts. A custom user prompt template can use {{scenario_title}}, {{scenario_need}}, {{scenario_context}}, {{scenario_metadata}}, {{rubrics}}, and {{treatments}}.
create_grader
Create a short-lived web link the user can open to upload their own media (images, video, or audio) from their device for use as study stimulus. Returns `upload_url` — present this link to the user and ask them to open it and upload their files. Once they confirm they are done, call get_upload_session with the returned session_id to retrieve the uploaded files' public URLs, then use those URLs as stimulus in create_study/edit_study. Use this when the user has a local media file to add; media that is already hosted at a public URL (a website, a YouTube link, a Figma prototype, etc.) can be referenced directly in the stimulus without uploading.
create_upload_session
Create a rubric: one numeric scale that a grader scores treatments on. Give each level a label and a description of what a treatment at that level looks like. If you leave out `scale`, the rubric gets a 0–5 scale from "Does not meet" to "Fully meets". To create rubrics and a grader in one step, pass the rubrics to create_grader instead.
create_rubric
Create a scenario set from a list of user needs. Each scenario needs a `need`: one user need, in the user's words, e.g. "Find a waterproof jacket under $150 for a hiking trip". `title` is optional; the server derives it from the need when you leave it out. `metadata` holds string attributes you can group results by later, e.g. { "segment": "new_user" }. Send at most 200 scenarios per call. For a larger list, split it into several sets.
create_scenario_set
Create an eval that pairs a scenario set with a grader. You can leave out `scenario_set_id` and `grader_id` and attach them in the app later, but start_eval_run needs both. `treatment_labels` names the treatments to compare; each run adds its label to this list.
create_eval
Create a highlight reel of participant quotes and get a Voicepanel link to watch, edit, and export it as a video. Give each quote with its study_id and response_number, in the order the reel should play. The response number is what the dashboard shows, and is `seq_num` in the output of list_responses and get_response. Copy each quote from the transcript (get_response, get_analysis_question, or get_analysis_insight). Voicepanel finds it in the recordings and adds the timings; small edits to a quote still match. `type` requires one recording: audio, video, screenshare, or mobile_screenshare. A quote that recording does not hold fails, rather than falling back to another recording. Omit `type` to use whichever recording holds the quote. If any quote is not found in the recordings, nothing is created and the error lists each quote that failed, so you can fix those quotes and call again. On success it returns the reel id, its page URL, the number of highlights, and the reel's length. Use check_quotes to test the list first, and to see how long the reel would run.
create_highlight_reel
Create an intercept distribution — invites visitors of the user's own web application via the embedded Voicepanel snippet (shown as 'Intercept' in the Voicepanel app; stored as type 'website'). To qualify visitors before the study, pass `screener_questions` directly, or pass an `audience` description to have the screener generated automatically. Only use this when the user has chosen an on-site intercept; if they haven't said how they want to collect responses, ask them to choose between a link (create_link_distribution), an intercept, or panel recruiting (create_panel_distribution). Returns `url`, a dashboard link to view the distribution — share it with the user.
create_intercept_distribution
Create a link distribution — a shareable link the user sends directly to their own respondents. To qualify respondents before the study (useful for reaching a niche audience by sharing the link widely and screening), pass `screener_questions` directly, or pass an `audience` description to have the screener generated automatically. Only use this when the user has chosen link sharing; if they haven't said how they want to collect responses, ask them to choose between a link, an on-site intercept (create_intercept_distribution), or panel recruiting (create_panel_distribution). Returns `share_url`, the public link respondents open to take the study, and `url`, a dashboard link to view the distribution. Note the distribution starts in draft — publish_distribution makes the share_url live.
create_link_distribution
Create a panel distribution — participants are recruited automatically from a research panel. Created in draft status only; this tool does not contact the panel provider. Publishing a panel recruit is not available over MCP — tell the user to publish it from the Voicepanel dashboard, which is where credits are spent and recruiting starts. Only use this when the user has chosen panel recruiting; if they haven't said how they want to collect responses, ask them to choose between a link (create_link_distribution), an on-site intercept (create_intercept_distribution), or a panel. Call suggest_panel_provider first to pick the `provider`. Pass an `audience` description to have targeting filters and a screener generated automatically (required for 'respondent'). Returns `url`, a dashboard link to view the distribution — share it with the user.
create_panel_distribution
Create a new segmentation to categorize responses for a study
create_segmentation
Create a new study. If you are writing the `plan` yourself, call get_study_design_guide first — it covers the plan fields, the research rules this account applies, and the constraints that fail validation. Returns `url`, a dashboard link to open the study — share it with the user.
create_study
Edit an existing distribution. Panel distributions can only be edited while in draft status.
edit_distribution
Edit an existing study. If you are writing the `plan` yourself, call get_study_design_guide first — it covers the plan fields, the research rules this account applies, and the constraints that fail validation.
edit_study
Generate a complete study using AI from a natural language description. The AI will create a full study plan with sections, questions, and conversation guides based on best practices in user research. Use this when you have a research objective or description and want the AI to design the study structure. Use create_study instead if you want to manually specify study fields. Returns the study with `url`, a dashboard link to open it — share it with the user.
generate_study
Get one scenario set with its scenarios in order, and the treatment labels attached to it. A treatment is the artifact one variant shows for a scenario; `treatment_labels` gives each label and how many scenarios have it. Pass a label to start_eval_run. Add treatments with create_treatments.
get_scenario_set
Get current account information (name, subscription tier, credits, limits)
get_account
Get one eval and all of its runs, oldest first. Each run gives its treatment label, status, and summary: `mean_scores` per treatment on a 0–1 scale, and the number of scenarios graded. Use get_eval_run for the score and rationale of each scenario.
get_eval
Get one eval run: its status and summary, and one result per graded scenario. Each result gives the scenario title, `overall_score` on a 0–1 scale, and `scores` keyed by rubric ID, with the raw `scale_value` and the judge's `rationale`. While `status` is "running", `graded_count` rises toward `scenario_total`.
get_eval_run
Get a full analysis insight with evidence quotes and response IDs
get_analysis_insight
Get AI-generated analysis insights (the findings/summary) for a study — the latest completed summary, evidence omitted. Start here for high-level findings. Use get_analysis_insight for full evidence quotes. The returned `_versions` array lists prior summary versions you can fetch by id. Pass analyze_in_original_language to view the summary in the study's original language instead of English.
get_analysis_insights
Get a full analysis question with evidence quotes and response IDs per category
get_analysis_question
Get analysis questions with summaries and answer categories for a study — the latest result per question (continuously maintained, not tied to a run), evidence omitted. Use get_analysis_question for full evidence quotes. Pass analyze_in_original_language to view summaries in the study's original language instead of English.
get_analysis_questions
Get detailed distribution information including config, incentive, quota, and targeting. Returns `url`, a dashboard link to view the distribution, and — for link distributions — `share_url`, the public link participants open to take the study (share this one with respondents).
get_distribution
Get a highlight reel: its name, its page URL, and each highlight in the order the reel plays them. Each highlight gives its `index`, study_id, response_number, the quote it shows, its `duration_seconds`, and `trimmed` (true when a person trimmed the clip in the editor). Call this before update_highlight_reel: pass `{ keep: index }` to keep a highlight as it is.
get_highlight_reel
Get a single response with full conversation transcript
get_response
Get full segmentation details including segment definitions and matching criteria
get_segmentation
Read the caller-defined attributes stored on a stimulus — the tags used to group and compare stimuli during analysis (e.g. which model or price tier a variant represents). Stimulus IDs come from the `plan` returned by get_study, where each stimulus carries its `id` and, once set, its `metadata`.
get_stimulus_metadata
Get detailed study information including questions, plan, settings, and response statistics, plus `url`, a dashboard link to open the study.
get_study
Get response statistics for a study (counts by status and distribution).
get_study_stats
Retrieve the media a user uploaded via an upload session (see create_upload_session). Returns the uploaded files as `{ url, stimulus_type }` — use each url as a stimulus in a study plan (create_study/edit_study). Call this after the user confirms they have finished uploading; status stays 'awaiting_upload' until at least one file has been uploaded.
get_upload_session
Get current user profile (name, email, role in account)
get_user_profile
List all distributions for a study
list_distributions
List the evals in this account, newest first. An eval pairs a scenario set with a grader. Each run of an eval grades one treatment label across the scenarios. Each eval carries its run count, its three newest runs, and score stats per treatment. Use get_eval for every run.
list_evals
List the graders in this account, newest first. A grader is an LLM judge: a model, a system prompt, a user prompt template, and the rubrics it scores on (`rubric_ids`).
list_graders
List responses for a study (excludes full conversation transcripts — use get_response for that)
list_responses
List the rubrics in this account, newest first. A rubric is one numeric scale, from 0 upward, with a label and description for each level. A grader scores each treatment on one or more rubrics.
list_rubrics
List the scenario sets in this account, newest first, with the number of scenarios in each. A scenario set is a list of user needs that an eval grades treatments against.
list_scenario_sets
List segmentations for a study (name, key, description). Use get_segmentation for full segment definitions.
list_segmentations
List the active studies in the account, with response counts and a dashboard `url` per study. `internal_name` is the study name as it appears in the dashboard. Archived studies are excluded.
list_studies
List all labels in the account with the number of studies using each. Labels are stored as tags; a study has a single label.
list_tags
List the templates saved in the account. Each row carries a `type` of 'distribution', 'screener', or 'typing_tool'. A 'typing_tool' row is the account's typing tool, not a template to copy: a researcher uses it on a study from the study editor.
list_templates
Publish a distribution to make it live and start collecting responses. For link distributions, returns `share_url` — the public link to share with respondents, now live. Supports link and intercept distributions; publishing panel distributions is not currently available over MCP (publish those from the Voicepanel dashboard).
publish_distribution
Get an AI review of a study's configuration before publishing. Returns a score (1-5) and improvement suggestions. Results are cached per study version.
review_study
Generate a fresh analysis summary (findings/insights) for a study from its responses — the same action as the Update button on the analyze page. This does NOT regenerate per-question analysis (that is maintained automatically as responses complete); it produces a new summary version asynchronously. Requires at least one analysis question to have finished processing.
run_analysis
How to write screener questions that qualify the right respondents and resist gaming. Covers the qualification tags and the must_select/must_one_of trap, obfuscating the target so respondents can't guess the qualifying answer, honeypot options, option randomization and anchoring, early screenout, question order, and how to write open-ended and matrix questions. Includes this account's own AI rules if it has customized them. Call this before passing `screener_questions` to a distribution tool by hand — passing an `audience` description instead applies this guidance automatically. Read-only.
get_screener_design_guide
Tag a stimulus with caller-defined attributes so analysis can group and compare by them later. Pass `metadata` to set several attributes at once, or `key` plus `value` to set a single one — exactly one of the two. By default `metadata` is merged into what is already there; pass `replace: true` to drop every attribute it doesn't name. To remove one attribute, pass its `key` with a null `value`; to clear them all, pass an empty `metadata` with `replace: true`. Stimulus IDs come from the `plan` returned by get_study.
set_stimulus_metadata
Start a run that grades one treatment label across the eval's scenarios. The grader runs in the background and the tool returns at once with the run `status` "running". Call get_eval_run with the run `id` to see progress and scores. The first run freezes the eval: after it, the eval's scenario set and grader cannot change. Get the treatment labels from get_scenario_set. `scenario_limit` grades only the first N scenarios, for a quick check.
start_eval_run
Voicepanel ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Voicepanel's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Voicepanel alternatives on ChatGPT?
As of 2026-10-12, Voicepanel competes with Appbot, AppReviewBot, Canny, Centraliza, Clootrack, Dovetail, empirio.ai, Employee Surveys & eNPS and 28 more in ChatGPT Customer Feedback & Research Platforms, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.