> For the complete documentation index, see [llms.txt](https://docs.jetadmin.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.jetadmin.io/getting-started/migrating-a-project/salesforce.md).

# Salesforce

Connect Salesforce to Jet Admin to build apps on your Accounts, Contacts and Opportunities — live, or synced into Jet Tables.

Use Jet Admin to build apps on your Salesforce org while keeping Salesforce as the system of record.

{% hint style="success" %}
Jet Admin reads your Salesforce data. Connecting it doesn't modify anything in your org.
{% endhint %}

## What you get

Jet syncs the following Salesforce objects:

* Accounts
* Contacts
* Opportunities

Jet Admin preserves relationships between these objects, so an Account resolves to its Contacts and Opportunities in the Data Editor.

{% hint style="info" %}
Custom objects aren't part of the standard sync. To access them, add a [REST API resource](/getting-started/integrations/rest-api.md) pointed at the Salesforce REST API alongside this one.
{% endhint %}

## Before you start

* A Salesforce account with access to the objects you need
* Your Salesforce API key
* If your org has a sandbox, connect that first and switch to production once the app works

## Connect Salesforce

{% stepper %}
{% step %}

#### Get your Salesforce API key

Sign in to Salesforce, then find and copy your API key.
{% endstep %}

{% step %}

#### Add Salesforce as a resource

In Jet Admin, open **Data → Add Resource** and select **Salesforce**. Paste your API key.
{% endstep %}

{% step %}

#### Choose your connection mode

Choose **Sync** to blend Salesforce with another source. Choose **Direct** for writes that update Salesforce immediately. See [Choosing a connection mode](https://docs.jetadmin.io/getting-started/migrating-a-project) if you're unsure.
{% endstep %}

{% step %}

#### Sync the structure

Click the **More** icon on the resource, then **Sync Structure**. Accounts, Contacts and Opportunities appear in the Data Editor.
{% endstep %}

{% step %}

#### Check the data

Open each table in the [Data Editor](/videos/data-editor/data-editor-interface.md) and check the records and field types before building your app.
{% endstep %}
{% endstepper %}

## Troubleshooting

Tables are empty after connecting. The structure synced but the data hasn't. Run **Sync now**, then check **More → View Sync Events** for errors.

An object I need is missing. Only Accounts, Contacts and Opportunities are part of the standard sync. Custom objects need a REST API resource.

Fields changed in Salesforce and my app broke. Run **More → Sync Structure** again, then rebind any component pointing at a renamed field.

{% content-ref url="<https://docs.jetadmin.io/getting-started/migrating-a-project>" %}
<https://docs.jetadmin.io/getting-started/migrating-a-project>
{% endcontent-ref %}


---

# 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.jetadmin.io/getting-started/migrating-a-project/salesforce.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.
