Quickstart
Three steps to your first AI interview.
Fast path
1. Authenticate
npm install -g usertold
usertold auth login
2. Create a project and study
usertold init --name "My Product" --format json --yes
3. Select the project
usertold project list
usertold project use <orgHandle>/<projectHandle>
4. Embed the widget and activate
Copy the snippet from the intake's Embed Code section into your product, then activate the intake and study from the dashboard or CLI.
That's it — qualified participants can start in-product interviews from your widget.
Get from zero to your first AI interview in under 10 minutes.
Prerequisites
- A UserTold.ai account — sign in with Google
- An OpenAI API key for interviews, evidence extraction, and voice features
1. Create a Project
After signing in, create a project from the dashboard. A project maps to one product or product area you want to research.
2. Configure your OpenAI API key
UserTold.ai runs interviews and extracts evidence using OpenAI inference. Add your OpenAI API key in Project Settings before activating a study.
- Inference costs are billed directly to your OpenAI account (BYOK)
- Keys are encrypted at rest, scoped per project, and never logged
- You can remove or rotate the key any time from Project Settings
See our Security page for details on key handling.
3. Create a Study
A study defines what the AI should explore. Go to Studies and create one.
Add goals, then define Talk, Observe, and Speak segments for each phase of the interview. See Studies for configuration details.
4. Create an Intake
An intake qualifies participants before they enter an interview. Go to Intakes and create one.
Add qualification questions — for example:
- "How often do you use [product]?" (single choice)
- "What's your role?" (single choice)
Set rules to auto-qualify or disqualify based on answers. Link your study to the intake so qualified participants enter the right interview.
5. Embed the Widget
Add the widget to your product. Open your intake's detail page and copy the embed snippet from the Embed Code section:
<script
async
src="https://usertold.ai/v1/widget.js"
data-project-key="ut_pub_YOUR_KEY"
data-screener-id="your-screener-handle"
></script>
The loader waits for your page to finish loading before fetching the widget, so it never slows down your own content. Use https://usertold.ai for the widget script itself. The dashboard where you copy this snippet remains at https://app.usertold.ai.
Your project key is in Project Settings under SDK Key. The intake handle is on the intake detail page — it's the human-readable slug used in URLs and embed code.
The widget appears as a floating button. When users click it, they see the intake, and if qualified, start the interview — all within your product. See Widget Integration for customization options.
6. Run Interviews
Activate your intake and study. Participants who visit your product will see the widget, answer the intake, and if qualified, start an in-product interview.
The study script controls the engagement pattern: talk for conversation, observe for silent product-usage capture, and scripted speak for instructions, transitions, and thanks.
7. Review Results
After each interview completes, UserTold.ai automatically:
- Transcribes the recording
- Extracts evidence (struggling moments, desired outcomes, workarounds, etc.)
- Groups related evidence into review packets with priority context
- Links each packet back to its source evidence for verification
Check the Interviews page to see transcripts and recordings. Check Evidence to see extracted insights. Check Work to see evidence review packets waiting for project-aware verification.
8. Push to Your Tracker
When a review packet has been verified and promoted to delivery work, UserTold.ai can push it to your issue tracker:
- Go to Project Settings and connect your delivery tracker
- Open the review packet and verify the linked quotes, transcript or playback context, grouping fit, and intended product area
- Move the verified work item to Ready
- Push the work item to Linear or GitHub so the issue carries the source evidence
For Linear issues, completion sync can resolve the current linked evidence. Future interviews are still watched for similar evidence that may resurface for recurrence review.
For Agents: Non-Interactive Setup
All of the above can be automated via CLI with JSON output — designed for autonomous systems.
export USERTOLD_API_KEY=$(your_api_key)
usertold auth whoami --json
usertold init \
--name "My Product" \
--study-title "User Research Study" \
--format json \
--yes
# Then add your OpenAI key for the project (encrypted at rest, scoped to this project):
usertold project use <orgHandle>/<projectHandle>
usertold config set --key openai_api_key --value sk-...
This creates a project, study, intake, and generates a snippet in a single non-interactive command.
MCP Integration
For Claude, Cursor, and other agents with MCP support:
Use a single MCP JSON-RPC endpoint with project-aware tool calls and resource reads:
POST /mcp- Auth: connect via OAuth (Authorization Code + PKCE). Do not manually provision bearer headers in normal Claude/Cursor setup.
- Discovery:
/.well-known/openid-configurationand/.well-known/oauth-protected-resource - Dynamic client registration: supported at
POST /api/oauth/register; pre-registered integrations can still use static clients.
Examples:
initializeto discover available tools/prompts/resources andresult.user.personal_org_handleresources/readonusertold://mefor the authenticated user profile and workspace handletools/listandtools/callfor actions likework.create_from_evidenceorstudies.validate_scriptresources/listandresources/readfor project-scoped context (project://...URIs)
MCP is optional—if you already use the dashboard or REST API, continue using those. MCP is meant to complement those flows for teams that want tighter autonomous loops.
See the API Reference for full endpoint documentation.
Next Steps
- Core Concepts — understand the mental model
- Widget Integration — customize the embedded widget
- Studies — write effective study scripts
- API Reference — integrate programmatically
- MCP Integration — connect via MCP for agent workflows
- CLI Reference — full command reference