Unify Logo Footer.svg
Unify Applications
Logo
Copilot Voice Transcripts

Copilot Voice Transcripts

Logo

5 mins READ

Overview

The CopilotVoiceTranscripts block is a companion to the Copilot Chat & Voice block. It renders a structured, scrollable transcript log of voice interactions between the user and the AI assistant. Each transcript entry shows the speaker (User or Assistant), the recognized or generated text, and an optional timestamp. The block can be placed on the same page as the Copilot block, on a separate summary page, or in an audit panel accessible to supervisors.

Note: The Copilot Voice Transcripts block reads from the transcript state of a sibling Copilot block on the same page. Voice mode must be enabled on the Copilot block, and the user must grant microphone permission. Text-only Copilot interactions do not generate transcripts visible in this block.

Properties Reference

PropertyTypeDefaultDescription
copilotRefstring (block ID)The ID of the Copilot block whose voice transcripts should be displayed. Select from the block ID picker in the inspector. The Copilot block must be on the same page.
showTimestampsbooleantrueShow the time each utterance was recognized or generated. Timestamps use the browser's local time formatted as HH:MM:SS.
showSpeakerLabelsbooleantrueShow "User" and "Assistant" labels before each transcript entry. Disable to show a more chat-bubble-like layout with visual differentiation only (alignment and color).
maxEntriesnumberMaximum number of transcript entries to display. When unset, all entries from the session are shown. When set, only the most recent N entries are visible (older entries are hidden but remain accessible via export).
searchablebooleanfalseShow a search bar above the transcript list that filters visible entries by text match. Matching text is highlighted in the results.
downloadablebooleanfalseShow a Download button that exports the full transcript as a .txt file with timestamps and speaker labels. Useful for compliance exports and post-session review.
textSizeenum: sm | md | lgmdBase font size for transcript text. Use sm for dense audit logs; lg for accessibility or kiosk-style displays.
autoScrollbooleantrueAutomatically scroll to the latest entry when a new transcript item is added. Pauses when the user manually scrolls up; resumes when they scroll back to the bottom.
emptyStateMessagestring"No transcripts yet"Message displayed when no voice interactions have occurred yet in the session.

Binding Expressions

The Copilot Voice Transcripts block exposes its transcript data as bindable state. Use these expressions in other blocks on the same page:

ExpressionTypeDescription
{{ transcriptBlockId.latest.text }}stringThe text of the most recently received transcript entry (User or Assistant). Useful for binding to a display block that shows the last spoken phrase.
{{ transcriptBlockId.latest.speaker }}string"user" or "assistant" — the speaker of the most recent entry.
{{ transcriptBlockId.all }}arrayThe full transcript history as an array of { id, speaker, text, timestamp } objects. Bind to a Data Table or Repeatable for a custom transcript rendering.
{{ transcriptBlockId.count }}numberTotal number of transcript entries in the session.
{{ transcriptBlockId.isRecording }}booleantrue while the Copilot's speech recognition is actively capturing audio.

Setting Up a Voice Audit Panel

  1. Add a Copilot block with voice mode: Ensure a Copilot block is on the page (or in a global layout) with Voice Mode = enabled. Note its block ID (e.g. copilot1).

  2. Add the CopilotVoiceTranscripts block: Drag CopilotVoiceTranscripts onto the page. In the Content inspector, set Copilot Ref to copilot1 (the Copilot block's ID).

  3. Configure display options: Enable Show Timestamps = true, Show Speaker Labels = true, Searchable = true. Set Text Size = md. Enable Downloadable = true for the compliance export button.

  4. Restrict visibility (optional): If the transcript is for supervisor review only, add a Visibility condition: {{ currentUser.role === "supervisor" }}. Regular agents see the Copilot block but not the transcript panel.

Examples

Example: Call center audit log

Place the CopilotVoiceTranscripts block in a supervisory view alongside a Data Table of active calls. Bind a separate Typography block to {{ transcripts.latest.text }} to show the real-time last utterance. Set Max Entries = 200 to cap memory usage for long calls, and enable Downloadable = true for post-call QA review.

Example: Voice command history panel

Show only the User-side utterances (voice commands) in a compact panel. Bind a Repeatable to {{ transcripts.all.filter(e => e.speaker === "user") }} and render each item as a Tag block with the command text. This gives users a visual confirmation of the commands the system recognized during their session.

Frequently Asked Questions

Does the transcript persist after the user navigates to a different page?

Transcript data is stored in the Copilot block's session state, which is scoped to the browser session and the page the Copilot block lives on. If the Copilot block is placed in a global layout (shared across pages), the transcript persists across page navigations. If the Copilot block is page-scoped, navigating away and back resets the transcript. To persist transcripts across sessions, wire the onNewEntry event from the Copilot block to an API action that saves each entry to your backend.

Can multiple CopilotVoiceTranscripts blocks reference the same Copilot block?

Yes. Multiple transcript blocks can reference the same Copilot block's ID. They all read from the same transcript state, so they stay in sync. This is useful for displaying a compact "last utterance" widget and a full scrolling log simultaneously in different parts of a layout.

Does the Download button produce a structured format I can parse?

The default download produces a plain .txt file with one line per entry formatted as [HH:MM:SS] Speaker: text. For a machine-readable export, use a Button block with an Export as JSON action bound to {{ transcripts.all }} — the full array of { id, speaker, text, timestamp } objects — and export it via the Export File action targeting a JSON format.

PageRelationship
Copilot Chat & VoiceThe Copilot block that generates the voice transcript data this block displays
Copilot OverviewArchitecture overview of the AI Copilot system and its components
MeetingFull meeting transcription for video call contexts