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

# Gong

> Capture call transcripts and participants from Gong

export const Prompt = ({text, variant = 'accent'}) => {
  const [copied, setCopied] = useState(false);
  const handleCopy = async () => {
    try {
      await navigator.clipboard.writeText(text);
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    } catch {}
  };
  const clipboardIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <title>Copy</title>
            <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
            <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
        </svg>;
  const checkIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <title>Copied</title>
            <polyline points="20 6 9 17 4 12" />
        </svg>;
  const promptIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style={{
    flexShrink: 0,
    opacity: 0.4
  }}>
            <title>Prompt</title>
            <path d="M20 2H2v20h2V4h16v12H6v2H4v2h2v-2h16V2zM6 7h12v2H6zm8 4H6v2h8z" />
        </svg>;
  return <div className={`prompt prompt-${variant}`} style={{
    marginTop: '12px',
    marginBottom: '12px'
  }}>
            {promptIcon}
            <span className="prompt-text">{text}</span>
            <button className="prompt-copy" onClick={handleCopy} title="Copy to clipboard" type="button">
                {copied ? checkIcon : clipboardIcon}
            </button>
        </div>;
};

The Gong integration captures transcripts from your recorded Gong calls and feeds them into Modem for analysis. Each call becomes a conversation that's grouped into [topics](/docs/guides/topics), classified by type (bug, feature request, praise, complaint), and linked to the [people](/docs/guides/people) and companies who spoke on it.

<Warning>
  Gong is available on the **Scale** plan and above (and during a trial). On other plans it appears locked under **Settings** →
  **Integrations**; upgrade from **Settings** → **Billing** to connect it. Organizations that connected Gong before this requirement keep
  their existing connection.
</Warning>

<Info>
  Gong is **capture-only** and read-only. Modem ingests **call transcripts** (as speaker turns), call metadata, and participant
  identities. It does not access audio or video recordings or your Gong account settings, and it never writes anything back to Gong.
  There's no way to talk to the Modem Agent from inside Gong; you query captured Gong data from the [Modem Agent on the
  web](/docs/features/agent).
</Info>

## How it works

Modem connects to your Gong account with OAuth, authorized once by a Gong technical admin. During that exchange Gong returns a per-customer API address, and Modem targets it for every request after that.

Every 15 minutes Modem polls Gong for new calls, fetches each call's transcript, and ingests it as a set of speaker turns threaded into a single conversation. A background job refreshes the connection's access token before it expires, so the poller normally stays authenticated without any action from you.

Capture is poll-based, so a call shows up in Modem a few minutes after Gong finishes processing it, not instantly. When you connect, Modem also imports a one-time history of calls from the last 30 days, up to 100 calls. The import follows the same workspace and call-scope settings as the poller. Anything older isn't imported.

<Note>
  Each poll looks back over a wide window (about 48 hours) so calls that Gong publishes late are still picked up. Calls already ingested
  are filtered out, and anything that slips through the overlap is de-duplicated downstream, so the same call isn't stored twice.
</Note>

## Prerequisites

* **Owner or admin** role in your Modem organization, to connect and manage the integration
* A **Gong technical administrator** to authorize Modem's API access. The authorization is account-wide and granted once.
* A Modem organization on the **Scale** plan or above, or an active trial (see the note above)

## Setup

