Skip to main content

Overview

Auto-Processing lets you automatically transcribe recordings when they’re uploaded, and optionally generate summaries when transcription completes — without any additional API calls. Benefits:
  • Zero-code processing pipeline — upload once, get transcription and summary automatically
  • Configurable per organization, project, end user, or device
  • Choose your preferred ASR provider and LLM provider at each level
  • Non-blocking — auto-processing errors never fail the upload
Use Cases:
  • Medical clinics: Upload recording → auto-transcribe → auto-generate SOAP notes
  • Sales teams: Upload call recording → auto-transcribe → auto-generate deal summary
  • Legal firms: Upload consultation → auto-transcribe → auto-generate legal memo
  • Enterprise: Upload meeting → auto-transcribe → auto-generate meeting notes

Quick Start

Enable auto-processing for an entire project with a single API call:
Now every recording uploaded in this project will be automatically transcribed and summarized.

How It Works

Processing Flow

  1. Recording upload completes — your app calls POST /v1/recordings/:id/upload-complete
  2. Auto-transcription check — the system resolves the processing config for the recording’s device/end_user/project
  3. If enabled — a transcription job is queued automatically (same as calling POST /v1/recordings/:id/transcribe)
  4. Transcription completes — the worker checks the same config for auto-summary settings
  5. If enabled — a summary job is queued automatically (same as calling POST /v1/summaries)
  6. Webhooks firetranscription.completed and summary.completed events are sent as usual

Config Resolution

The system determines which processing settings to apply based on the recording’s context: This means you can set different processing rules at each level. See Hierarchical Configuration for details on how inheritance works.

Error Handling

Auto-processing is non-blocking. If auto-transcription or auto-summary fails:
  • The upload still completes successfully
  • The error is logged but does not affect the parent operation
  • You can always retry manually via the API
Auto-processing requires that the relevant AI provider API keys are configured. If you’re using user-provided API keys, they will be used automatically. Otherwise, the system falls back to Bota’s default keys.

Configuration

Processing Config Schema

Auto-Transcription Settings

Available ASR Providers:

Auto-Summary Settings

Available LLM Providers: Available Templates:

Setting Config at Different Levels

Auto-processing uses the hierarchical configuration system, so you can set it at any level.

Project Level

Apply to all recordings in a project:

End User Level

Override for a specific end user (e.g., a clinician who needs SOAP notes):
You only need to specify the fields you want to override. Dr. Smith’s recordings will still inherit auto_transcription and auto_summary.enabled from the project level — only the template changes.

Device Level

Override for a specific device:

Disable for a Specific Entity

Disable auto-processing at a lower level even if the parent has it enabled:

Remove Override (Revert to Inherited)

Delete the processing override to revert to the parent’s settings:

Monitoring

Webhook Events

Auto-processing triggers the same webhook events as manual processing: Subscribe to these events to track processing status. See Webhook Events for payload details.

Checking Results

After auto-processing completes, retrieve results the same way as manual processing:

Verifying Current Config

Check the resolved processing config for any entity:

Troubleshooting

Recording Uploaded But Not Auto-Transcribed

Check:
  1. Processing config is enabled: GET /v1/devices/:id/config/processing
  2. Recording reached uploaded status (check recording.uploaded webhook)
  3. ASR provider API key is configured (system default or user-provided)

Auto-Transcription Works But No Summary

Check:
  1. auto_summary.enabled is true in resolved config
  2. Transcription completed successfully (not failed)
  3. LLM provider API key is configured

Wrong Provider or Template Used

Config is resolved from the recording’s context at the time of processing. Check which level the setting is coming from:
A more specific level always takes precedence. To revert to the parent’s setting, delete the override at the lower level.

Hierarchical Config

Learn how config inheritance works

Create Transcription

Manual transcription API reference

Create Summary

Manual summary API reference

Webhook Events

Subscribe to processing events