UserTold
Design in-product voice interviews, review source-linked evidence and push work to GitHub or Linear.
Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only
What it can do
- Evidence.Get: Get one bounded Evidence record with its quote, observed behavior, source interview reference, seek timestamp, page context, review state, and linked Work references. Use after evidence.
- Evidence.List: List bounded Evidence summaries and source references captured from interviews. Use when selecting evidence to inspect, group into Work, or pass to another analysis tool. Defaults to th
- Interviews.Get Context: Get a bounded transcript and synchronized navigation/click window around an evidence timestamp. Behavior events expose only controlled route vocabulary and element kinds, never
What data it sees
Do you need an account
No: the server works without sign-in
Design in-product voice interviews, review source-linked evidence and push work to GitHub or Linear.
Server tool list (19)
Raw names from tools/list. Only developers need these.
| evidence.get | Get one bounded Evidence record with its quote, observed behavior, source interview reference, seek timestamp, page context, review state, and linked Work references. Use after evidence.list when inspecting or handing evidence to another analysis tool. |
| evidence.list | List bounded Evidence summaries and source references captured from interviews. Use when selecting evidence to inspect, group into Work, or pass to another analysis tool. Defaults to the product_under_test area; pass target_surface="all" for every area. |
| interviews.get_context | Get a bounded transcript and synchronized navigation/click window around an evidence timestamp. Behavior events expose only controlled route vocabulary and element kinds, never page titles, accessible labels, account or participant identity, raw payloads, recordings, DOM selectors, or URL queries. Use after evidence.list or evidence.get to understand what happened immediately before and after a quoted moment. |
| interviews.list | List bounded recorded-interview summaries and analysis state without participant identity. Use when choosing captured voice, screen-capable desktop, or behavior interviews for evidence review or transcript context. |
| interviews.processing_status | Get a small privacy-safe processing and extraction summary for one captured interview. Use after an interview completes when waiting for Evidence or Work generation to finish. |
| interviews.retry_processing | Retry generation for one captured interview only after a durable processing failure or the conservative 24-hour no-progress guard. This replaces generated Evidence, preserves manual Evidence, and must not be repeated automatically when the outcome is uncertain. |
| projects.create | Create a Project in an organization returned by usertold://organizations. The additive operation creates a new public projectRef for Study, Interview, Evidence, and Work tools; it does not configure billing, members, provider credentials, or delivery integrations. |
| projects.get_widget_setup | Get the canonical install-once Project widget snippet and public setup guidance. Install it once across the product; active Studies are selected by status and Visibility, and each selected Study controls its Invitation. |
| projects.verify_widget_installation | Check a public HTTPS page for the canonical UserTold loader and this Project public key, then inspect CSP and Permissions-Policy for scripts, connections, microphone, and screen capture. The bounded remote check does not execute the host app, grant browser permissions, or replace a human browser smoke test. |
| studies.create | Create a draft UserTold Study with a complete StudyScriptV2 flow and optional canonical Invitation, Visibility, and customer origins. A direct-link Invitation provisions a revocable shareable campaign URL; retrieve it with studies.get. Use projects.get_widget_setup for the sole install-once Project snippet. |
| studies.get | Get one Study's bounded interview script, goals, canonical Invitation, Visibility, customer origins, and shareable direct-link campaign URL. Private campaign claims, participant identity, and eligibility answers are never returned. Oversized scripts are returned as null with scriptOmitted=true and remain available in the dashboard or CLI. |
| studies.list | List bounded Study summaries for one Project, newest first. Filter by lifecycle status and use the returned studyRef with studies.get or studies.update; full scripts and placement rules stay in studies.get. |
| studies.update | Update a Study returned by studies.list or studies.get, including its canonical Invitation, Visibility, and customer origins. Provide at least one mutable field. Set invitation to null for the built-in Invitation or allowedOrigins to [] to stop publishing its direct-link campaign URL. Set status to active to start new interview collection, paused to disable it temporarily, or closed to stop new interviews for the current collection cycle without interrupting an interview already in progress. A paused or closed Study can later return to active. Examples: use status="active" to begin collection or status="paused" for a temporary stop. The install-once Project widget selects active Studies through Visibility and Invitation, so no per-Study snippet or separate launch/stop call is needed; projects.get_widget_setup remains the sole snippet source. |
| studies.validate_script | Validate a bounded StudyScriptV2 and summarize its segments, goals, and modes. Use before studies.create or studies.update when drafting or revising an interview flow. |
| work.create_from_evidence | Create one source-linked UserTold Work item in backlog from selected Evidence and calculate its priority. Use after reviewing related Evidence that should become a single actionable problem; project-aware review is still required before delivery handoff. |
| work.get_evidence | Get a bounded, review-safe package of Evidence currently linked to one Work item, including source interview references, seek timestamps, related Work, recurrence candidates, and a decision summary that preserves resolved-history counts. Use before updating Work, designing follow-up research, writing verification criteria, or pushing to delivery. |
| work.list | List bounded UserTold Work summaries with evidence and interview counts. Use when choosing Work to review, update, inspect for evidence, or push to a delivery provider. Closed Work is hidden by default; enriched=true adds Evidence types and study references. |
| work.push | Create a GitHub or Linear issue from ready UserTold Work, sending the Work summary plus quoted Evidence and captured context to the explicitly selected provider. Use only after project-aware verification; this mutates an external system and does not determine verification itself. |
| work.update | Update one UserTold Work item after reviewing its Evidence. Provide at least one of status, title, description, or effort_estimate. This changes only UserTold data; use work.push separately for GitHub or Linear. Examples: set medium effort with effort_estimate="m"; mark delivery-ready Work with status="ready". |