WordloopWordloop
WorkDeliveredLive CaptureTechnical Design

User Flow

Meeting Recording — 12 user stories with acceptance criteria, screen inventory, and information architecture.

User Flow

This page maps the user journey for the Meeting Recording bet. The user stories and acceptance criteria here directly determine what data each screen needs — which in turn determines the API endpoints and their shapes.


User Stories

Story 1: Start a Live Recording

As a WordLoop user, I want to press a single button in the app to start recording a meeting so that I don't need any external tools to capture what's being said.

Acceptance Criteria:

  • Given I am on a meeting view, when I press "Record", the system begins a live recording session for that meeting
  • The app begins capturing audio from the device microphone and streaming it to the server
  • The server confirms the session has started
  • A recording indicator is visible in the UI for the duration of the session
  • If I already have an active recording session, the system prevents starting a second one and shows an error

Story 2: Watch Live Transcription

As a WordLoop user, I want to see what's being said in real time while recording so that I can follow along and verify the system is capturing correctly.

Acceptance Criteria:

  • Given a recording is active, when the system produces a transcript segment, it appears in the UI
  • Interim segments appear immediately and are visually distinct from final segments
  • Final segments replace their corresponding interim segments
  • Transcript segments scroll automatically to keep the latest content visible
  • Latency from audio capture to text on screen is < 2 seconds under normal conditions

Story 3: Watch Live Talking Points

As a WordLoop user, I want to see the current talking point as the meeting progresses so that I have a structured summary building up in real time.

Acceptance Criteria:

  • Given a recording is active, when the system detects a new or updated talking point, it appears in the UI
  • Talking points created during a live session are marked as draft
  • Talking points appear as a scrollable list alongside the transcript

Story 4: Watch Live Tasks

As a WordLoop user, I want to see tasks extracted from the conversation in real time so that action items aren't lost.

Acceptance Criteria:

  • Given a recording is active, when the system detects an action item, a task is created and appears in the UI
  • System-extracted tasks are visually distinguishable from user-created tasks via a source indicator

Story 5: Add Tasks During Recording

As a WordLoop user, I want to manually add my own tasks while a meeting is being recorded so that I can capture action items the AI might miss.

Acceptance Criteria:

  • Given a recording is active, a task input field is available in the meeting view
  • When I submit a task, it appears immediately in the task list (optimistic update)
  • User-created tasks are tagged with source: user to distinguish them from system-extracted tasks

Story 6: Stop Recording and Generate Summary

As a WordLoop user, I want to stop the recording and receive a complete meeting summary so that I have a structured artefact of the meeting.

Acceptance Criteria:

  • Given a recording is active, when I press "Stop", the system ends the recording session
  • The system automatically generates a headline for the meeting
  • The system automatically generates a summary and topics (with best-effort talking-point nesting)
  • The UI transitions from the live recording view to the standard meeting detail view
  • All generated content is visible when the meeting detail loads

Story 7: Automatic Post-Meeting Re-Generation

As the WordLoop system, I want to automatically re-process the meeting after recording ends so that the transcription and synthesis are as accurate as possible.

Acceptance Criteria:

  • Given a recording has stopped and the audio has been stored, the system automatically triggers a full offline re-processing job
  • The system re-transcribes the full audio using the offline pipeline for higher accuracy
  • The system re-generates talking points, topics, summary, and headline from the improved transcript
  • Talking points and topics are promoted from draft to final
  • Tasks are NOT re-generated — both user-created and system-extracted tasks from the live session are preserved
  • The UI updates in real time as each re-generated artefact completes

Story 8: Play Back Meeting Audio

As a WordLoop user, I want to play back the recorded audio after a meeting ends so that I can revisit specific moments I may have missed.

Acceptance Criteria:

  • Given a meeting has a completed recording, an audio player is available on the meeting detail view
  • The player supports play, pause, seek (scrubbing), and playback speed control (0.5×, 1×, 1.5×, 2×)
  • Audio is streamed — the full file does not need to download before playback begins
  • The player displays the current playback position and total duration

Story 9: Synchronised Transcript Highlighting

As a WordLoop user, I want to see the transcript highlight in sync with audio playback so that I can follow along with what's being said.

Acceptance Criteria:

  • Given audio is playing, the transcript segment matching the current playback time is visually highlighted
  • The transcript auto-scrolls to keep the highlighted segment visible
  • When I click a transcript segment, the audio player seeks to that segment's start time and begins playing

Story 10: Live Speaker Identification

As a WordLoop user, I want to see who is speaking during a live recording so that the transcript is attributed to the correct person, not just "Speaker A".

Acceptance Criteria:

  • Given a recording is active and speaker voice profiles have been enrolled, the system matches speaker voice embeddings against known person profiles in near real-time
  • When a match exceeds the confidence threshold, the transcript segment shows the resolved person's name instead of the raw speaker label
  • Unmatched speakers continue to display their raw speaker label (e.g., "Speaker A")
  • Speaker resolution happens incrementally — early segments may remain unresolved and get updated as more audio is processed

Story 11: Graceful Degradation During Recording

As a WordLoop user, I want to keep recording even if AI services are temporarily unavailable so that I don't lose the meeting.

Acceptance Criteria:

  • Given a recording is active and the ML service becomes unavailable, the system continues capturing and storing audio
  • The UI displays a clear message indicating that audio is being captured and transcription/insights will be generated when services recover
  • Recovery is fully automatic — no user intervention required

Story 12: Recording Duration Limit

As a WordLoop user, I want to be warned when I'm approaching the recording time limit so that I can wrap up the meeting before it's cut off.

Acceptance Criteria:

  • Given a recording has been active for a configurable duration (default: 4 hours), the system automatically stops the recording
  • A warning is shown to the user at a configurable interval before the limit (e.g., 10 minutes before)
  • When the recording is auto-stopped, the standard post-meeting generation and reprocessing pipeline runs automatically

Screen Inventory

ScreenStatusData neededActions
Meeting Detail — Recording ControlsExtend existingmeeting.source_type, meeting_audio_files.statusPress Record, Press Stop
Live Recording ViewExtend Meeting DetailTranscriptSegmentEvent (WS), TalkingPointEvent (WS), EntityChanged { entity: task } (WS), RecordingStartedEvent, RecordingDegradedEventAdd task (optimistic), Stop recording
Meeting Detail — PlaybackExtend existing (post-recording)GET /meetings/{id}/audio-url, transcript segments with start_ms/end_ms, person_idPlay/pause/seek/speed, click segment to seek

Information Architecture

Live Recording View

[Meeting Detail — Recording Active]
  ├── Recording Indicator (pulsing, top banner)
  │     elapsed time | Degraded mode warning (conditional)
  ├── Main Area (two columns)
  │     Left: Live Transcript (auto-scroll)
  │             [interim segment — visually muted]
  │             [final segment — speaker label or person name]
  │     Right: Live Sidebar
  │             ├── Talking Points (draft badge)
  │             │     scrollable list, latest at top
  │             └── Tasks
  │                   task input field
  │                   scrollable list (user vs system indicator)
  └── [Stop Recording] button

Meeting Playback View

[Meeting Detail — After Recording]
  ├── Audio Player (fixed header)
  │     ◀ 15s | ▶ Play | ▶▶ 15s | 01:23 / 42:17 | speed | scrub bar
  ├── Main Area (two columns)
  │     Left: Transcript
  │             [segment — highlighted when current, click to seek]
  │             speaker label or resolved person name per segment
  │     Right: Post-Meeting Sidebar
  │             ├── Talking Points (draft → final badge)
  │             ├── Topics
  │             └── Tasks

On this page