---
name: RingCentral transcript availability for Exult
description: What transcription features are enabled vs blocked on the Exult RC account, and how to pull voicemail transcripts via API
type: reference
---

## What's enabled (2026-04-10 verified)

**Voicemail-to-Text** is active across all extensions. Every voicemail message record includes two attachments:
1. `type: AudioRecording` — contentType `audio/mpeg`, the MP3 audio file
2. `type: AudioTranscription` — contentType `text/plain`, the transcribed text

The `vmTranscriptionStatus` field on the message record signals readiness:
- `Completed` — transcript attachment is ready, fetch via URI
- `Failed` — transcription failed, no attachment
- `NotAvailable` — too short / silent to transcribe, no attachment
- `InProgress` — still processing

To fetch a VM transcript:
```python
url = f"https://platform.ringcentral.com/restapi/v1.0/account/{ACC}/extension/{ext_id}/message-store?messageType=VoiceMail&perPage=50"
r = json.loads(urllib.request.urlopen(urllib.request.Request(url, headers={'Authorization': f'Bearer {access}'})).read())
for m in r.get('records', []):
    if m.get('vmTranscriptionStatus') == 'Completed':
        for a in m.get('attachments', []):
            if a.get('type') == 'AudioTranscription':
                transcript = urllib.request.urlopen(urllib.request.Request(a['uri'], headers={'Authorization': f'Bearer {access}'})).read().decode()
                print(transcript)
```

## What's blocked (current plan limits)

- **RingSense / RingSense for Sales** — call recording transcription + insights. False on all flags, reason `ServicePlanLimitation` or `AccountLimitation`. Would require plan upgrade. List price ~$25/user/mo.
- **VoiceCallsLiveTranscriptions** — live call transcription. False, `ExtensionTypeLimitation`.
- **VoiceCallsRecordingTranscriptions** — transcripts of recorded calls (not voicemails). False, `ServicePlanLimitation`.
- **AI features**: AIVoicemailSummaries, AIGeneratedNotes, AIHub, AIGenSearch, AISMSResponder, PIIReductionForTranscriptions — all False.

## JWT app scope

The "Remote Admin" JWT app (client_id 8TyrvHEIIIefIt6fGqdH0v) HAS `ReadMessages` in its scope. Token's actual scope string includes: EditAccounts, ReadMessages, SubscriptionWebSocket, ReadAccounts, EditExtensions, RoleManagement, ReadAuditTrail, ReadCallLog, ReadCallRecording, SubscriptionWebhook, WebSocket.

An earlier session believed ReadMessages was missing — that was a stale probe. ReadMessages IS granted.

## Common confusion

When Gautam says "I've seen transcripts of all calls" — he most likely means voicemail transcripts, which are surfaced in the RC app + email notifications for every VM. Voicemails represent ~14% of inbound call volume (the calls that go unanswered). The other ~86% (answered calls) are audio-only recordings without transcripts unless the account upgrades to RingSense.
