Configuring Fathom as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Fathom option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
The connector authenticates with an API key issued from your own Fathom account. To create one, open Fathom, go to Settings > API Access — the direct link is fathom.video/customize — and generate a key. The following configuration is required:- API key: The key generated under Settings > API Access.
- Initial sync date: The earliest date from which recordings will be synced. When omitted, the first sync fetches the full history.
- Lookback (days): How far back before the last sync each incremental run re-reads, so content Fathom generates after a meeting ends is picked up. Defaults to 1 day.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
- Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Incremental sync
The meeting streams are replicated incrementally oncreated_at, the moment the recording was created in Fathom. Because Fathom writes the summary, transcript, action items and highlights only after a meeting ends, every run also re-reads a short lookback window before the last sync so that content is picked up once it exists. Records are keyed by recording_id, so re-reading a window never duplicates rows.
Rate limits
Fathom allows 60 requests per minute overall, and a tighter 30 per minute for the requests that carry summaries and transcripts — a budget Fathom may temporarily lower during periods of high load. The connector paces itself below both limits and retries rate-limited requests, so theMeeting summaries and Meeting transcripts streams extract more slowly than the others. Selecting only the streams you need keeps extractions short.
Streams and Fields
Below you’ll find all available data streams from Fathom and their corresponding fields. The meeting streams are synced incrementally through thecreated_at field; the organization streams (meeting types, teams, team members, users) are extracted as full tables.
Fields holding nested data — invitees, transcripts and CRM matches — are delivered as JSON strings, ready to be parsed in a Query or Notebook.
Meetings
Meetings
Meetings recorded by Fathom, with their calendar, recording and ownership metadata. This is the base stream and the cheapest one to extract. Incremental sync is supported through the
created_at field.Fields:recording_id- Unique identifier of the meeting recording, used as the primary keycreated_at- Timestamp when the recording was created in Fathom (UTC), used as the incremental replication keytitle- Title Fathom gave the recordingmeeting_title- Title of the calendar event the meeting was recorded frommeeting_type- Name of the meeting type assigned to this meeting, or empty when none is assignedurl- URL of the recording in the Fathom web appmeeting_url- Join URL of the underlying meeting (Zoom, Google Meet, Microsoft Teams or Slack huddle) taken from the calendar event. Empty when there is no associated calendar meetingshare_url- Public share URL of the recordingscheduled_start_time- Timestamp when the meeting was scheduled to start (UTC)scheduled_end_time- Timestamp when the meeting was scheduled to end (UTC)recording_start_time- Timestamp when the recording actually started (UTC)recording_end_time- Timestamp when the recording actually stopped (UTC)recording_duration_seconds- Length of the recording in seconds, computed from the recording start and end timestampsscheduled_duration_seconds- Length the meeting was scheduled for, in seconds, computed from the scheduled start and end timestampstranscript_language- Language code of the meeting transcript, for exampleencalendar_invitees_domains_type- Whether the calendar invitee list includes external email domains:only_internalorone_or_more_externalshared_with- Who the meeting is shared with inside the organization:no_teams(private to the recorder),single_team,multiple_teamsorall_teamsrecorded_by_name- Display name of the Fathom user who recorded the meetingrecorded_by_email- Email address of the Fathom user who recorded the meetingrecorded_by_email_domain- Email domain of the Fathom user who recorded the meetingrecorded_by_team- Team the user who recorded the meeting belongs tocalendar_invitees- People invited to the calendar event, as a JSON array of objects with name, email, email domain and whether they are externalinvitee_count- Number of people invited to the calendar eventexternal_invitee_count- Number of invitees whose email domain is external to the organization
Meeting summaries
Meeting summaries
Fathom’s generated write-up of each meeting, one row per recording. Fathom produces the summary only after the meeting ends, so it is empty for recordings still in progress. Incremental sync is supported through the
created_at field.Fields:recording_id- Unique identifier of the meeting recording, used as the primary keycreated_at- Timestamp when the recording was created in Fathom (UTC), used as the incremental replication keytitle- Title Fathom gave the recordingsummary_template_name- Name of the summary template Fathom used to write the summary, for examplegeneralsummary_markdown- Summary of the meeting in Markdown. Fathom always writes it in English, regardless of the language spoken in the meeting
Meeting transcripts
Meeting transcripts
Full transcript of each meeting, one row per recording. The speaking turns are available both as a JSON array and as a plain-text rendering. Incremental sync is supported through the
created_at field.Fields:recording_id- Unique identifier of the meeting recording, used as the primary keycreated_at- Timestamp when the recording was created in Fathom (UTC), used as the incremental replication keytitle- Title Fathom gave the recordingtranscript_language- Language code of the transcript, for exampleentranscript- Speaking turns of the meeting, as a JSON array of objects with the speaker (display name and matched calendar invitee email), the spoken text and the timestamp relative to the start of the meetingtranscript_text- Full transcript of the meeting as plain text, with each line prefixed by the timestamp and the name of the speakerspeaker_count- Number of distinct speakers detected in the transcriptline_count- Number of speaking turns in the transcript
Meeting action items
Meeting action items
Follow-up tasks identified in each meeting, one row per action item. Fathom does not give action items an identifier of their own, so rows are keyed by the recording plus the position of the item in the meeting’s list. Incremental sync is supported through the
created_at field.Fields:recording_id- Unique identifier of the meeting recording, part of the primary keycreated_at- Timestamp when the recording was created in Fathom (UTC), used as the incremental replication keytitle- Title Fathom gave the recordingaction_item_index- Position of the action item within the meeting’s list, part of the primary keydescription- What has to be done. Fathom always writes it in English, regardless of the language spoken in the meetinguser_generated- Whether a person created the action item, as opposed to Fathom detecting it automaticallycompleted- Whether the action item has been marked as donerecording_timestamp- Moment of the recording the action item came from, as HH:MM:SS relative to the start of the recordingrecording_playback_url- URL that opens the recording in Fathom at the moment the action item came fromassignee_name- Display name of the person the action item is assigned toassignee_email- Email address of the person the action item is assigned toassignee_team- Team of the person the action item is assigned to
Meeting highlights
Meeting highlights
Moments bookmarked during each meeting, one row per highlight. Fathom does not give highlights an identifier of their own, so rows are keyed by the recording plus the position of the highlight in the meeting’s list. Incremental sync is supported through the
created_at field.Fields:recording_id- Unique identifier of the meeting recording, part of the primary keycreated_at- Timestamp when the recording was created in Fathom (UTC), used as the incremental replication keytitle- Title Fathom gave the recordinghighlight_index- Position of the highlight within the meeting’s list, part of the primary keytype- Label of the bookmark the highlight was created from, for exampleObjectionsummary- Short summary of the highlighted momenttext- Full text of the highlight. Only present when it differs from the summarystart_time- Start of the highlight, in seconds from the start of the recordingend_time- End of the highlight, in seconds from the start of the recording
Meeting CRM matches
Meeting CRM matches
Contacts, companies and deals Fathom matched to each meeting in the CRM linked to your account or team. When no CRM is connected, the reason is reported in
crm_error instead of the matches. Incremental sync is supported through the created_at field.Fields:recording_id- Unique identifier of the meeting recording, used as the primary keycreated_at- Timestamp when the recording was created in Fathom (UTC), used as the incremental replication keytitle- Title Fathom gave the recordingcrm_contacts- CRM contacts matched to the meeting, as a JSON array of objects with name, email and the URL of the record in the CRMcrm_companies- CRM companies matched to the meeting, as a JSON array of objects with name and the URL of the record in the CRMcrm_deals- CRM deals matched to the meeting, as a JSON array of objects with name, amount and the URL of the record in the CRMcrm_contact_count- Number of CRM contacts matched to the meetingcrm_company_count- Number of CRM companies matched to the meetingcrm_deal_count- Number of CRM deals matched to the meetingcrm_deal_amount_total- Sum, in dollars, of the amounts of the CRM deals matched to the meetingcrm_error- Reason Fathom could not return CRM matches, for example when no CRM is connected to the workspace
Meeting types
Meeting types
Meeting types configured for the organization, used to categorize meetings. Both active and inactive types are returned: inactive ones are no longer assignable but may still appear on historical meetings. Extracted as a full table.Fields:
name- Name of the meeting type, used as the primary key and as the value that identifies it on a meetingstatus- Whether the meeting type is currently assignable:activetypes can be assigned to new meetings,inactiveones only appear on historical onescreated_at- Timestamp when the meeting type was created (UTC)
Teams
Teams
Teams configured in the Fathom organization. Extracted as a full table.Fields:
name- Name of the team, used as the primary key and as the value that identifies it on a meetingcreated_at- Timestamp when the team was created (UTC)
Team members
Team members
People belonging to the teams of the Fathom organization. Extracted as a full table.Fields:
email- Email address of the team member, used as the primary keyname- Display name of the team membercreated_at- Timestamp when the team member joined the team (UTC)
Users
Users
Users of the Fathom account with their permissions. Fathom restricts this endpoint to account admins: when the API key belongs to a regular user, the stream is skipped with a warning instead of failing the extraction. Extracted as a full table.Fields:
email- Email address of the user, used as the primary keyname- Display name of the user. Empty for users who have not accepted their invite yetstatus- Current state of the user in the account:active,deactivatedorinvitedcreated_at- Timestamp when the user joined the account (UTC). For invited users, the date the invite was sentsettings_access_level- How much of the account settings the user can manage:none,team_adminoraccount_admin. Empty for invited userssettings_access_teams- Teams the settings access applies to: every team for an account admin, the administered teams for a team admin, empty otherwiseview_access_level- Whose meetings the user can view:own_meetings,team,multiple_teamsorall_teams. Empty for invited usersview_access_teams- Teams whose meetings the user can view: every team forall_teams, the granted teams forteamandmultiple_teams, empty forown_meetings