<Steps>
  <Step title="Start the connection">
    Go to **Settings** → **Integrations** → **Gong** in your Modem dashboard and click **Connect Gong**. Only organization owners and
    admins can connect.
  </Step>

  <Step title="Authorize Modem in Gong">
    You'll be redirected to Gong to sign in and approve the access Modem requests. This step must be done by a **Gong technical admin**.
    See [Permissions](#permissions) below for the exact scopes.
  </Step>

  <Step title="Choose workspaces">
    Back in Modem, your Gong workspaces sync automatically. Every workspace is captured by default; toggle off any you don't want. See
    [Subscribing to Workspaces](#subscribing-to-workspaces) below.
  </Step>

  <Step title="Choose which calls to capture">
    New connections capture **external calls only**. Turn the toggle off to capture internal calls as well. See [Capturing Internal
    Calls](#capturing-internal-calls) below.
  </Step>
</Steps>

## Permissions

During authorization, a Gong technical admin approves the following read-only Gong API scopes. Modem reads call content and participant identities; it does not send or modify anything in Gong.

| Scope | Why Modem needs it |
| - | - |
| `api:calls:read:basic` | Read basic call metadata (title, time, participants) |
| `api:calls:read:extensive` | List recorded calls to find new ones to ingest |
| `api:calls:read:transcript` | Read call transcripts |
| `api:users:read` | Resolve internal speakers to people |
| `api:workspaces:read` | Discover the workspaces in your account |

<Note>
  Gong authorization is account-wide, not per user. A technical admin approves it once for the whole Gong account, and Modem authenticates
  as the approved app rather than as an individual user.
</Note>

## Call Access and Permissions

<Warning>
  **Gong's per-user call permissions do not carry over into Modem.** Modem connects with a single account-level authorization and does not
  evaluate individual Gong users' call access. Any call Modem captures becomes visible to **everyone in your Modem organization**, even if
  a given person could not open that call in Gong. Review the FAQ below with your Gong admin before connecting.
</Warning>

<AccordionGroup>
  <Accordion title="Does Modem authenticate as an individual Gong user?">
    No. Gong's API supports authorization only at the technical-admin level, so Modem holds one account-wide credential per Modem
    organization. It does not act on behalf of the person who clicked **Connect**, and it does not hold or request per-user Gong tokens.
  </Accordion>

  <Accordion title="Whose calls can Modem read?">
    Every call the account-level authorization can reach, within the workspaces you've subscribed. Modem cannot see more than the
    approved authorization allows, but it also does not narrow that view down to any one user's permissions.
  </Accordion>

  <Accordion title="Are Gong's per-user call permissions enforced inside Modem?">
    No. Modem does not mirror or re-apply Gong's per-user access rules. Once a transcript is captured, it is stored against your Modem
    organization and is readable by every member of that organization through search, topics, and the Modem Agent, regardless of
    whether that person has access to the same call in Gong. If a call is private or restricted in Gong, treat capturing it in Modem as
    widening who can read it.
  </Accordion>

  <Accordion title="What controls do we have over which calls are captured?">
    Four, all set on the Modem side:

    * **Workspace subscriptions**: the primary control. Unsubscribed workspaces are dropped before Modem ever requests a transcript, so
      their content never leaves Gong. See [Subscribing to Workspaces](#subscribing-to-workspaces).
    * **External calls only**: skips calls where every participant works at your company, also before any transcript is requested. See
      [Capturing Internal Calls](#capturing-internal-calls).
    * **Connect time**: capture runs forward from when you connect, plus a one-time import of up to 100 calls from the 30 days before.
    * **Disconnecting**: stops all future capture immediately.

    If certain calls must not be readable organization-wide in Modem, keep them in a Gong workspace you leave unsubscribed.
  </Accordion>

  <Accordion title="Who in Modem can connect, disconnect, or change capture settings?">
    Only Modem organization **owners and admins**. Regular Modem members can view the integration's status and its capture settings but
    cannot change them.
  </Accordion>

  <Accordion title="What exactly is stored, and can we remove it?">
    Transcripts as speaker turns, participant identities, call metadata, the call summary, and a link back to the call in Gong (no audio or video). See
    [What Gets Captured](#what-gets-captured). Disconnecting stops future capture but leaves already-captured data in Modem; contact
    [support@modem.dev](mailto:support@modem.dev) to have it deleted.
  </Accordion>
</AccordionGroup>

## Subscribing to Workspaces

Gong groups calls into **workspaces**. After connecting, the **Workspaces** card in **Settings** → **Integrations** → **Gong** lists each workspace with its own toggle. Modem only ingests calls from subscribed workspaces.

New workspaces are subscribed by default. Toggle one off to stop capturing its calls, which are then dropped before any transcript is fetched. If your account has a single workspace, there's just one row, subscribed by default, which you can still toggle off to pause capture entirely.

<Tip>
  Start with the workspaces where customer and prospect calls live, and leave internal-only workspaces unsubscribed to keep the noise
  down.
</Tip>

## Capturing Internal Calls

The **External calls only** toggle in **Settings** → **Integrations** → **Gong** controls whether Modem captures your team's internal calls alongside customer ones. It's on by default for new connections, and off for connections made before this setting existed, so nothing you were already capturing stopped.

A call is internal only when **every** participant is marked internal in Gong. If even one participant is external (or is someone Gong doesn't recognize, which is how most prospects and customers show up), the call is captured. Calls where Gong provides no participant information are captured too, so a gap in Gong's data never silently drops a customer conversation.

Internal calls are dropped at the same point unsubscribed workspaces are: before Modem requests the transcript, so their content never leaves Gong.

Turn the toggle off if you want internal calls (standups, planning, retros) analyzed alongside customer conversations. Leave it on to keep Modem focused on calls with people outside your company.

## What Gets Captured

For each captured call (one in a subscribed workspace that also matches your call scope), Modem captures:

### Transcript

The call transcript as ordered speaker turns, threaded into a single conversation per call so it groups into topics like any other source.

### Participants

Each speaker's name and email where Gong provides them, tagged **internal** or **external**, and resolved into [people and companies](/docs/guides/people).

Where Gong has already linked a participant to a record in your CRM, Modem also stores that link as a reference: the CRM system (for example Salesforce or HubSpot), the object type, and the object ID. Modem does not connect to your CRM or read the records themselves; it only keeps the identifiers Gong attaches to the call.

### Call metadata

The call title, start time, duration, and a link back to the call in Gong.

### Call summary

Gong's AI call brief is stored as the conversation's description. Gong often publishes the brief after the transcript, so a call captured before its brief exists uses the call's purpose field instead, and keeps it: a brief published later does not replace the purpose. When a call has neither a brief nor a purpose, Modem checks back hourly, for calls up to a year old, and fills in the brief once Gong publishes it.

<Note>
  Modem does not capture audio or video recordings or your Gong account settings. Only the transcript, the participants (including any CRM
  record references Gong attaches to them), the call summary, and the metadata above are ingested.
</Note>

## Analyzing Gong Conversations

Once transcripts are flowing, ask the [Modem Agent](/docs/features/agent) about them from the web dashboard like any other source.

<Prompt text="What are customers asking about in our Gong calls this week?" />

<Prompt text="Summarize the objections raised in sales calls over the last 7 days" />

<Prompt text="Create a Linear ticket for the recurring onboarding complaints from our Gong calls" />

## Troubleshooting

<AccordionGroup>
  <Accordion title="I don't see Gong in Integrations">
    Gong is available on the **Scale** plan and above (and during a trial). On other plans the card is locked under **Settings** →
    **Integrations**. Upgrade from **Settings** → **Billing**, or email [support@modem.dev](mailto:support@modem.dev).
  </Accordion>

  <Accordion title="New calls aren't showing up">
    A call appears a few minutes after Gong finishes processing it, plus up to the 15-minute poll interval, so allow some time. Calls
    older than the one-time import at connect (the last 30 days, up to 100 calls) aren't backfilled. If a specific call is missing,
    check that its **workspace** is subscribed in the Workspaces card.
  </Accordion>

  <Accordion title="Authorization was rejected">
    The person approving the connection must be a **Gong technical admin** with rights to authorize API access for the account. A
    regular Gong user can't grant it.
  </Accordion>

  <Accordion title="Connection shows an error">
    Open **Settings** → **Integrations** → **Gong** to see the connection status. Reconnecting requires a Gong technical admin. If the
    error persists, contact [support@modem.dev](mailto:support@modem.dev).
  </Accordion>

  <Accordion title="A workspace's calls aren't captured">
    Modem only ingests calls from subscribed workspaces. Open the **Workspaces** card and confirm the workspace is toggled **on**.
  </Accordion>

  <Accordion title="An internal call wasn't captured">
    With **External calls only** on, Modem skips calls where every participant is marked internal in Gong. Turn it off to capture
    internal calls as well. Turning it off picks up previously skipped calls only while they're still inside the poll's lookback window
    (about 48 hours from when the call started); older skipped calls aren't backfilled. See [Capturing Internal
    Calls](#capturing-internal-calls).
  </Accordion>
</AccordionGroup>

## Disconnecting

To disconnect Gong:

1. Go to **Settings** → **Integrations** → **Gong**
2. Click **Disconnect** and confirm

Disconnecting stops Modem from polling Gong for new calls. Historical data remains in Modem after disconnecting.

## Related

<CardGroup cols={2}>
  <Card title="The Modem Agent" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/bot.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=2496f9106cb54fa9f4e27ad1f8f3a171" href="/docs/features/agent" width="22" height="22" data-path="icons/bot.svg">
    Query and act on your captured Gong conversations from the web.
  </Card>

  <Card title="Topics" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/label-alt-multiple.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=e7fbaf23c28396ac670b89cf38e1e4a6" href="/docs/guides/topics" width="24" height="24" data-path="icons/label-alt-multiple.svg">
    See how calls are grouped into themes and classified.
  </Card>

  <Card title="Companies & People" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/contact.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=727cb0ef6c8547993c6acfdaa30bd837" href="/docs/guides/people" width="24" height="24" data-path="icons/contact.svg">
    Understand how Modem links call participants into unified profiles.
  </Card>

  <Card title="All Integrations" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/link.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=e774d33588635d44c6c935b78ed55f13" href="/docs/integrations/overview" width="24" height="24" data-path="icons/link.svg">
    Browse every data source and agent tool.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.