Salesforce Integration
Fathom's Salesforce integration writes call summaries, action items, and selected meeting content into Salesforce so reps don't have to manually input them. Once connected, Fathom matches each external meeting to the appropriate Contact, Account, and open Opportunity records using the meeting attendees' names, email addresses, and company, then writes a logged Task containing the AI-generated call summary.
This guide is intended for Salesforce administrators. It covers the OAuth scopes Fathom requests, the object matching logic, supported field types, Deal View setup, expected behavior for edge cases, and a reference of Salesforce API errors that can surface during sync.
Quick Reference
Topic | Behavior |
Objects written | Contact, Account, open Opportunity (simultaneously) |
Matching key | Primary email address of external attendees |
Lead support | Not supported |
Person Accounts | Supported via standard Account.Id relationship |
OAuth scopes | api, custom_permissions, id, refresh_token |
Required field types | Long Text Area, single-line Text (Nov 2025+) |
Mappable template headings | H3 (###) and H4 (####) only |
Character limit per field | 32,000 (default) – auto-truncated |
Retroactive sync | Manual per-call only |
Closed Opportunities | Excluded |
Internal-only meetings | Excluded |
Setting Up the Integration
Confirm the Salesforce prerequisites
Salesforce edition must have the REST API enabled (standard on Enterprise, Performance, Unlimited, and Developer editions).
The authorizing user needs read and write access to Contact, Account, Opportunity, and Task.
If your org uses Territory Management, the authorizing user must have access to the territories of any Opportunities they expect to sync to.
Configure team-level sync
Admins on a Business plan can connect Salesforce at the team level under Organization Settings → Integrations. A team-level connection lets every team member's calls sync under the same connection, even if a member doesn't have their own Salesforce seat. It's also a prerequisite for Deal View.
Multiple Salesforce Instances: Fathom supports one Salesforce connection per team. Organizations using multiple Salesforce instances can have users connect their own Salesforce accounts in personal settings, allowing meetings to sync to different instances. Deal View and team-level field mapping require a shared team-level Salesforce connection and are not supported in this setup.
Choose sync mode
Automatic sync writes to Salesforce as soon as a meeting ends and the summary is generated. This is the default and the recommended path for every team.
Manual sync is available whenever users need to push data to Salesforce outside of the automatic sync workflow. Users can click “Sync to CRM” on the Fathom call page before any data is written. This option is available to Fathom account admins across all calls they can access, and to call owners for their own calls.
OAuth scopes & required permissions
Fathom uses the standard Salesforce OAuth 2.0 flow and requests four scopes:
api – read/write access via the REST API.
id – basic profile to identify the connecting user.
custom_permissions – the user's custom permission assignments.
refresh_token – maintains the connection without re-prompting on token expiry.
Beyond the scopes, the connecting user needs object-level edit permissions on Contact, Account, Opportunity, and Task.
The fastest source of "insufficient privileges" errors is a missing API Enabled system permission. If your security model uses permission sets, confirm the connecting user's permission set grants both object-level access and API Enabled.
How syncs work
Matching Logic
When a meeting ends, Fathom takes each external attendee (anyone outside your team's email domains) and walks the matching logic in order:
Contact – match on the attendee's primary email address.
Account – follow the Contact's Account.Id.
Open Opportunity – follow the Contact's OpportunityContactRole records to any open Opportunities.
Each step depends on the prior one. If a Contact isn't found, Fathom writes nothing. If the Contact exists but isn't explicitly linked to an open Opportunity via OpportunityContactRole, deal-level info does not sync to that Opportunity.
A few specifics worth knowing:
Matching uses the attendee's primary email on their Salesforce profile. Secondary or alternate emails are not used.
Fathom does not match against Leads. Only Contact, Account, and Opportunity records are written to.
Only open Opportunities receive new activity. Closed-Won and Closed-Lost are excluded.
Person Accounts work when the Person Account is related to a Contact via the standard Account.Id reference. Custom relationships outside the standard model are not supported.
What gets written
Meeting summary: The AI call summary is written as a Task (logged call) on the matched Contact.
Deal summary: When Deal View is configured and the Contact is linked to an open Opportunity, the deal summary (and any mapped fields) writes to that Opportunity.
Action items
If the Contact is linked to one or more open Opportunities, each action item from the call is written as a separate Task on each open Opportunity and its associated Contact.
If there are no open Opportunities for the Contact, each action item is written as a Task on each external Contact on the call.
Action items only write when the Create Tasks setting is enabled.
Task attribution
Tasks are created by the Fathom integration service user but owned/assigned to the call host. That means activity-by-rep reporting in Salesforce attributes the call correctly, even though the write was made by the integration.
Calls that don’t sync
Secondary or sub-calendars are not synced. Only events on the user's primary connected calendar are eligible.
Impromptu calls without a calendar event behind them don't match to Salesforce records. If meetings booked via a third-party scheduler appear in Fathom as impromptu, confirm the scheduler is writing events to the user's primary calendar.
Internal-only meetings (no external attendees) are not synced.
Field mapping & Deal View
Deal View maps specific sections of Fathom's AI-generated deal summary to Salesforce fields on the Opportunity. For example, map "Pain Points" to a custom text area, or "Next Steps" to a custom field used by reps and forecast reports.
Prerequisites
Deal View is available on Fathom's Business plan (formerly Pro).
Salesforce must be connected at the team level by an admin in Organization Settings.
Field mapping is configured by a Fathom team admin and applies across the team.
Supported Salesforce field types
Long Text Area (textarea) – fully supported.
Text (single line) – supported as of November 2025.
If a field doesn't appear in Fathom's mapping dropdown, verify in Setup → Object Manager → Opportunity → Fields & Relationships that it's one of the supported types and is editable by the connecting user.
Template section requirements
Fathom can map only sections of the AI summary that are structured as H3 or H4 headings in your deal template. When customizing a template, instruct the AI to use H3 or H4 headers for any section you intend to map (for example, "Use ### headers for sections like Competition, Pain Points, Next Steps, and Decision Criteria"). Sections built from H1, H2, plain bold text, or unstructured paragraphs cannot be mapped.
Character limits
Salesforce Long Text Area fields have a default limit of 32,000 characters. Long summaries are auto-truncated to fit and the summary content is preserved. Custom fields may have lower configured limits – check the field definition if a section appears cut short. Any custom validation rules on the Opportunity must also accept the content Fathom is writing; if not, the sync will fail for that record.
Existing field values
When Fathom writes a mapped deal summary section to a Salesforce field, any existing value in that field is overwritten. As new meetings occur and updated summaries are generated, Fathom refreshes the mapped field with the latest content from the corresponding section of the deal summary.
Configuring a mapping
Open any deal in Fathom (the deal you choose doesn't matter for setup).
Hover over the section heading you want to map.
Click Map to Salesforce.
Select the Salesforce field that section should write to.
Salesforce-side Considerations
Validation rules
Validation rules on Contact, Account, Opportunity, or Task can block Fathom's write. The most common patterns: rules that require specific picklist values, rules that require a field be populated on every edit, and rules tied to specific record types or stages. The error message Fathom surfaces in these cases comes from Salesforce – review the rule definition in Setup.
Record types
Different record types on the same object can have different page layouts and different required fields. Confirm the record types used by your team allow Tasks to be created by the connecting Fathom user and don't require fields Fathom cannot populate.
Territory Management
If Opportunities are auto-assigned to territories and the connecting user lacks access to a given territory, sync to those Opportunities will fail. Either grant the user access to the relevant territories, or use a team-level connection with a user who has broad territory access.
Where Summaries Appear on the Record
Fathom writes call summaries as Salesforce Tasks (logged calls), so they appear in the Activity Timeline on Contacts, Accounts, and Opportunities. On orgs using the modern Notes experience, the summary also appears in the Notes & Attachments related list.
Timing and backfill
Once connected, Fathom syncs calls going forward by default.
Individual older calls can be pushed manually: open the call in Fathom and click Sync to CRM.
Disconnecting and reconnecting Salesforce does not re-sync historical calls.
Errors & Troubleshooting
Salesforce Error Reference
When a sync fails, your Salesforce admin can check Salesforce logs for the error. If nothing surfaces there, send an example call URL to help@fathom.video and the team will check backend logs from the Fathom side.
The codes below are the ones most likely to surface as real Fathom sync failures.
Error Code | Meaning | What to Check |
INSUFFICIENT_ACCESS_OR_READONLY | User lacks edit access on Contact, Account, or Opportunity. | Profile/permission set object permissions; sharing rules; OWD settings. |
FIELD_CUSTOM_VALIDATION_EXCEPTION | A custom validation rule blocked the write. | Setup → Object → Validation Rules. Review the rule formula and error condition. |
INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST | A restricted picklist would be set to an unsupported value. | Confirm mapped values are valid options for that picklist in the relevant record type. |
INVALID_CROSS_REFERENCE_KEY | Reference to a related record that doesn't exist or the user can't see. | Sharing on the parent record; confirm the record still exists. |
TERRITORY_MANAGEMENT_EXCEPTION | Connecting user lacks access to the Opportunity's assigned territory. | Territory assignments and territory model in Setup → Territory Management. |
STRING_TOO_LONG | Summary or mapped value exceeds the field's character limit. | Increase the field length if possible, or accept Fathom's automatic truncation. |
INVALID_STATUS | Attempted to write activity to a Closed Opportunity or inactive record. | Re-open the Opportunity or ensure the attendee is associated with an active record. |
Admin troubleshooting checklist
When a user reports calls aren't syncing, work through these in order:
Connection state – In Fathom, confirm the Salesforce integration is connected and the OAuth token hasn't been revoked.
Attendee match – Confirm the external attendee exists as a Contact in Salesforce with the same primary email address used on the meeting invite.
OpportunityContactRole link – If deal-level info is missing, confirm the Contact is linked to the open Opportunity via OpportunityContactRole.
Opportunity state – The Opportunity must be open – Closed-Won and Closed-Lost are excluded.
Calendar source – The meeting was on the user's primary calendar (not a sub-calendar), and was a scheduled event rather than an impromptu call.
Field mapping – If only mapped fields are missing, verify the template uses H3/H4 headings for the mapped sections and that target fields still exist and are editable.
Validation & territory rules – Audit any recent changes to validation rules, page layouts, record types, or territory assignments.
Send Fathom an example – If the Salesforce-side checks come back clean, send an example call to help@fathom.video for backend log review.
