Structure your user interview transcripts into clear themes and actionable insights so you can make confident product decisions faster.
Template components
Interview Metadata
Record who was interviewed, when, and what the session goal was so you can contextualize findings later.
Example: Participant: Sarah M., Customer Success Manager at a 200-person SaaS company. Date: June 12, 2025. Goal: Understand pain points with current onboarding flow.
Key Quotes
Pull 3–5 verbatim quotes from the transcript that best represent the participant's core frustrations, motivations, or behaviors.
Example: "I never know if I've set things up correctly — there's no confirmation anywhere." / "I usually just give up and email support instead of figuring it out myself."
Observed Themes
Tag each quote or insight with a recurring theme — use consistent labels so themes can be compared across multiple interviews.
Example: Theme tags: Onboarding Confusion, Lack of Feedback Loops, Support Dependency. Note: "Onboarding Confusion" appeared in 4 of 6 interviews this round.
Recommended Actions
For each theme, write one specific next step the product or UX team should take based on what participants said.
Example: Onboarding Confusion → Add a setup completion checklist with inline validation. Support Dependency → Build a contextual help tooltip at the step where drop-off is highest.
Full Copyable Template
<div class="tmpl-full-doc">
<div class="tmpl-full-header">
<div class="tmpl-full-title">User Interview Analysis Template</div>
<div class="tmpl-full-meta">[Analyst] · [Date] · [user interviews]</div>
</div>
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">1. Analysis Setup</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Data source</div>
<div class="tmpl-full-field-value">[12 product discovery and user research interviews with new and existing customers]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Date range</div>
<div class="tmpl-full-field-value">[Jan 8, 2026 – Jan 22, 2026]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Analyst name</div>
<div class="tmpl-full-field-value">[Jordan Lee, Product Research]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Research question this analysis answers</div>
<div class="tmpl-full-field-value">[What problems are users trying to solve today, what workarounds are they using, and where are the biggest unmet needs in the current workflow?]</div>
</div>
</div>
<hr class="tmpl-full-divider">
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">2. Step 1 — Code Your Excerpts</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt [1]</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"Every Monday I open five tabs just to piece together what changed last week. By the time I've stitched it together in a spreadsheet, the team's already asking me for an update I don't fully trust."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">pain point</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">current workaround</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt [2]</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"Honestly, the trigger is usually a customer escalation. Nobody touches this process until somebody important is upset, and then it's a fire drill."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">trigger event</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">pain point</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt [3]</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"We've got this ridiculous Slack channel where people drop screenshots and little context notes. It kind of works, but if you're out for two days, good luck figuring out the story."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">current workaround</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">blocker</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt [4]</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"What I actually want is one place where I can see the signal, share it with the PM, and not have to rewrite the same summary three different ways for three different people."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">desired outcome</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">unmet need</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt [5]</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"The part that sold me on the last tool was how fast I could pull a quote and clip it into a deck. If it's easy to turn raw interviews into something shareable, people on my team actually use it."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">delight signal</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">desired outcome</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt [6]</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"We keep saying we're customer-led, but if the researcher is on vacation, the insights basically disappear. That's probably the biggest gap right now."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">unmet need</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">blocker</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt [7]</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"Usually this starts when leadership asks, 'Do we have evidence for that?' and then everyone scrambles through old calls trying to find one decent quote."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">trigger event</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">pain point</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">blocker</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Excerpt [8]</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a">"I made my own Airtable to track themes because nothing else fit our workflow. It works better than scattered docs, but it's still super manual and I have to babysit the tagging."</div>
<div style="margin-top:8px;display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">current workaround</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">pain point</span>
<span style="display:inline-block;padding:3px 10px;background:#1a1a1a;color:#fff;border-radius:20px;font-size:12px;font-weight:600">unmet need</span>
</div>
</div>
<div class="tmpl-full-tip">💡 Tip: A good code is short, reusable, and close to what the excerpt is actually saying—not your solution idea. If multiple researchers saw the quote, they should apply roughly the same label.</div>
</div>
<hr class="tmpl-full-divider">
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">3. Step 2 — Group Codes into Themes</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Core Pain Points</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">Users describe fragmented workflows, low confidence in outputs, and repeated effort to answer simple questions from interview data.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">pain point · 4 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">blocker · 3 excerpts</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Workarounds & Hacks</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">Instead of a reliable system, users patch together spreadsheets, Slack threads, and homemade databases to keep insights moving.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">current workaround · 3 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">blocker · 3 excerpts</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Desired Outcomes</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">Users want a faster path from raw interview evidence to clear, reusable outputs that can be shared across teams.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">desired outcome · 2 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">delight signal · 1 excerpt</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Trigger Events</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">Analysis work is often reactive, kicked off by escalations or leadership requests rather than an ongoing evidence workflow.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">trigger event · 2 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">pain point · 4 excerpts</span>
</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label" style="font-size:16px">Unmet Needs</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#555;margin-bottom:10px">There is a clear need for durable, team-accessible insight storage and lightweight synthesis that does not depend on one person.</div>
<div style="display:flex;flex-wrap:wrap;gap:6px">
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">unmet need · 3 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">desired outcome · 2 excerpts</span>
<span style="display:inline-block;padding:4px 12px;background:#f7f5f0;border:1px solid #e0ddd8;border-radius:20px;font-size:13px;color:#1a1a1a">blocker · 3 excerpts</span>
</div>
</div>
<div class="tmpl-full-tip">💡 Tip: Themes are broader patterns made from multiple codes. If a code appears repeatedly across excerpts and points to the same underlying story, it likely belongs in a theme.</div>
</div>
<hr class="tmpl-full-divider">
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">4. Theme Summary Cards</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Core Pain Points · 4 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Users lose time and confidence because interview evidence is scattered across tools and hard to turn into trustworthy updates.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "Every Monday I open five tabs just to piece together what changed last week. By the time I've stitched it together in a spreadsheet, the team's already asking me for an update I don't fully trust."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Prioritize a workflow that centralizes excerpts and reduces repetitive synthesis work.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Workarounds & Hacks · 3 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Users are highly motivated and already solving the problem themselves, but their stopgap systems are manual, fragile, and hard to scale.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "I made my own Airtable to track themes because nothing else fit our workflow. It works better than scattered docs, but it's still super manual and I have to babysit the tagging."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Study common DIY workflows and design product behaviors that replace spreadsheet-and-Slack patchwork.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Desired Outcomes · 2 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Users want to move from raw interview content to shareable evidence quickly, without rewriting the same story for different audiences.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "What I actually want is one place where I can see the signal, share it with the PM, and not have to rewrite the same summary three different ways for three different people."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Prototype lightweight synthesis, tagging, and shareable output views for PMs, design, and leadership.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Trigger Events · 2 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: Interview analysis becomes urgent when external pressure appears, which means teams are often reacting too late instead of continuously learning.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "Usually this starts when leadership asks, 'Do we have evidence for that?' and then everyone scrambles through old calls trying to find one decent quote."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Build a repeatable evidence repository so teams can answer stakeholder questions without last-minute scrambling.</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Unmet Needs · 3 total excerpts</div>
<div class="tmpl-full-field-value">Key insight: The strongest unmet need is a durable, shared insight system that survives handoffs, time off, and growth in interview volume.</div>
<div class="tmpl-full-field-value" style="font-style:normal;color:#1a1a1a;margin-top:8px">Representative quote: "We keep saying we're customer-led, but if the researcher is on vacation, the insights basically disappear. That's probably the biggest gap right now."</div>
<div class="tmpl-full-field-value" style="margin-top:8px">Recommended action: Validate demand for searchable insight memory, shared tagging standards, and team-wide access controls.</div>
</div>
</div>
<hr class="tmpl-full-divider">
<div class="tmpl-full-section">
<div class="tmpl-full-section-title">5. Analysis Wrap-Up</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Top finding</div>
<div class="tmpl-full-field-value">[Teams are not struggling to collect user interview data—they are struggling to organize, retrieve, and reuse it efficiently.]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Most urgent theme</div>
<div class="tmpl-full-field-value">[Unmet Needs]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Recommended next step</div>
<div class="tmpl-full-field-value">[Run a solution concept test focused on centralized excerpt storage, tagging, and fast stakeholder-ready outputs.]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Share with (stakeholder)</div>
<div class="tmpl-full-field-value">[Head of Product, Product Design Lead, Research Ops Manager]</div>
</div>
<div class="tmpl-full-field">
<div class="tmpl-full-field-label">Date completed</div>
<div class="tmpl-full-field-value">[Jan 24, 2026]</div>
</div>
</div>
</div>
How to use it
Gather your transcripts Collect all user interview transcripts from a single research round into one folder before you begin tagging.
Fill in metadata and pull quotes For each transcript, complete the Interview Metadata and Key Quotes sections so every insight is traceable to a real participant.
Tag themes consistently Use the same theme labels across all transcripts so you can count frequency and compare patterns at the end of your analysis.
Summarize actions by theme Once all interviews are analyzed, group your Recommended Actions by theme and prioritize by how frequently each theme appeared.
What it looks like filled in
Onboarding Confusion
"I set everything up but I genuinely had no idea if it was working — I just assumed it was and hoped for the best."
→ Design a setup confirmation screen that shows a live preview of the first triggered event after configuration.
Feature Discoverability
"I found out about the bulk export feature from a tweet — I'd been doing it manually for six months before that."
→ Add a contextual prompt on the data table page highlighting bulk export for users who have never used it.
Trust in Data Accuracy
"The numbers look different depending on which dashboard I'm on — I don't know which one to trust so I just screenshot both for my manager."
→ Audit metric definitions across dashboards and add a tooltip explaining the date range and filter logic behind each number.
Why teams skip the template
Tagging themes manually across dozens of transcripts takes hours Reading every transcript line by line and applying consistent labels is tedious and breaks down fast when you have more than five interviews.
Human analysis introduces pattern bias Analysts unconsciously over-index on quotes that confirm existing assumptions, causing real themes to go unnoticed in the data.
Insights get buried in spreadsheets and never acted on By the time you've finished tagging and summarizing, the urgency has faded and the doc sits unread in a shared drive.
Analyze your user interview transcripts automatically — no template needed