> For the complete documentation index, see [llms.txt](https://docs.distro.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.distro.so/integrations/salesforce.md).

# Salesforce

Connect Salesforce to match Leads, Contacts or Accounts, preserve ownership and update the records your team uses.

## Connect and map members

An admin opens **Settings → Integrations → Salesforce** and authorizes the intended Salesforce organization. The standard connection screen requires you to disconnect HubSpot before connecting Salesforce.

Open CRM settings and map Distro members to Salesforce user identities. A Salesforce record ID identifies the prospect; a Salesforce user ID identifies an owner. Keep these mappings separate.

## Match before writing

Use the Salesforce Match step with the appropriate object and criteria. Branch on Matched and No match. Decide whether an existing owner should retain the lead or whether a fallback queue should receive it.

Create, Update and Convert Lead perform different operations. Use the matched record ID for Update. Review object API names, writable field API names, required fields and Salesforce validation rules before publishing.

See [Salesforce owner routing](/routing/salesforce-owner.md) for a complete routing decision.

## Start from Salesforce changes

CRM triggers use polling and saved cursors. Optional Change Data Capture can wake up polling sooner; it does not remove the polling path or automatically select Salesforce objects for CDC.

## When a write fails

Inspect the provider error and the failing field. Check the connected user's permissions, record type rules and required values. Reconnecting the same user will not grant missing Salesforce permissions.

Verify the destination record and owner after a controlled live run. Simulation cannot establish Salesforce write access.


---

# 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 following URL with the `ask` and `goal` query parameters:

```
GET https://docs.distro.so/integrations/salesforce.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

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.
