Google Cloud Storage & Speech API V2 Transcription for Recordings/Voicemail on 3CX V20
Notes:
- Steps 1 and 2 can be skipped if you already have a GCloud account with appropriate rights and Google buckets.
- We provide a wizard driven integration for Google services, this document serves as a limited guide for anyone wishing to set-up this component manually.
Step 1 Necessary Account Access
To configure Google storage buckets, go to “IAM & Admin” > “IAM” in your Google Cloud dashboard and verify that your account has at minimum these roles assigned:
- “Service Account Admin”.
- “Service Account Key Admin”.
- “Project IAM Admin”.
- “Storage Admin”.
Step 2 Creating a Storage Bucket
You can skip this part if you already have Storage Buckets configured on your project
If you have an active subscription with configured payment options, proceed to create a new storage bucket under your Google cloud project :
From the main navigation menu, select “Storage” > “Browser” and click on “Create Bucket” to create a new storage bucket.
- On the "Create a bucket" page, configure:
- Name - enter a globally unique permanent name.
- Where to store data - select storage location type according to your requirements.
- Storage class - select the appropriate storage class for your use.
- Access control - set how to control access to the objects in the storage bucket.
- Advanced settings - optionally set encryption and retention policy preferences for the storage bucket.
- Click on “Create” to set up the new storage bucket.
- After creating your storage bucket, you can click on “Create folder” to add new folders for keeping backups and archived recordings in, e.g. “3cx_backups”.
Proceed to use your saved JSON key and set the configured Google Cloud storage bucket as a location to store 3CX backups and archive recordings.
⚠ Important: Stored backup files or archived recordings in the “Hold” state or stored/archived due to effective retention policy, cannot be deleted or overwritten by the PBX.
Step 3 Enable Cloud Speech-to-Text API for your project
From the Google Console, navigate to APIs & Services > Library and search for Cloud Speech-to-Text API. Select it and click “Enable”.
Step 4 Create a Service Account and Key with Storage and Speech Access
In your GCloud Project, Navigate to IAM & Admin > Service Accounts and click on “Create Service Account”. Give it a name and click “Create and Continue”.
Add the following Roles to your Service Account and click on “Continue” and then “Done”:
- Storage Admin
- Cloud Speech Administrator
Edit the newly created Service Account and select the “Keys” tab, then “Add Key”
Select the JSON type and click on “Create”.
A json file will be downloaded. Save it somewhere safe as you will not be able to download it again.
Step 5 Enable Remote Archiving and Enable Transcription
- To configure 3CX to use transcription for voicemails and/or recordings, go to Admin Console > System > Storage.
- Enable "Remote Data Storage & Archive" and select "Google Storage" for Location Type (Required).
- Upload the json file downloaded in the previous step, in the Private Key (JSON type) field and select a Folder/Path within your Google Storage Bucket.
- Enable the “Recordings” and “Voicemails” checkboxes to enable auto archive to Google Storage.
- Save, then go to Admin > Integrations > Transcription.
- Select “Google Speech” as the transcription engine
- Select the “Speech Language” dropdown to set the transcription language.
- Select what to transcribe:
- “Voicemails Only” - restrict to voicemails.
- “Recordings Only” - restrict to recordings .
- “Both Voicemails and Recordings”
- Click “OK” to apply the settings. After enabling Voicemail Transcription, the transcripted text is included in the email body for received voicemails. Additionally, in the 3CX Web Client’s Voicemail/Recordings sections, the transcripted text is displayed next to each voicemail/rec.
After enabling Voicemail Transcription, the transcripted text is included in the email body for received voicemails. Additionally, in the 3CX Web Client’s Voicemail/Recordings sections, the transcripted text is displayed next to each voicemail/rec.
Recordings are transcribed fully at the time of remote archiving (immediately / on scheduled time). 3CX includes Archive to the Bucket and therefore, the file can be transcribed in full.
See Also
- Call Control API for Linux
- Call Control API for Windows
- Creating a Call Processing Script
- Call Processing Script for DTMF Input
Last Updated
This document was last updated on 10 September 2026