Skip to content

Recording import

A recording import fetches recordings from your old system and hands each one to the QA Bot. You can also upload files by hand. See uploads.

  1. Open Setup, then Integrations, then Connections. Find Recording import and press Connect.
  2. Under Where the recordings are, choose “A web page that lists the files” or “An S3 bucket”, then fill in its fields (below).
  3. Set Check every (minutes, 0 for manual only). Use 0, or a number from 5 to 10,080.
  4. Optional: set Recordings per run (default 50, most 500), Largest file (MB) (default 100, most 500) and Campaign label. The label is used for recordings that name no campaign.
  5. Under Secrets, fill in what your source needs. A web page can take an Authorization header. A bucket needs an Access key and a Secret key.
  6. Press Connect, then Test. It lists the source and says how many recordings it can see.
  7. To import now, call POST /api/integrations/v1/connectors/{id}/recording-import/run. It answers 202 and works in the background. It answers 409 if a run is already going. This needs a signed-in admin session.
  8. To follow it, call GET /api/integrations/v1/connectors/{id}/recording-imports. Add ?status= with queued, processing, done or failed.

Give the Index address of a page that answers a GET with JSON. This format is our own. It is not a standard.

{
"items": [
{
"id": "call-20261005-0001",
"url": "files/call-20261005-0001.wav",
"filename": "call-20261005-0001.wav",
"agent": "Sam",
"campaign": "Medicare fall",
"call_date": "2026-10-05T14:03:11Z"
}
]
}
  • url is required. A relative url is read against the index address.
  • id is the recording’s unique name. Without it, the full address is used.
  • filename, agent, campaign and call_date are optional. A bare array of items is also accepted.
  • The index may be up to 8 MB. Files are fetched with the same Authorization header.

Fill in Bucket. Optional: Endpoint (for S3-compatible storage; the default is Amazon’s), Folder prefix and Region (default us-east-1). Addresses are path-style: endpoint/bucket/key. The key of each file is its unique name. Keys that end in / are skipped.

  • Only .wav and .mp3 files. Any other type fails at once with “unsupported file type”.
  • Each recording is imported once. It is recognised by its id, or by its key in a bucket.
  • A run takes at most Recordings per run new files. The rest wait for the next run.
  • A failed file is tried up to 3 times in all. A file over Largest file (MB) is not retried.
  • Source addresses are checked like webhook addresses: public only, no redirects.

The QA Bot then scores each recording. See how the QA Bot scores.