By default, the Salesforce Integration User Licence doesn't provide access to a variety of standard objects (including Contacts and Accounts).
You can extend the access for an integration to those objects by using the Salesforce Integration API Permission Set License AND a custom permission set, as helpfully explained in accepted answer to this question.
Essentially:
- Create a user with the
Salesforce Integration User Licence
, - Apply the
Salesforce API Only System Integrations
profile, - Assign the
Salesforce API Integration
Permission Set Licence, then - Create a licence independent permission set that grants (READ, Object-Level) access to those objects.
This is all explained in the above question.
The problem is that the permission set created in step 4, had no field level access - BUT when testing, the integration user has read access to ALL the fields on the object.
Using Salesforce's User Access & Permission Assistant permission explorer, you can see that the object level access is granted by the Permission Set but the field level access is granted from the Profile (which you can't view or remove).
Is there any way you can use the Salesforce Integration User Licence while restricting access to specific fields?
(I've considered masking field level access with permission set groups, but there must be a simpler way?!)
integration user has read access to ALL the fields on the object.
- access via the REST API or via some Apex program that the integration user invokes?