> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Gong Integration for AI Agents & Workflows

> Revenue intelligence platform for recording, transcribing, and analyzing sales conversations

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/gong.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=d37d89be1a90e55c3158caaed31c2282" alt="Gong logo" width="72" height="72" data-path="logos/gong.svg" />

## Overview

Add **Gong** to any ModuleX agent or workflow. Revenue intelligence platform for recording, transcribing, and analyzing sales conversations via the Gong REST API (your per-tenant `https://<region>-<id>.api.gong.io/v2` base URL).

<Info>
  **Categories**: Sales · Revenue Intelligence · Conversation Analytics · **Auth**: Gong API Key · **Actions**: 5
</Info>

## Authentication

### Gong API Key

Authenticate with a Gong Access Key + Access Key Secret (Company Settings -> API), sent as HTTP Basic auth.

<Steps>
  <Step title="Step 1">
    Sign in to Gong as a technical administrator
  </Step>

  <Step title="Step 2">
    Go to Company Settings -> Ecosystem -> API ([https://app.gong.io/company/api](https://app.gong.io/company/api))
  </Step>

  <Step title="Step 3">
    Click 'Create' to generate an Access Key and Access Key Secret (the Secret is shown only once)
  </Step>

  <Step title="Step 4">
    Find your API base URL at [https://app.gong.io/company/api-authentication](https://app.gong.io/company/api-authentication) (e.g. [https://us-12345.api.gong.io](https://us-12345.api.gong.io))
  </Step>
</Steps>

#### Required Credentials

| Field             | Description                                                                                                        | Required | Format                         |
| ----------------- | ------------------------------------------------------------------------------------------------------------------ | -------- | ------------------------------ |
| Access Key        | Gong API Access Key                                                                                                | Yes      | `-`                            |
| Access Key Secret | Gong API Access Key Secret (shown only once at creation)                                                           | Yes      | `-`                            |
| API Base URL      | Your Gong API base URL (region/tenant-specific), e.g. [https://us-12345.api.gong.io](https://us-12345.api.gong.io) | Yes      | `https://us-12345.api.gong.io` |

## Available Actions

<AccordionGroup>
  <Accordion title="add_new_call — Add a new call to Gong">
    ### Parameters

    <ResponseField name="client_unique_id" type="string" required>
      A call's unique identifier in the PBX or recording system. Used to prevent duplicate uploads.
    </ResponseField>

    <ResponseField name="actual_start" type="string" required>
      The actual date and time when the call started in ISO-8601 format (e.g., 2018-02-18T02:30:00-07:00 or 2018-02-18T08:00:00Z).
    </ResponseField>

    <ResponseField name="direction" type="string" required>
      Whether the call is Inbound, Outbound, Conference, or Unknown.
    </ResponseField>

    <ResponseField name="primary_user" type="string" required>
      The Gong internal user ID of the team member who hosted the call.
    </ResponseField>

    <ResponseField name="parties" type="array" required>
      A list of the call's participants as JSON objects. Each party can have: phoneNumber, emailAddress, name, mediaChannelId.
    </ResponseField>

    <ResponseField name="title" type="string">
      The title of the call, available for indexing and search.
    </ResponseField>

    <ResponseField name="purpose" type="string">
      The purpose of the call. Free text up to 255 characters.
    </ResponseField>

    <ResponseField name="scheduled_start" type="string">
      The date and time the call was scheduled to begin in ISO-8601 format.
    </ResponseField>

    <ResponseField name="scheduled_end" type="string">
      The date and time the call was scheduled to end in ISO-8601 format.
    </ResponseField>

    <ResponseField name="duration" type="integer">
      The actual call duration in seconds.
    </ResponseField>

    <ResponseField name="disposition" type="string">
      The disposition of the call. Free text up to 255 characters.
    </ResponseField>

    <ResponseField name="meeting_url" type="string">
      The URL of the conference call by which users join the meeting.
    </ResponseField>

    <ResponseField name="call_provider_code" type="string">
      Code identifying the conferencing/telephony system: zoom, clearslide, gotomeeting, ringcentral, outreach, insidesales.
    </ResponseField>

    <ResponseField name="download_media_url" type="string">
      The URL from which Gong can download the media file. Must be unique, max 1.5GB.
    </ResponseField>

    <ResponseField name="workspace_id" type="string">
      Optional workspace identifier for call placement.
    </ResponseField>

    <ResponseField name="language_code" type="string">
      Language code for transcription (e.g., en-US, fr-FR). Optional; Gong auto-detects if not set.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "request_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Request Id"
        },
        "call_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Call Id"
        }
      },
      "required": [
        "success"
      ],
      "title": "AddNewCallOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_extensive_data — List detailed call data with content selectors for topics, trackers, transcripts, and more">
    ### Parameters

    <ResponseField name="from_date_time" type="string">
      Date and time (ISO-8601) from which to list recorded calls.
    </ResponseField>

    <ResponseField name="to_date_time" type="string">
      Date and time (ISO-8601) until which to list recorded calls.
    </ResponseField>

    <ResponseField name="workspace_id" type="string">
      The ID of the workspace to filter by.
    </ResponseField>

    <ResponseField name="call_ids" type="array">
      List of call ID strings to filter. If not supplied, returns all calls in date range.
    </ResponseField>

    <ResponseField name="primary_user_ids" type="array">
      List of user ID strings. If supplied, returns only calls hosted by these users.
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of results to return. (Default: `600`)
    </ResponseField>

    <ResponseField name="context" type="string">
      Context level: None, Basic (add links), or Extended (include link data). (Default: `None`)
    </ResponseField>

    <ResponseField name="context_timing" type="array">
      Timing for context data: 'Now' or 'TimeOfCall' or both. Only valid when context is Extended.
    </ResponseField>

    <ResponseField name="include_parties" type="boolean">
      Whether to include parties in the response. (Default: `false`)
    </ResponseField>

    <ResponseField name="exposed_fields_content" type="object">
      Fields to include for content: structure, topics, trackers, trackerOccurrences, pointsOfInterest, brief, outline, highlights, callOutcome, keyPoints (boolean values).
    </ResponseField>

    <ResponseField name="exposed_fields_interaction" type="object">
      Fields to include for interaction: speakers, video, personInteractionStats, questions (boolean values).
    </ResponseField>

    <ResponseField name="include_public_comments" type="boolean">
      Whether to include public comments in the response. (Default: `false`)
    </ResponseField>

    <ResponseField name="include_media" type="boolean">
      Whether to include media in the response. (Default: `false`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "calls": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Calls",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetExtensiveDataOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_calls — List calls with optional date range filtering">
    ### Parameters

    <ResponseField name="from_date_time" type="string">
      Date and time (ISO-8601) from which to list recorded calls.
    </ResponseField>

    <ResponseField name="to_date_time" type="string">
      Date and time (ISO-8601) until which to list recorded calls.
    </ResponseField>

    <ResponseField name="cursor" type="string">
      Pagination cursor returned by a previous call.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "request_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Request Id"
        },
        "cursor": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Cursor"
        },
        "calls": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Calls",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListCallsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_workspace_id_options — Retrieve available workspace IDs and names">
    ### Response

    ```json theme={null}
    {
      "$defs": {
        "Workspace": {
          "additionalProperties": false,
          "description": "A Gong workspace entry.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            }
          },
          "title": "Workspace",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "workspaces": {
          "items": {
            "$ref": "#/$defs/Workspace"
          },
          "title": "Workspaces",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListWorkspaceIdOptionsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="retrieve_transcripts_of_calls — Retrieve transcripts of calls with optional date range and call ID filtering">
    ### Parameters

    <ResponseField name="from_date_time" type="string">
      Date and time (ISO-8601) from which to filter calls.
    </ResponseField>

    <ResponseField name="to_date_time" type="string">
      Date and time (ISO-8601) until which to filter calls.
    </ResponseField>

    <ResponseField name="workspace_id" type="string">
      The ID of the workspace to filter by.
    </ResponseField>

    <ResponseField name="call_ids" type="array">
      List of call ID strings to retrieve transcripts for.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "call_transcripts": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Call Transcripts",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "RetrieveTranscriptsOfCallsOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* Gong API rate limits vary by endpoint and plan tier. Consult your Gong admin for specific limits.
* The `get_extensive_data` action paginates internally up to `max_results` (default 600).
* Error model: non-2xx responses are caught and returned as `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="Apollo.io" href="/integrations/tools/apollo-io" />

  <Card title="Brandfetch" href="/integrations/tools/brandfetch" />

  <Card title="Clay" href="/integrations/tools/clay" />
</CardGroup>

## Links

* [Gong](https://www.gong.io)
