# Salesforce Permissions needed

{% hint style="info" %}
A user with the "[Salesforce Integration](https://admin.salesforce.com/blog/2023/best-practices-for-configuring-your-integration-user)" license type can be used for all sync functionality, to avoid paying for a user license. Contact us if you need any assistance with getting this working correctly.
{% endhint %}

## Outbound Syncs

In general, you need either "Modify All" on the objects you wish to write to, or "Modify all data" at the org level.

## Inbound Syncs

In general, you need either "Read All" on the objects you wish to read, or "Read all data" at the org level.

However, there are a couple of situations that require extra privileges:

### Formula Fields

These are retrieved via the metadata API, so you need "Modify Metadata Through Metadata API Functions" (even though we are only reading).

<figure><img src="/files/tYnvYv6pQOydNj6BKtUP" alt=""><figcaption></figcaption></figure>

### Picklist Values

To read picklist values, we execute some Apex code via the tooling API to retrieve all picklist values in bulk. For this reason, you need the "Author Apex" system permission.

{% hint style="warning" %}
At first, may appear that a Salesforce Integration user cannot be granted this permission as it is hidden from the profile editing screen.

Instead, you must create a Permission Set with no specific license type:<img src="/files/79yOYMr9r7BouSp8YJvQ" alt="" data-size="original">

give it the system permission:

<img src="/files/z1JtnIr02JZpjmrLrX3a" alt="" data-size="original">

and then assign the permission set to the user.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.omnata.com/omnata-product-documentation/omnata-sync-for-snowflake/apps/salesforce/salesforce-permissions-needed.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
