Docs
Get started

Record voice notes inside HighLevel

HighLevel's Conversations composer doesn't expose a mic button out of the box. This customization injects one with a single line of Custom JavaScript, so agents can record voice notes and send them in the same tab where they reply to everything else.

Overview

This is a front-end enhancement applied through HighLevel's Custom JavaScript field. It does not replace HighLevel's messaging infrastructure. It only adds a microphone control to the Conversations composer so your agents can capture audio directly from the browser and ship it through the conversation they have open.

The audio still travels through the same channel that the conversation uses (WhatsApp, via your Wazzap-connected number) and respects every limit that channel already has. Think of it as a UI patch that closes a real productivity gap inside HighLevel.

Combine this with the voice command for the full loop: record in HighLevel, send as a native WhatsApp voice note, no app switching.

Installation

To enable voice note recording for your entire HighLevel account:

  1. Sign in to HighLevel as an admin.
  2. Navigate to Settings → Company → Custom JavaScript.
  3. Paste the script below into the Custom JavaScript section.
  4. Hit Save.
  5. Hard-refresh any open Conversations tab (Ctrl+Shift+R or Cmd+Shift+R).

The script

<script src="https://record.b3st.dev/voice-record.js?r=4.0.1"></script>

The query parameter r=4.0.1 pins a specific version of the script. We recommend pinning so an upstream change doesn't surprise your agents mid-shift. Update deliberately, test, then roll out.

How it works

  1. HighLevel loads your Custom JavaScript on every page where Custom JS is applied.
  2. The script injects (or enables) a voice recording control in the Conversations composer UI.
  3. The agent can start, stop and send the recorded audio without leaving the conversation.

Agent workflow

  1. Open a contact's conversation in HighLevel.
  2. Locate the microphone icon added by the script in the message composer.
  3. Click to start recording. The browser may prompt for mic access the first time.
  4. Click again to stop recording. You'll see a quick preview / waveform.
  5. Click send. The audio leaves through the conversation's active channel.

Want the audio to arrive as a native WhatsApp voice bubble instead of a regular audio attachment? Type voice in the message body when you send. Full details in the voice notes doc.

Validation checklist

After installing the script, walk through these checks before announcing it to your team:

  • Open a fresh Conversations tab. Confirm the mic icon appears in the composer.
  • Record a 3 to 5 second test message and send it to your own number.
  • Verify the recipient receives clean audio.
  • Test in Chrome (primary), then in an incognito/private window.
  • Test with at least one admin and one agent role to confirm permissions work for both.

Troubleshooting

The mic button doesn't appear

  • Confirm the script is saved under Settings → Company → Custom JavaScript.
  • Hard refresh the browser (Ctrl+Shift+R or Cmd+Shift+R).
  • Check if an adblocker or privacy extension is blocking record.b3st.dev. Whitelist the domain.

Recording works but the audio never sends

  • Verify the conversation channel supports audio. WhatsApp via Wazzap always does.
  • Confirm the browser has microphone access for HighLevel's domain.

The browser never asks for mic permission

Open your browser settings, find Site permissions → Microphone and switch your HighLevel domain to Allow. Some browsers also block mic access on sites that aren't using HTTPS. HighLevel is HTTPS by default, so this only matters if you've custom-mapped a domain that isn't HTTPS yet.

Security notes

  • The script loads from a third-party domain (record.b3st.dev). Confirm this fits your organization's vendor approval policy before rolling out widely.
  • Custom JavaScript at the Company level applies account-wide. Every sub-account under your agency gets the mic button.
  • Version is pinned via the r= query param. Update deliberately, never blindly.
!

If your environment scopes Custom JS differently (for example by sub-account override), the script's reach will follow that scope. Confirm with whoever owns your HighLevel admin policy.

Was this page helpful?