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

# Fathom

> Capture meeting transcripts and summaries from Fathom

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 Fathom integration captures transcripts and AI summaries from your recorded Fathom meetings and feeds them into Modem for analysis. Each meeting 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 in it.

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

## How it works

Modem connects to your Fathom account with OAuth, authorized by an individual Fathom user signing in and approving access. During setup, Modem registers a webhook on that account, so capture is push-based: as soon as Fathom finishes processing a recording, it sends the meeting's transcript and summary to Modem. There's no polling delay. A meeting shows up in Modem shortly after Fathom publishes it.

When you first connect, Modem also imports your recent history: a one-time backfill of meetings from the **last 30 days**, up to **100 meetings**. Meetings older than that window aren't imported. The backfill runs once per connection. Reconnecting later (for example to repair the connection) doesn't re-import history.

A background job refreshes the connection's access token before it expires, so the webhook and API access normally stay authenticated without any action from you.

<Note>
  Both delivery paths land in the same place: a backfilled meeting and a webhook-delivered meeting are transformed identically, and
  redelivered meetings are de-duplicated, so the same meeting isn't stored twice.
</Note>

## Prerequisites

* **Owner or admin** role in your Modem organization, to connect and manage the integration
* A **Fathom account** to authorize. The person connecting signs into their own Fathom account, and Modem's capture follows what that
  account can see. Connect with the account whose meetings (and team-shared meetings) you want captured.

## Setup

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

  <Step title="Authorize Modem in Fathom">
    You'll be redirected to Fathom to sign in and approve the access Modem requests. See [Permissions](#permissions) below.
  </Step>

  <Step title="Capture starts immediately">
    Modem registers a webhook on your Fathom account and requests the 30-day history import. New meetings arrive as Fathom finishes
    processing them; recent past meetings fill in as the backfill runs.
  </Step>
</Steps>

## Permissions

During authorization you approve Fathom's single OAuth scope. Modem reads meeting content and participant identities; it does not send or modify anything in Fathom.

| Scope        | Why Modem needs it                                               |
| ------------ | ---------------------------------------------------------------- |
| `public_api` | Read meetings, transcripts, and summaries, and register webhooks |

With that grant, Modem asks Fathom to include the **transcript**, **summary**, and **action items** with each meeting delivery. It deliberately does **not** request Fathom's CRM matches. Modem resolves people and companies from its own data instead.

<Note>
  Fathom authorization is per user, not account-wide: Modem acts as the Fathom user who clicked **Connect**. What Modem can capture is
  bounded by that user's Fathom access.
</Note>

## Meeting Access and Permissions

<Warning>
  **Fathom's per-user sharing and visibility do not carry over into Modem.** Modem captures the connecting user's recordings, recordings
  shared with them, and recordings shared with their team. Every captured meeting then becomes visible to **everyone in your Modem
  organization**, even people who couldn't open that recording in Fathom. Connect with an account whose visibility you're comfortable
  sharing organization-wide.
</Warning>

<AccordionGroup>
  <Accordion title="Does Modem authenticate as an individual Fathom user?">
    Yes. Fathom's OAuth grant is per user: Modem holds one credential, tied to the Fathom account of the person who clicked
    **Connect**. It does not hold account-wide or per-teammate tokens.
  </Accordion>

  <Accordion title="Whose meetings can Modem read?">
    The meetings the connecting user's grant can reach: their own recordings, recordings shared with them externally, their recordings
    shared with the team, and the team's shared recordings. Modem asks Fathom for all of these deliberately: customer signal usually
    lives across the whole team, and a narrower default would silently drop meetings. Meetings outside that visibility never reach
    Modem.
  </Accordion>

  <Accordion title="Are Fathom's sharing rules enforced inside Modem?">
    No. Once a meeting 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 who it was shared with in Fathom. If a recording is private in Fathom,
    treat capturing it in Modem as widening who can read it.
  </Accordion>

  <Accordion title="What controls do we have over which meetings are captured?">
    Two, both set on the Modem side:

    * **Which account connects**: the primary control. Capture follows the connecting user's Fathom visibility, so connect with an
      account that sees the meetings you want captured and nothing you don't.
    * **Disconnecting**: stops all future capture immediately and removes Modem's webhook from your Fathom account.

    There are no per-meeting or per-team capture filters in Modem today.
  </Accordion>

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

  <Accordion title="What exactly is stored, and can we remove it?">
    Transcripts as speaker turns, Fathom's meeting summary, participant identities, meeting metadata, and links back to the recording
    in Fathom. 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>

