What this does
When a customer sends a voice note on WhatsApp, WAGHL forwards it to ElevenLabs' transcription API. The transcribed text is stored in a custom field on the GHL contact, where it's searchable, taggable, and usable in other workflows.
Prerequisites
- An active ElevenLabs subscription with sufficient tokens
- Access to your WAGHL admin panel
- Access to your GoHighLevel account (sub-account level)
Step 1: Get your ElevenLabs API key
Visit ElevenLabs
Open elevenlabs.io and click Go to app. Create an account if you're new, or log in.
Create an API key
Make sure your account has tokens. Navigate to API Keys in the dashboard. Click Create. Copy and store the key securely — you won't be able to retrieve it again.
Step 2: Add the key to WAGHL
Open WAGHL admin panel
Log into your WAGHL admin panel. Navigate to the User Section.
Edit your location
Locate your Location ID. Click the Edit icon. Enter your ElevenLabs API key in the appropriate field. Click Update.
Step 3: Create the GHL custom field
Navigate to custom fields
In your GHL sub-account, go to Settings → Custom Fields → Add Field.
Configure
Type: Multi-line Field. Name (case-sensitive!): STT. Group: any (e.g. "General Info"). Click Save.
The custom field name must be exactly STT — case-sensitive, no spaces. If the name differs, the integration won't populate the field.
Step 4: Build the workflow
Create a workflow
In GHL Automation, create a new workflow. Add trigger: Customer Replied.
Add the filter
Filter: messages containing the exact phrase "voice note" (with the WAGHL emoji marker). This ensures only voice messages trigger the transcription.
Add a webhook action
Add a Webhook action with the URL from the table below. Method: POST.
Configure custom data
Add a custom data field named voice_note (no extra spaces). Set its value to {{message.attachments}} (use the variable picker: stack icon → Messages → Message Attachments).
Webhook URLs
| Provider Name | Webhook URL |
|---|---|
| WhatsApp Gateway |
https://trigger.apimerger.com/stt
|
| WhatsApp Gateway 1 |
https://trigger1.apimerger.com/stt
|
| WA1 Connector |
https://wa1.apimerger.com/stt
|
| WA2 Connector |
https://wa2.apimerger.com/stt
|
Step 5: Test it
From a test contact, send a voice note to your WAGHL number. Verify:
- The voice message arrives in your GHL inbox normally
- Within a few seconds, the STT custom field on the contact gets populated with the transcribed text
Alternative: API key in webhook
If you'd rather not store your ElevenLabs API key in the WAGHL admin panel, you can pass it directly in the webhook custom data. Add an additional field named api_key with your ElevenLabs key as the value. This bypasses the admin-panel storage entirely.
What's next?
- ElevenLabs Text-to-Speech — generate voice notes from text using cloned voices
- Record voice notes from GHL — outbound voice from the conversation panel
- ChatGPT chat replies — auto-reply to transcribed voice notes