Transcription
Transcribe audio recorded outside Kilevel — uploads, cloud storage, FTP, Google Drive or URLs — and run the same analysis a call gets.
Transcription is not only for Kilevel's own calls. A transcription job takes audio from anywhere — a call centre's archive, recorded meetings, voicemails — transcribes it, and runs structured outputs over the result. What comes out is the same shape as a call record, so everything that already reads calls reads these too.
A job is configured once and holds every setting: where the audio comes from, the language, how speakers are separated, what the model should extract, what is attached from your own systems, and how much of it may run at a time.
Sources
| Source | How it works |
|---|---|
| Upload | Files or a ZIP uploaded to the job. Audio is deleted once transcribed unless you choose to keep it |
| S3 bucket | Any S3-compatible storage — AWS, Cloudflare R2, MinIO, Wasabi, Backblaze B2, DigitalOcean Spaces, Google Cloud Storage. The cheapest source: each recording is handed over as a short-lived signed link to your own bucket |
| FTP / SFTP | A folder on your own file server, read at the moment each recording is transcribed |
| Google Drive | Files are read from Drive when needed, not copied. A folder can be watched, so new files are transcribed as they arrive |
| URL | A public or pre-signed link to the file, one per line |
| API | A job that stays open and transcribes whatever another system hands it, one recording at a time |
The four folder-shaped sources — S3, FTP/SFTP, Drive and a watched API job — can keep running rather than finishing: see Sources and watching for what each needs and how a watch is kept cheap on a folder that only grows.
Language
Fix the language, detect it per file, or transcribe multilingual audio in which speakers switch languages mid-conversation. Fixed is the most accurate when every recording is in the same known language; detection commits to one language per recording, which is what multilingual audio breaks.
Speakers
- Automatic — splits speakers by channel when the file has one channel per speaker, and by voice otherwise.
- Always diarize — separate speakers by voice, the only option for a mono file.
- Split by channel — one channel per speaker; a mono file fails rather than being guessed.
- No separation — a single stream of text.
Expected speakers is not sent to the provider. It decides whether channel splitting is possible at all, and caps the reported speaker count so a noisy two-party call is not labelled as seven people.
Diarization only ever says "Speaker 1" and "Speaker 2" — neither carries identity. Which of them is your agent is worked out separately, and every agent-specific number depends on it: see Analysis.
Analysis
Every new job starts with the Conversation Quality Core metric pack and the system output already attached, so a job created without touching the analysis section still produces comparable numbers rather than transcripts alone. Both are ordinary entries in the list and can be removed before the job starts.
There are twelve metric packs, an "explain every judgement" setting that makes the model write down its reasoning, and five metrics measured straight from the audio with no model involved. Analysis and metric packs covers all of it.
Details from your own systems
The audio cannot tell you who the agent was, which customer called, or when the conversation started — so Kilevel never guesses. Point a job at where you already keep that (the file name, a spreadsheet, or the call that pushes the audio) and every transcription carries it, as filterable columns kept separate from the analysis. See Details and linking.
Other job settings
| Setting | What it does |
|---|---|
| Redact personal data | Removes emails, phone numbers, IBANs, card numbers and the names you imported from the transcript before it is stored or analysed. Destructive by design — see Analysis |
| Keep source audio | Off, uploaded audio is deleted the moment its transcript is stored. On, it is kept for replay and counts against your storage quota. Drive, S3 and FTP recordings replay from your own storage either way |
| Transcribe at once | How many of this job's files run in parallel. A spend control rather than a speed setting — your account ceiling applies across all jobs on top of it |
| Skip files already transcribed | Off by default, because re-running a file is usually deliberate. On, a file whose contents match one transcribed in another job is skipped and its transcript copied across. Two identical files inside the same job are always skipped |
Where the results appear
Transcriptions are conversations, so they show up beside calls and chats rather than only on their own page.
- Reports — pick Transcript in the session-type selector. The details become ordinary columns you can sort, group and filter by (agent, customer, project, stage, conversation start, tags), your own custom fields are available under Data Columns → Details, and the Job filter lists your transcription jobs. Clicking a row opens the transcript.
- Performance — every agent's conversations are counted across calls, chats and imported recordings together, with the split kept visible. Agents named only inside an imported archive get a row too.
- Collections — pick Transcriptions as a target to run a collection analysis over imported recordings, filtered by the details they were enriched with. Only recordings that finished transcribing are reachable, since the rest have nothing to analyse yet.
Results
Each file's transcript and extracted fields land in the same shape as a call record. Transcripts can be viewed two-sided or stacked, and exported individually or in bulk; everything is also readable over the API.
Note
A finished transcription starts automations through its own events rather than the call events: New Transcription Analysis fires once the transcript and its analysis are stored, and New Conversation Score fires once per scorecard that scored it. An automation built on New Call Analysis does not run for imported recordings, because they have no flow or live session behind them. Pick the transcription event for those.
In this section
- Sources and watchingWhere a transcription job reads audio from — buckets, file servers, Drive, uploads, URLs or your own API — and how a job keeps running once the first batch is done.
- Analysis and metric packsWhat the model extracts from each finished transcript — ready-made metric packs, your own structured outputs, written reasons, and the metrics measured straight from the audio.
- Details and linkingAttach the agent, customer, project and conversation time your own systems already hold — and tie imported recordings to the agents and contacts in your workspace.
- Pushing recordings over the APIHand recordings to a standing transcription job from your own system, and read the transcript, analysis and details back.