## Historical Import

Connecting triggers a one-time import of your recent Fathom history, so the integration is useful before your next meeting happens:

* **Window**: meetings from the last **30 days** before you connected
* **Limit**: up to **100 meetings**
* **Once per connection**: reconnecting the same organization later does not re-run the import

Each imported meeting's transcript and summary are fetched individually from Fathom, so a large history takes a little while to fill in. Meetings Fathom has no transcript for are skipped: a summary alone isn't a conversation.

## What Gets Captured

For each captured meeting, Modem captures:

### Transcript

The meeting transcript as ordered speaker turns, threaded into a single conversation per meeting so it groups into topics like any other source. Each turn keeps its offset from the recording start, so the conversation's timeline is preserved.

### Summary

Fathom's AI-generated meeting summary, stored as the meeting's description alongside the transcript.

### Participants

Each speaker's name, and their email where Fathom has matched the speaker to a calendar invitee. Calendar invitees who never spoke and the person who recorded the meeting are included in the participant roster too. Where Fathom marks an invitee internal or external, that tag is carried through; participants Fathom doesn't tag are recorded as unknown rather than guessed. Participants are resolved into [people and companies](/docs/guides/people).

### Meeting metadata

The meeting title, start time, duration, transcript language, and links back to the recording in Fathom.

<Note>
  Modem does not capture audio or video recordings, Fathom's CRM matches (they're explicitly excluded from what Modem requests), your
  Fathom account credentials, or billing information. Only the transcript, summary, participants, and metadata above are ingested.
</Note>

## Analyzing Fathom Conversations

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

<Prompt text="What did customers ask for in our Fathom meetings this week?" />

<Prompt text="Summarize the pain points raised in customer calls over the last 7 days" />

<Prompt text="Create a Linear ticket for the onboarding friction mentioned in yesterday's meetings" />

## Troubleshooting

<AccordionGroup>
  <Accordion title="I don't see Fathom in Integrations">
    The integration is in beta and enabled per organization. Email [support@modem.dev](mailto:support@modem.dev) to request access. Once
    enabled, the Fathom card appears under **Settings** → **Integrations**.
  </Accordion>

  <Accordion title="New meetings aren't showing up">
    A meeting is delivered when Fathom finishes processing its recording, so allow a few minutes after the meeting ends. Modem can only
    capture meetings the **connecting user's** Fathom account can see, so a teammate's unshared recording won't arrive. If nothing is
    arriving at all, try disconnecting and reconnecting, which re-registers the webhook on your Fathom account.
  </Accordion>

  <Accordion title="A meeting arrived without a transcript">
    Modem skips meetings Fathom delivers or lists without any transcribed content. There's nothing to analyze without the conversation
    itself. If Fathom shows a transcript for the recording but it never appeared in Modem, contact
    [support@modem.dev](mailto:support@modem.dev).
  </Accordion>

  <Accordion title="Older meetings didn't import">
    The one-time history import covers the **30 days** before you connected, up to **100 meetings**, and runs once per connection.
    Reconnecting doesn't re-run it. Meetings outside that window aren't imported.
  </Accordion>

  <Accordion title="Connection shows an error">
    Open **Settings** → **Integrations** → **Fathom** to see the connection status. Access tokens are refreshed automatically, but if
    the grant itself is revoked (for example the connecting user leaves Fathom), you'll need to reconnect. If the error persists,
    contact [support@modem.dev](mailto:support@modem.dev).
  </Accordion>
</AccordionGroup>

## Disconnecting

To disconnect Fathom:

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

Disconnecting stops new meeting deliveries immediately and removes the webhook Modem registered on your Fathom account. 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 Fathom meetings 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 meetings 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 meeting 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>
