Ditto for Voice of Customer Programmes
Build a continuous VoC research programme — monthly pulse checks, quarterly deep dives, longitudinal trend tracking — using Ditto's 300,000+ synthetic personas. Directly from the terminal.
Full documentation: https://askditto.io/claude-code-guide
What Ditto Does
Ditto maintains 300,000+ AI-powered synthetic personas calibrated to census data across USA, UK, Germany, and Canada. You ask them open-ended questions and get qualitative responses with the specificity of real customer interviews.
- 92% overlap with traditional focus groups (EY Americas validation)
- Monthly pulse check: 15 minutes (3Q, 6 personas)
- Quarterly deep dive: 45 minutes (7Q, 10 personas)
- Traditional VoC programme: $200,000+/year
The Core Principle
VoC is NOT an annual event. It is a continuous 2-hour/month habit.
Research reports that are never translated into deliverables are dead on arrival. Every finding must become a changed deliverable, updated positioning, or product action item.
Quick Start (Free Tier)
Get a free API key — no credit card, no sales call:
curl -sL https://app.askditto.io/scripts/free-tier-auth.sh | bash
Free keys (rk_free_): ~12 shared personas, no demographic filtering.
Paid keys (rk_live_): custom groups, demographic filtering, unlimited studies.
API Essentials
Base URL: https://app.askditto.io
Auth header: Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
The Always-On Research Calendar
| Study Type | Frequency | Personas | Questions | Time | Purpose |
|---|---|---|---|---|---|
| Pulse Check | Monthly | 6 | 3 | ~15 min | Quick read on evolving sentiment |
| Deep Dive | Quarterly | 10 | 7 | ~45 min | Comprehensive VoC study |
| Targeted Probe | Ad hoc | 8 | 5 | ~25 min | Investigate a specific signal |
| Pre-Launch | Before launches | 10 | 7 | ~45 min | Concept validation |
| Post-Launch | 2 weeks after | 10 | 5 | ~30 min | Fresh group sentiment |
Total monthly investment: ~2 hours.
Monthly Rhythm
- Week 1: Run pulse check (15 min study + 15 min deliverable update)
- Week 2: Update Language Library and Pain Matrix with pulse findings
- Week 3: (Quarterly only) Run deep dive
- Week 4: Distribute updated deliverables to stakeholders
The VoC Workflow (6 Steps)
Same API workflow for all study types — only the questions and group size change.
Step 1: Recruit (or Reuse) Your Panel
curl -s -X POST "https://app.askditto.io/v1/research-groups/recruit" \
-H "Authorization: Bearer $DITTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "US SaaS Users 25-50 - VoC Panel",
"group_size": 10,
"filters": {
"country": "USA",
"industry": ["Technology"],
"age_min": 25,
"age_max": 50
}
}'
Save the uuid. Use group_size (not size), group uuid (not id).
Tip: Reuse the same group for pulse checks (consistency). Recruit fresh groups for deep dives (new perspectives). Mix both for longitudinal tracking.
Step 2: Create Study
curl -s -X POST "https://app.askditto.io/v1/research-studies" \
-H "Authorization: Bearer $DITTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "VoC Deep Dive Q1 2026 - [Product Name]",
"objective": "Quarterly deep dive on customer pain points, priorities, and unmet needs",
"research_group_uuid": "UUID_FROM_STEP_1"
}'
Response nests under data.study — access via response["study"]["id"].
Step 3: Ask Questions (One at a Time)
curl -s -X POST "https://app.askditto.io/v1/research-studies/STUDY_ID/questions" \
-H "Authorization: Bearer $DITTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question": "Your question here"}'
Do NOT change question order. Each question builds on conversational context established by earlier answers.
Step 4: Poll Until Complete
curl -s "https://app.askditto.io/v1/jobs/JOB_ID" \
-H "Authorization: Bearer $DITTO_API_KEY"
Wait 45-50 seconds before first poll, then 20 seconds intervals. Poll ONE job_id as proxy — all jobs finish together.
Step 5: Complete the Study
curl -s -X POST "https://app.askditto.io/v1/research-studies/STUDY_ID/complete" \
-H "Authorization: Bearer $DITTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"force": false}'
Step 6: Extract Deliverables + Get Share Link
curl -s "https://app.askditto.io/v1/research-studies/STUDY_ID/questions" \
-H "Authorization: Bearer $DITTO_API_KEY"
curl -s -X POST "https://app.askditto.io/v1/research-studies/STUDY_ID/share" \
-H "Authorization: Bearer $DITTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled": true}'
Deep Dive Question Framework (7 Questions)
The quarterly deep dive. Each question feeds specific deliverables.
Q1 — Journey Mapping
"Tell me about the last time you [relevant activity]. Walk me through the experience from start to finish. What went well? What was frustrating?"
Feeds: Customer Journey Map (touchpoints classified as pain/delight/neutral).
Q2 — Priority Pain
"If you could wave a magic wand and fix ONE thing about [problem space], what would it be? Why that above everything else?"
Feeds: Pain Priority Matrix. If 7/10 independently identify the same frustration, it is a high-confidence positioning opportunity.
Q3 — Current Solutions
"How do you currently solve [problem]? What tools, people, or workarounds do you use? What do you wish you could do differently?"
Feeds: Competitive landscape, Language Library (solution language).
Q4 — Experience Benchmarks
"Think about the BEST [product/service] experience you've ever had in any category. What made it great? Now think about the WORST. What made it terrible?"
Feeds: Customer Journey Map (benchmark references), Unmet Needs Report.
Q5 — Decision Criteria
"When you're researching a new [product type], what do you look for first? Second? What's a dealbreaker?"
Feeds: Decision Criteria Hierarchy (Tier 1 dealbreakers, Tier 2 primary, Tier 3 tiebreakers).
Q6 — Delivery Preference
"If a product promised to [core value prop], how would you want to experience that? In the product itself? Through reports? Through a person helping you?"
Feeds: Product Feedback Synthesis (shapes delivery model and UX).
Q7 — Unfiltered Frustration
"Is there anything about [problem space] that you feel companies just don't understand? What do you wish they would get right?"
Feeds: Language Library (emotional language), Unmet Needs Report, content hooks for marketing.
Pulse Check Framework (3 Questions — Monthly)
Quick reads on evolving sentiment. 6 personas, ~15 minutes.
Q1: "What's the biggest challenge you're facing right now with [problem space]?" Q2: "Has anything changed in how you handle [task] in the last month?" Q3: "What's the one thing you wish existed to make [task] easier?"
Track Q1 answers month-over-month to detect shifting priorities.
The 6 VoC Deliverables
1. Customer Journey Map
Touchpoints from Q1 with classification:
- Pain — frustration, friction, confusion
- Delight — exceeded expectations, positive surprise
- Neutral — functional, neither good nor bad
Include frequency counts (how many personas mentioned each touchpoint) and benchmark references from Q4.
2. Pain Priority Matrix
Frustrations ranked by severity (how painful) and frequency (how many personas mentioned it) from Q1 and Q2.
The most common magic wand answer from Q2 = the #1 positioning opportunity.
3. Language Library
Arguably the most commercially valuable deliverable.
Exact words and phrases categorised as:
- Problem language — how customers describe their frustrations
- **Solution la