> For the complete documentation index, see [llms.txt](https://docs.omnata.com/omnata-product-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.omnata.com/omnata-product-documentation/omnata-sync-for-snowflake/apps/salesforce/salesforce-permissions-needed.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
