TL;DR
You can go from raw interview recordings to a shareable insight report in under four hours. The workflow uses automatic transcription, a lightweight tagging system, and a spreadsheet to cluster themes before writing insight statements. You need at least five interviews, a transcription tool like Otter.ai, and a spreadsheet or Notion.
What You Need Before You Start
- Five or more recorded customer interviews (audio or video, any format: .mp3, .mp4, .m4a)
- An Otter.ai account (free tier gives you 300 transcription minutes per month) or Rev.com for human transcription at $1.50 per minute
- Google Sheets or a Notion workspace for tagging and clustering
- Your original discussion guide or interview script so you remember what you asked
- Optional: Dovetail (paid, starts at $29/month) or Grain (free tier available) if you want a purpose-built research repo
- A clear research question written down before you open a single transcript
Skipping that last item is one of the most common ways PMs waste time during analysis. without a research question anchoring the work, you tag everything and conclude nothing.
Step 1: Transcribe All Interviews in One Batch
Before you read anything, get every recording transcribed. open Otter.ai, go to My Conversations, click Import Audio/Video, and upload your files in one session. Otter processes them in the background while you set up your tagging framework.
If accuracy matters more than speed (think technical products with jargon or heavy accents), upload to Rev.com instead. Rev’s human transcription runs at about 98% accuracy versus Otter’s 85-90% on conversational speech.
For five 45-minute interviews, plan on roughly 20-30 minutes of Otter processing time, or a 24-hour turnaround on Rev.
Once Otter finishes, export each transcript as a .txt or .docx file. Name them consistently:
P01_interview.txt
P02_interview.txt
P03_interview.txt
Use participant numbers rather than names to stay anonymous from the start.
You should now see a folder of five cleanly named transcript files ready to open, with no reading done yet.
Step 2: Build Your Tagging Framework Before You Read
Open a fresh Google Sheet. Create two tabs: Tags and Raw Quotes.
On the Tags tab, build a table with three columns: Tag Name, Description, Theme Bucket. Pre-populate it with 10-15 tags based on your discussion guide topics. For a SaaS onboarding study, your tag table might look like this:
Tag Name | Description | Theme Bucket
---------------------|---------------------------------------|-------------
onboarding-friction | Any moment the user felt stuck | Experience
pricing-confusion | Unclear value at a price point | Perception
workaround | User built a fix for a missing feature| Behavior
competitor-mention | Any named competitor reference | Market
unexpected | Anything that doesn't fit a tag | Catch-all
Add a catch-all “unexpected” tag and keep it there permanently. Limiting yourself to 15-20 tags forces you to think about what actually matters before analysis begins. more than 20 and the tagging turns into noise.
You should now see a Tags tab with at least 10 pre-built tags and clear descriptions, created before you’ve read a single line of transcript.
Step 3: Code Your First Transcript in Two Passes
Open P01_interview.txt. Read it fully without stopping to tag anything. Get a feel for what the participant was trying to communicate, their tone, and where emotion showed up.
Then read it a second time and start tagging. on the Raw Quotes tab, paste any quote that connects to one of your tags. Use these columns: Participant, Tag, Quote, Timestamp, Notes. Keep quotes verbatim. Do not paraphrase at this stage.
Participant | Tag | Quote | Timestamp | Notes
------------|-------------------|-----------------------------------------------------|-----------|------
P01 | onboarding-friction| "I couldn't find where to connect my Slack account" | 14:22 | mentioned twice
P01 | workaround | "I just started using Zapier instead" | 22:10 | strong signal
One full read, then one tagging pass. Do not loop back to re-read sections unless a quote genuinely spans three or more tags.
Plan on 20-30 minutes per 45-minute transcript.
You should now see 15-25 tagged rows in the Raw Quotes tab from your first participant alone.
Step 4: Repeat for All Remaining Transcripts
Code P02 through P05 using the same two-pass process. As you go, update your Tags tab when you encounter something genuinely new. Add it with a description. Merge tags that turn out to mean the same thing.
A useful trick: once you hit P03, start noting in the Notes column whether you’ve seen the same theme from a previous participant. Write “also P01” or “also P02” as a quick reference marker. This saves time when you cluster later and prevents you from re-reading earlier transcripts to confirm patterns.
Resist the urge to draw conclusions while you’re still coding. You’re collecting evidence right now, not writing insights. If a strong pattern jumps out at you, write it in a separate “Hunches” doc and keep moving.
After all transcripts are coded, your Raw Quotes tab should have 80-150 rows for a five-interview set.
You should now see a fully populated Raw Quotes tab spanning all participants with a tag label in every row.
Step 5: Filter and Cluster by Tag
Go to your Raw Quotes tab. Add a filter to the Tag column (Data > Create a Filter in Google Sheets). Filter to one tag at a time and read every quote under that tag in sequence.
For each tag with five or more quotes, create a new tab named after the theme bucket. Paste the filtered quotes there. For each cluster, you’re looking for three things:
- How many unique participants appear (breadth across your sample)
- The single most specific, emotionally clear quote (your anchor quote)
- Whether a sub-pattern is hiding inside the cluster
For example, “pricing-confusion” might split into “didn’t understand the free tier limits” and “confused by the seat-based model” once you read all the quotes together. Those are two separate insights, not one.
Clusters with only one or two data points are weak signals. flag them but don’t lead with them in your report.
You should now see four to eight themed cluster tabs, each containing grouped quotes from multiple participants.
Step 6: Write One Insight Statement Per Cluster
This is where most PMs stop at observations instead of insights. An observation is: “users struggled with Slack integration.” An insight is: “users expect one-click integrations at onboarding and abandon the flow when they hit manual configuration steps, which creates drop-off in the first 24 hours of a trial.”
For each cluster tab, write a single insight statement at the top of the tab using this formula:
[Users] do/feel/believe [behavior or attitude]
because [underlying reason],
which means [product or business implication].
Aim for eight to twelve insight statements across a five-interview project. Do not write more than one sentence per insight. If you can’t fit it in one sentence, you have two insights bundled together and need to split them.
You should now see a one-sentence insight statement at the top of each cluster tab, backed by supporting quotes below it.
Step 7: Score Each Insight by Frequency and Severity
Not all insights deserve equal weight. a complaint mentioned by one of five participants is a data point. the same complaint from four of five participants with strong emotional language is a priority.
Add a scoring table to a new Summary tab:
Insight | Participants (n=5) | Severity (1-3) | Priority Score
--------------------------|-------------------|----------------|---------------
Manual Slack setup | 4/5 | 3 | 12
Pricing tier confusion | 3/5 | 2 | 6
Missing bulk export | 2/5 | 2 | 4
Severity is your judgment call: 1 means mild inconvenience, 2 means it blocks task completion, 3 means it causes drop-off or churn. Multiply the participant count by severity. Your highest scores go into the top five findings. This gives you a defensible prioritization when stakeholders push back.
You should now see a ranked summary table showing which insights carry the most weight by both frequency and impact.
Step 8: Build a Shareable One-Pager
Open a new Google Doc or Notion page. Structure it as: Research Question, Methodology (number of interviews, dates, participant profile), Top 5 Insights with anchor quotes, Recommended Next Steps.
For each insight’s anchor quote, pick the single most specific, emotionally resonant quote from the cluster. Avoid generic ones like “it was confusing.” Prefer ones like “I literally had three tabs open trying to figure out where the API key was.”
Keep the whole document to one scrollable view. If a stakeholder has to click through more than two sections to reach the key finding, you’ll lose them before they get there.
For teams running multiple studies or needing a reusable research repository, Dovetail stores transcripts, tags, and insights in a structured format that links every finding back to the source audio. It adds setup time up front but pays off by your eighth or tenth interview project.
You should now see a clean, one-page insight report that’s ready to share with engineering, design, or executives without any accompanying explanation.
Common Mistakes To Avoid
- Tagging while reading the first pass. Reading and tagging simultaneously slows your pace and anchors you to first impressions before you’ve seen the full picture. always read fully first.
- Using more than 20 tags. Past 20, the tagging system collapses into noise. merge ruthlessly and keep descriptions tight.
- Reporting observations instead of insights. “Users don’t use Feature X” is an observation. “Users don’t use Feature X because they discover it after the task is already complete” is an insight with a root cause and an implication.
- Sharing the full raw spreadsheet with stakeholders. Stakeholders need your five best findings, not 120 rows of quotes. the spreadsheet is backup documentation, not the deliverable.
- Skipping the frequency and severity score. Without it, the loudest voice in the debrief room wins. scored insights give you something objective to point to.
- Waiting until all interviews are done to start transcribing. Batch your transcription from day one. waiting compresses your analysis window right before the deadline.
When To Level Up
This spreadsheet-and-Otter workflow handles up to about 15 interviews comfortably. Past that, managing tabs becomes friction and the tagging system starts to buckle under its own weight.
The first sign you’ve outgrown the approach: you spend more time hunting for quotes than writing insights. The second sign: multiple researchers are coding simultaneously and your tag definitions drift across people because there’s no single source of truth.
At that point, Grain (for video-first teams who want shareable clips) or Dovetail (for teams who need a structured repository across multiple studies) gives you tagging, clip highlighting, and insight synthesis in one environment. EnjoyHQ is a third option if your team is already living in Zendesk and wants customer feedback from support tickets folded into the same system.
For teams running continuous discovery with more than two researchers, the research methodology tools section on this site covers tools that scale well beyond the one-off sprint. the qualitative research tools comparison post is a good place to compare Dovetail, EnjoyHQ, and Aurelius side by side before committing to a paid plan.
Frequently Asked Questions
How many customer interviews do I need before I can extract meaningful insights?
Five interviews is the commonly cited minimum for qualitative usability studies, based on Nielsen Norman Group research showing diminishing returns past five participants for a single problem space. If you’re studying multiple distinct user segments, run five per segment rather than five total.
Can I use AI to tag transcripts instead of doing it manually?
Yes, and it works reasonably well as a first pass. paste a transcript into ChatGPT or Claude with a prompt like “tag each paragraph with one of the following themes: [your tag list]” and it produces a rough draft. treat it as a starting point, not final coding. AI misses tone, hesitation, and contextual subtext that a human reader catches on the second pass.
What if two interviewees contradict each other completely?
Contradictions are data, not problems to resolve. document both positions, note which was more common across the sample, and write both into your insight statement as competing behaviors. Do not average them out or pick the one that matches your existing hypothesis. contradictions often reveal distinct user segments worth exploring in a follow-up study.
How do I handle off-topic comments that come up during an interview?
Use your catch-all “unexpected” tag. After coding all transcripts, review everything in the unexpected bucket as its own cluster. sometimes the most significant insight lives there. if three or more participants went off-script in the same direction, that’s a signal worth promoting to a dedicated cluster.
Should I share the raw spreadsheet with stakeholders alongside the one-pager?
Share the one-pager by default. offer the spreadsheet as an appendix for anyone who wants to audit the source quotes. most stakeholders won’t dig into raw data, but knowing it exists and that every insight is traceable to a specific quote builds credibility for your findings when they’re challenged.
Bottom Line
The full workflow takes about four hours for five interviews: 30 minutes of transcription setup, 30 minutes to build your tagging framework, two hours to code all transcripts, and one hour to cluster, score, and write the one-pager. You don’t need a purpose-built research tool to do this well from day one. A disciplined tagging framework in Google Sheets and a clear distinction between observations and insights gets you most of the way there. the upgrade path to Dovetail or Grain exists when your interview volume or team size makes the spreadsheet approach genuinely slow, not just slightly inconvenient. start simple, get the reps in, and level up when the friction is real. for more on structuring your research practice as it scales, browse the research methodology guides and tool reviews on this site, including the how to run customer interviews post if you want to tighten the upstream process before analysis begins.