Uploading Your First Call
Learn how to upload an audio file and start transcription and AI analysis.
Supported formats and file size
| Format | Extension | Notes |
|---|---|---|
| WAV | .wav | Recommended for stereo recordings. Supports channel splitting. |
| MP3 | .mp3 | Common compressed format. Works well for mono recordings. |
| M4A | .m4a | Common on iPhone and Mac recordings. |
| OGG | .ogg | Supports Opus/Vorbis codecs. |
⚠️The maximum file size is 500 MB. Split larger files into chunks before uploading.
Upload steps
- Click Upload in the navigation bar.
- Drag and drop a file, or click Choose Files.
- Fill in the upload fields below (Call ID is optional).
- Click Upload Files.
Upload fields
| Field | Required | Description |
|---|---|---|
| Call ID | Optional | Unique call identifier. Filename is used if blank. Uploading with a duplicate Call ID returns HTTP 409. |
| Language | Optional | ja-JP (Japanese) or en-US (English). Falls back to org default if blank. |
| Operator ID | Optional | Agent's ID. Used to link calls to agent scorecard. |
| Customer ID | Optional | Customer's ID. Useful for CRM cross-referencing. |
| Department | Optional | Department name. Enables filtering in analytics. |
| Call Date | Optional | Date the call took place. Defaults to upload date if omitted. |
Job queue behaviour
After upload, the file is stored in AWS S3 and a processing job is queued in SQS. The worker service picks it up and sends it to AmiVoice for transcription.
| Status | Meaning |
|---|---|
| Queued | File uploaded to S3 and waiting in SQS queue. |
| Processing | Worker is transcribing the audio with AmiVoice. |
| Done | Transcription (and AI analytics if auto-generate is on) complete. |
| Failed | An error occurred. Check server logs for details. |
ℹ️The dashboard auto-refreshes every 5 seconds. Expected processing time is roughly 1–2× real time (a 5-minute call takes 5–10 minutes).
Ingest API alternative
For automated ingestion from a CRM or recording system, use the Ingest API. Authenticate with the X-API-Key header.
curl -X POST https://app.koeiq.com/api/ingest/upload \ -H "X-API-Key: your_api_key" \ -F "file=@recording.wav" \ -F "call_id=CALL-001" \ -F "language=ja-JP"
💡Generate your API key in Settings → API Key. See the Ingest API docs for full details.