Documentation Index
Fetch the complete documentation index at: https://docs.bota.dev/llms.txt
Use this file to discover all available pages before exploring further.
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
- 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:How It Works
Processing Flow
- Recording upload completes — your app calls
POST /v1/recordings/:id/upload-complete - Auto-transcription check — the system resolves the
processingconfig for the recording’s device/end_user/project - If enabled — a transcription job is queued automatically (same as calling
POST /v1/recordings/:id/transcribe) - Transcription completes — the worker checks the same config for auto-summary settings
- If enabled — a summary job is queued automatically (same as calling
POST /v1/summaries) - Webhooks fire —
transcription.completedandsummary.completedevents 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
Configuration
Processing Config Schema
Auto-Transcription Settings
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Enable automatic transcription on upload |
provider | string | System default | ASR provider to use |
| Provider | Description |
|---|---|
whisper | OpenAI Whisper (default) — 99 languages, word timestamps |
deepgram | Deepgram Nova-2 — real-time capable, speaker diarization |
assemblyai | AssemblyAI — Best/Nano models |
elevenlabs | ElevenLabs — high accuracy, language detection |
Auto-Summary Settings
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Enable automatic summary after transcription |
provider | string | System default | LLM provider to use |
template | string | general_notes | Summary template |
| Provider | Description |
|---|---|
gemini | Google Gemini 2.0 Flash (default) — JSON output |
openai | OpenAI GPT-4o — JSON mode |
claude | Anthropic Claude Sonnet 4 — structured output |
| Template | Industry | Output |
|---|---|---|
general_notes | General meetings | Key points, action items, decisions |
sales_call | Sales | Pain points, budget, timeline, next steps |
clinical_soap | Healthcare | SOAP notes (Subjective, Objective, Assessment, Plan) |
legal_memo | Legal | Facts, issues, analysis, conclusion |
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:| Event | Trigger |
|---|---|
transcription.started | Auto-transcription job begins |
transcription.completed | Auto-transcription finished |
transcription.failed | Auto-transcription failed |
summary.started | Auto-summary job begins |
summary.completed | Auto-summary finished |
summary.failed | Auto-summary failed |
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:- Processing config is enabled:
GET /v1/devices/:id/config/processing - Recording reached
uploadedstatus (checkrecording.uploadedwebhook) - ASR provider API key is configured (system default or user-provided)
Auto-Transcription Works But No Summary
Check:auto_summary.enabledistruein resolved config- Transcription completed successfully (not
failed) - 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: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

