#Export and Download

10 min read
RoleAccess Level
Client AdminIn-scope CSV export with a choice of all twelve columns including Transcript, the option to turn redaction off for full-detail values, and inline TXT transcript download when the call is eligible
Client ManagerIn-scope CSV export with a choice of the eleven non-transcript columns; the export stays redacted and the inline transcript download control is not shown
Client StaffIn-scope CSV export with a choice of the eleven non-transcript columns; the export stays redacted, transcript download is not available and is also refused server-side

#Overview

The Calls page exports your filtered call list as a CSV. Selecting Export CSV... always opens the Export calls as CSV popup first - it never downloads straight away. In the popup you choose which columns the file contains and whether personal information is masked, then select Download CSV.

Dates in the file use the same validated display and filter timezone as the Calls view. The current Calls review surface is inline: direct links to /calls/<call-id> redirect back to /calls?expand=<call-id>, where the transcript preview and mounted actions appear inside the Calls page.

For eligible inline reviews, the mounted transcript action downloads a redacted TXT transcript. The BFF route also supports PDF and TXT-with-review-history requests, but no portal surface currently mounts those controls.

These downloads use your signed-in portal session. You do not need to enter or send an API key.

#Prerequisites

  • You are signed in to the AiDial portal
  • For CSV export: navigate to the Call Log
  • For inline TXT transcript download: expand an eligible call in the Call Log
  • The calls belong to your tenant and assigned project scope
  • If your account has multiple project scopes, select the project before exporting

#CSV Call Export

#How to Export

  1. In the Call Log, apply export-supported filters: project, date range, status, caller, and agent
  2. Select Export CSV...
  3. In the Export calls as CSV popup, tick the columns you want. The popup shows a live N columns selected summary, and the footer shows the current matching-call count and date range
  4. Decide whether Redact personal information stays on
  5. Select Download CSV
  6. The portal shows preparation feedback while the server streams the file
  7. Once the download starts, the popup closes, focus returns to the Export CSV... button, and the result is announced

CSV export is handled in the current request through the portal BFF route /api/exports/calls; it is not a background export job. Larger filtered ranges can take longer. You can cancel an in-progress export from the popup.

#Choosing Columns

The popup lists one fixed set of twelve columns, always in the order they appear in the file.

Recommended - ticked when the popup opens (Transcript is offered to Client Admin only):

  • call_started_at (Call date/time)
  • caller
  • duration_seconds
  • call_status
  • primary_outcome
  • sentiment
  • summary
  • transcript

Additional - unticked when the popup opens:

  • call_id
  • project_id
  • channel
  • agent

Select all ticks all twelve; Reset to recommended restores the opening state. The header row and every row follow the displayed order, not the order you ticked them in. Download CSV is disabled when no column is selected or while an export is running.

The identifier shown under each column label is the exact CSV header you will see in the file. Header names and order are fixed in English across portal locales.

#Redacting Personal Information

Redact personal information is ticked by default for every role, with the supporting line "Mask personal information in caller details, summaries and transcripts."

  • On - the caller value is masked, an unsafe summary is left empty, and the transcript column contains the stored redacted conversation. Nothing is decrypted for the export.
  • Off - available authorised full-detail caller, summary, and transcript values are returned. Only a Client Admin can turn redaction off.

A Client Manager or Client Staff user sees the checkbox ticked and locked, with an inline note explaining the role restriction, and is not offered the Transcript column at all. A request that asks for the Transcript column or an unredacted export from a role that may not use them is refused server-side with the same not-found style response used for out-of-scope resources, and is never quietly downgraded instead.

With redaction off, a row that cannot be authorised - for example because the tenant does not grant transcript access, the project governance record is missing, or the retention window has elapsed - simply gets an empty value for that column. The call itself is still exported.

#Export Limits

  • Maximum 10,000 calls per export. If your filter matches more than 10,000 calls, narrow your date range or add filters. The portal disables the export trigger before the request, and the server also rejects over-cap exports.
  • One export at a time for the same user and tenant. Wait for your current export to complete before starting another.
  • Repeated exports in a short period are rate-limited per user and per tenant.
  • A transcript cell is capped at 32 KiB of UTF-8 text and the complete file at 50 MiB. The server checks the complete file before download; an over-limit result is rejected rather than downloaded as a partial CSV, and the message tells you to untick Transcript or narrow the range or filters.
  • The portal may show an omitted-row count if matching calls are no longer available or no longer in scope by the time the CSV is streamed.

#What the CSV Contains

