To power seamless automation and intelligent support experiences, Fin integrates deeply with your Salesforce instance. This integration requires specific object and field-level permissions, which allow Fin to create, update, and sync Salesforce cases and related data.
This article will walk you through:
Why these permissions are important
Who needs them
How to implement them
A complete reference table of the required permissions
Why These Permissions Matter
Fin relies on Salesforce data to create cases, post summaries, read contact information, and route conversations to agents. Without the proper permissions, Fin may be unable to interact with your Salesforce environment effectively—resulting in failed syncs, blocked automations, or limited functionality.
Who Needs These Permissions?
There are two key Salesforce users involved in the integration:
The connected Salesforce user – the one linked during integration setup
The user assigned as Fin – the user Fin impersonates when responding, posting, or taking workflow actions
Both require access to different objects and operations for things to run smoothly.
How to Implement the Permissions
The recommended approach is to assign a custom Permission Set in Salesforce:
Go to Setup → Permission Sets
Create a new permission set (e.g.,
Fin x Salesforce Integration
)Assign the permissions shown in the table below
Assign the permission set to your connected Salesforce user
Make sure the following Salesforce features are also enabled:
Chatter
Topics (under Setup → Chatter Settings → Allow Topics)
Feed Tracking (via Setup → Object Manager → [Object] → Feed Tracking)
Digital Experiences, for some visibility-based fields
Required Salesforce Permissions Table
Salesforce Object | Fields | Operations | Who Needs It | Why It's Needed |
EmailMessage | Id, FromName, FromAddress, ToAddress, Subject, ThreadIdentifier, HtmlBody, TextBody, CreatedById, CreatedDate, Incoming, ParentId, LastModifiedDate, LastModifiedById | Create, Read | Connected User, Fin | Used to create messages and replies for email-to-case workflows |
CaseFeed | Id, Title, Body, Type, CreatedBy.*, CreatedDate, Visibility, ParentId, LastModifiedDate | Read | Connected User | Required for tracking case activity |
FeedItem | Id, Body, ParentId, IsRichText, Type, Visibility, CreatedDate, CreatedById, LastEditById | Create | Connected User, Fin | Adds conversation transcripts and AI summaries to cases |
Case | Id, Subject, Description, ContactId, OwnerId, SuppliedEmail, SuppliedName, Origin, SourceId, FinInvolved__c, FinResolutionState__c | Create, Read, Update | All roles | Core case creation, handoff, and field sync |
Topic | Id, Name | Create, Read | Connected User | Adds or queries case topics for tracking Fin’s involvement |
TopicAssignment | TopicId, EntityId | Create | Connected User | Assigns topics to cases |
Contact | Id, Email, CreatedDate, FirstName, LastName | Create, Read | Connected User | Needed when creating or associating contacts to cases |
User | Id, ContactId, FirstName, LastName, Email, UserType, IsActive | Read | Connected User | Enables assigning cases to specific users |
Group | Id, Name, Type | Read | Connected User | Grants visibility into Salesforce queues |
QueueSobject | QueueId, SobjectType | Read | Connected User | Allows selection of queues for routing cases |
Tip: Fields marked with __c
(e.g., FinInvolved__c
) are custom fields used to track AI involvement and resolution state. Make sure they’re configured in Settings → Salesforce Integration.
Implementation Checklist
Before you go live, make sure to:
Assign the custom Fin Integration Permission Set
Enable Chatter, Topics, and Feed Tracking in Salesforce
Confirm visibility for custom fields like
FinInvolved__c
andFinResolutionState__c
Test the integration using a sandbox or non-production environment