Skip to main content
CLL
Step-by-Step Setup 10-15 minutes

Call Operations Setup

Conversations & Messaging Intermediate
Need more detail? Read the full guide for config deep-dives and best practices.

Access call recordings, transcriptions, and metadata through the GHL MCP server. This tool lets you retrieve audio files from completed calls, pull transcription text, and download transcription data for external processing. It is ideal for building call analytics dashboards, quality assurance workflows, and compliance archives.

Prerequisites

Before accessing call data, confirm the following:

  • A GoHighLevel sub-account with call tracking enabled and at least one completed call on record
  • A Private Integration Token (PIT) with the conversations scope enabled
  • A message ID for a call record (calls are stored as message objects in GHL)
  • Call recording must be enabled in your location’s phone settings

To enable call recording, navigate to Settings > Phone Numbers, select your number, and turn on the Call Recording toggle. Calls made before enabling recording will not have audio available.

Set Up Authentication

Create a PIT from Settings > Integrations > Private Integrations in your sub-account. Click Create New, name it “MCP Call Ops,” and enable the conversations scope. Copy the token and store it in your MCP client’s environment configuration.

Include these headers on every request: Authorization: Bearer YOUR_PIT_TOKEN, Content-Type: application/json, and Version: 2021-07-28. All call operation endpoints share the same authentication requirements.

Make Your First Call

Retrieve a call recording using GET /messages/{id}/recording where {id} is the message ID for the call record. This returns the audio file URL or binary data for the recorded call.

To get the transcription text, call GET /messages/{id}/transcription. This returns the transcribed text of the call, typically generated by GHL’s built-in transcription service. The transcription includes speaker labels and timestamps when available.

To download the transcription in a structured format, use GET /messages/{id}/transcription/download. This endpoint returns the transcription as a downloadable file, which is useful for archiving or feeding into external NLP tools.

To find call message IDs, search conversations using Conversation CRUD and filter for messages with the Call type. Each call in a conversation thread has a unique message ID you can use with these endpoints.

Handle the Response

The recording endpoint returns a URL pointing to the audio file. Store or stream this URL as needed. Audio files are typically in MP3 or WAV format depending on your location’s configuration.

The transcription endpoint returns a JSON object with the text field containing the full transcription. If the call has not been transcribed yet, you may receive an empty response or a status indicating transcription is in progress. Longer calls can take several minutes to transcribe after the call ends.

The download endpoint returns the transcription as a file attachment. Check the Content-Type header to determine the file format (typically plain text or JSON).

If any endpoint returns a 404, the message ID may not correspond to a call, or the recording/transcription may not be available. Calls without recording enabled return no audio data.

Test Your Setup

Validate your integration with a real call record:

  • Make a test call to your GHL number (or use an existing call with recording enabled)
  • Find the call’s message ID through the conversations search or the GHL inbox
  • Call GET /messages/{id}/recording and confirm you receive a valid audio URL
  • Call GET /messages/{id}/transcription and verify the transcribed text matches the call content
  • Call GET /messages/{id}/transcription/download and confirm the file downloads successfully

See the full Call Operations guide for batch processing patterns and transcription accuracy tips. For managing conversation threads that contain calls, see Conversation CRUD.

Stay sharp. New guides and playbooks as they drop.