One row per matching call, with exactly the columns you selected.

  • call_started_at is formatted exactly as dd/mm/yyyy hh:mm:ss on a 24-hour clock in the Calls view timezone, without fractional seconds or an offset.
  • caller is masked while redaction is on and is empty when unavailable.
  • sentiment uses the available persisted call sentiment and the same customer labels as Calls: Positive, Neutral, Upset, or Unclassified when sentiment is unknown or unavailable.
  • summary is left empty when a value matches a personal-information pattern while redaction is on, rather than replaced with placeholder text.
  • transcript is one safely quoted multiline cell of ordered caller: and agent: lines, capped at 32 KiB. Only conversation turns appear; tool, system and other internal turns never enter the file. A call whose transcript was never recorded, whose caller declined or withdrew consent, or which has passed its retention window gets an empty cell and keeps its row — as does a call your organisation does not have transcript access for. There is no separate transcript-status column.
  • Empty duration, status, outcome, and channel values are blank.

CSV values that could be interpreted as spreadsheet formulas are neutralised before download, and standard CSV quoting preserves commas, quotes, and line breaks safely.

The current backend CSV schema does not include a signed recording-link column. See Recordings for the current recording posture.

#Transcript Download

Download an individual call transcript as a redacted TXT file from the inline Calls review surface when the download action is visible for your role and the call.

#When the Action Appears

The Download transcript button is rendered only when all three of these hold:

  • your role may download transcript text (Client Admin in the current portal)
  • the transcript loaded successfully for the call
  • the call has at least one transcript turn

This keeps the button hidden on calls where the download would always fail, such as a call with no transcript turns.

#How to Download

  1. In the Call Log, expand the call you want to review
  2. In the inline transcript side panel, select Download transcript
  3. The TXT download starts automatically

TXT downloads open with a call metadata block (business, call date, duration, direction, the masked caller number, the destination number, and status), followed by timestamped, speaker-prefixed transcript lines.

The underlying same-origin transcript BFF route is /api/calls/[callId]/transcript. It accepts TXT and PDF formats, and TXT can include labelled quality-review history when include_quality_history=true; however, the inline Calls action sends the TXT request only, and no portal surface currently mounts the PDF or review-history controls.

Transcript downloads are checked server-side for your role and call scope. Client Staff requests are refused before any transcript is fetched, so hiding the button is not the only control. Out-of-scope or unavailable transcripts return the same not-found style message, so the portal does not reveal whether another tenant or project has a matching call ID.

#Role-Specific Notes

  • Client Admin: The full column customiser is available for in-scope calls, including the option to turn redaction off. Inline TXT transcript download remains a separate redacted call-review action. Other decrypted transcript access uses the separate PII unlock and sensitive access workflow.
  • Client Manager: The full column customiser is available for in-scope calls, the export stays redacted, and the inline Calls review surface does not show the transcript download control.
  • Client Staff: The full column customiser is available for in-scope calls, the export stays redacted, the inline Calls review surface does not show the transcript download control, and a direct transcript download request is refused server-side.

#Security and Scoping

CSV export and transcript download requests are checked against your role, organisation, and assigned project scope before a file is returned. The Transcript column and turning redaction off are denied to every role except Client Admin at both the Portal BFF and direct API boundaries.

CSV export and transcript downloads must come from the signed-in portal session. Navigation visibility is not the security boundary; the portal performs access checks for each request and forwards only the server-side bearer token to aidial_api.

#Common Issues

  • Export button disabled: There may be no matching calls, more than 10,000 matching calls, or a required project may be missing.
  • Download CSV disabled: No column is selected, an export is already running, or the project scope is unresolved.
  • "Too many results" message: Your filter matches more than 10,000 calls. Add filters to narrow the results.
  • "Rate limited" message: You have made too many export requests in a short time. Wait a few minutes and try again.
  • "Already in progress" message: An export is already running for your user and tenant. Wait for it to finish or cancel the in-progress export.
  • Empty export result: Your filters matched calls previously, but no rows were available when the export ran. Adjust the filters and try again.
  • Business CSV version error: The API did not honour the exact requested portal_business_v3 profile. Try again after the API update; the Portal does not fall back or retry with another schema.
  • "Columns are not valid" message: The request carried an empty, repeated, or unrecognised column list. Select Reset to recommended and try again.
  • Redaction checkbox is locked / Transcript column missing: Both belong to the Client Admin-only transcript surface for this export.
  • Empty transcript cell: The conversation was never recorded, the caller declined or withdrew consent, the retention window has elapsed, your organisation does not have transcript access, or the value could not be authorised for that row. The customer file intentionally does not disclose the reason, and the call row is still exported.
  • Audio links are not listed: This is expected. The current Portal/API contract does not provide safe recording access URLs, and no signed-link column is produced.
  • Transcript download unavailable: The inline download action may be hidden for your role or the call, or the transcript may be missing, outside your current access scope, or temporarily rate-limited.
  • PDF or review-history option not visible: No portal surface currently mounts the PDF or review-history download controls.
  • Call Log - Search and filter calls before exporting
  • Call Review - Inline review panel behaviour
  • Recordings - Recording posture and why playback and download are not exposed
  • Troubleshooting - Common errors and resolution steps