The Daily Conversation Audio Recordings feature enables automated generation, storage, and retrieval of hourly conversation audio data per tenant. It consists of background jobs for audio file processing and API for on-demand access. This feature is essential for meeting legal compliance requirements.
For the technical details please check the API Reference.
1. Enabling the Feature
The system uses a multi-tenant architecture allowing the daily conversation audio recordings feature to be enabled or disabled individually for each tenant. This configuration is managed by the host user through tenant feature settings, which control both audio recording generation and access rights.
Additionally, data retention can be configured per tenant to span from 1 to 7 days, depending on compliance requirements. Audio recordings are accessible only to tenants with the feature enabled, and access is strictly governed by tenant authentication and permissions.

2. Daily Audio Recording Generation Process
This sequence diagram outlines the logic and flow of a nightly background job executed by the AI Agents. The job is responsible for generating and storing hourly conversation audio recordings for each tenant who has the feature enabled.

Execution Flow
- A nightly scheduler initiates a background job within the AI Agents, processing all tenants with the daily conversation audio recordings feature enabled.
- For each tenant, the system iterates through all 24 hours of the previous day, retrieving audio file references from the database.
- Audio files are downloaded from MinIO and converted to OPUS format (24 kbps) for optimal compression and storage efficiency.
- The converted audio files are organized by conversation and session structure.
- A metadata.json file is generated for each hourly chunk.
- Each hourly audio collection is compressed into .zip format **along with its metadata to optimize both storage and transfer.
- The zipped files are uploaded to MinIO, following a clear and consistent path structure:
daily-conversation-audio-recordings/{yyyy}/{MM}/{dd}/{HH}.zip
If ZIP file generation encounters an error, the system will automatically retry up to two additional times, after processing all tenants.
3. Daily Conversation Audio Recording Fetching
This sequence diagram describes the on-demand data retrieval process used by clients to fetch daily conversation audio recording download links for a given UTC day. The API returns presigned URLs for secure, time-limited access to hourly ZIP files.

Execution Flow
- The client initiates a GET request to retrieve download links for all 24 hours of a specific day, providing:
- utcDay in UTC format (e.g., 2025-12-12)
- Upon receiving a request, the AI Agents validates the client's authentication token and checks tenant-specific permissions to access the audio recordings.
Requests without valid tokens or sufficient access rights are rejected with appropriate status codes.
- Once authorized, the AI Agents generates presigned URLs for each hourly ZIP file available in MinIO. These URLs are valid for 24 hours.
If a presigned URL expires, the client will receive a 401 Unauthorized response when attempting to download.
- The AI Agents returns a JSON response.
- Clients can then directly download the ZIP files from MinIO using the presigned URLs.
Clients are limited to 10 downloads per hour. Exceeding this limit will result in a 429 Too Many Requests response.
Key Components
- AI Agents: Initiates and executes the nightly job, handles validation, data processing, and response logic for daily conversation audio recordings.
- Client: Requests daily conversation audio recordings by specifying the desired UTC date.
- Database: Stores conversation logs and audio file storage path references.
- MinIO: Stores original audio files and compressed hourly ZIP archives.