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

# Salesforce

Connect Salesforce to use CRM ownership in routing and write configured Lead, Contact, and Event updates. Workspace admins manage the connection and router actions.

## Connect Distro with Salesforce

Authorize a Salesforce user with access to the records and fields Distro needs. The connection requests API access and permission to stay connected; the connected user’s Salesforce permissions still control which operations succeed.

{% stepper %}
{% step %}
Open **Settings → Integrations**. Workspace admins manage CRM connections.
{% endstep %}

{% step %}
Find **Salesforce** under **CRM** and choose its connection action. Distro supports one connected CRM at a time; disconnect HubSpot first if it is connected.
{% endstep %}

{% step %}
You'll be redirected to Salesforce's authorization page
{% endstep %}

{% step %}
Grant Distro permission to access your Salesforce account
{% endstep %}
{% endstepper %}

## What does Distro do to your Salesforce account

#### Lead/Contact Management <a href="#leadcontact-management" id="leadcontact-management"></a>

When enabled in your router settings, Distro can:

* Create new Leads or Contacts based on your configuration
* Search for existing Contacts by email
* Update Lead/Contact information when matches are found
* Modify Lead/Contact ownership based on meeting assignments

#### Meeting Management <a href="#meeting-management" id="meeting-management"></a>

When the relevant CRM actions are enabled, Distro can:

* Creating Event records when bookings are confirmed
* Updating Event statuses (Scheduled, Rescheduled, Completed, No Show, Cancelled)
* Linking Events to associated Leads/Contacts
* Setting Event properties:
  * Meeting title
  * Start and end times
  * Meeting location: the address for an in-person meeting, or the meeting URL for an online meeting
  * Meeting status
  * External meeting URL

Outbound bookings use **Outbound Router Meeting** as the meeting type and record the Outbound Router name. The booked-by-prospect value distinguishes a prospect booking from a teammate booking on their behalf.

## Custom Properties in Salesforce <a href="#custom-properties-in-salesforce" id="custom-properties-in-salesforce"></a>

Distro automatically creates custom fields in Salesforce to track meeting and prospect information. These fields are created for Lead, Contact, and Activity objects.

#### Important: Field Visibility Requirements <a href="#important-field-visibility-requirements" id="important-field-visibility-requirements"></a>

Ask your Salesforce administrator to make the Distro fields accessible to the connected user and visible to the profiles that need them. Add them to the relevant Lead, Contact, and Activity page layouts. If field creation or an update fails, check the connected user’s permissions and field access before reconnecting.

#### Lead Custom Fields <a href="#lead-custom-fields" id="lead-custom-fields"></a>

* **Distro Meeting Type** (`Distro_Meeting_Type__c`)
  * Type: Text (100 characters)
  * Tracks the type of meeting scheduled
* **Distro Meeting Date** (`Distro_Meeting_Date__c`)
  * Type: DateTime
  * Records when the meeting is scheduled
* **Distro Meeting Status** (`Distro_Meeting_Status__c`)
  * Type: Picklist
  * Values:
    * Scheduled
    * Rescheduled
    * Completed
    * No Show
    * Cancelled
* **Distro No Show** (`Distro_No_Show__c`)
  * Type: Checkbox
  * Indicates if the prospect missed the meeting
* **Distro Router Name** (`Distro_Router_Name__c`)
  * Type: Text (75 characters)
  * Stores the name of the Distro router used
* **Distro Meeting Created At** (`Distro_Meeting_Created_At__c`)
  * Type: DateTime
  * Records when the meeting was initially created

#### Contact Custom Fields <a href="#contact-custom-fields" id="contact-custom-fields"></a>

The same fields are created for Contacts:

* `Distro_Meeting_Type__c`
* `Distro_Meeting_Date__c`
* `Distro_Meeting_Status__c`
* `Distro_No_Show__c`
* `Distro_Router_Name__c`
* `Distro_Meeting_Created_At__c`

#### Activity Custom Fields <a href="#activity-custom-fields" id="activity-custom-fields"></a>

Activity objects receive the following custom fields:

* `Distro_Meeting_Type__c` (Text, 75 characters)
* `Distro_No_Show__c` (Checkbox)
* `Distro_Canceled__c` (Checkbox)
* `Distro_Router_Name__c` (Text, 75 characters)
* `Distro_Booked_By_Prospect__c` (Checkbox)
* `Distro_Rule_Name__c` (Text, 75 characters)
* `Distro_Assignee_Name__c` (Text, 75 characters)

These custom fields are automatically created when you connect Salesforce to Distro, allowing you to track and report on meeting-related data within your Salesforce instance.

## Routing and booking are separate

A form submission starts routing. Matching a rule chooses the next routing step; it does not create a meeting. A meeting is created only when booking is confirmed.

Review the router’s **CRM Actions** to choose which records to create or update and when. Ownership rules can update a matched CRM owner after routing when configured. Strict distribution can update ownership after assignment; flexible distribution waits for the booking to select the host. Vacation coverage does not replace the original CRM owner.

For an Outbound Router, use **Booking-side CRM actions** for the actions required after a successful booking. CRM connectivity alone does not enable every router action.

## Enriched CRM fields

Use the CRM integration’s field mappings to write normalized enrichment values into supported fields. Choose whether to fill empty fields or overwrite them with a returned value. See [Enrichment](/integrations/enrichment.md) for provider order and mapping behavior.


---

# 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://help.distro.so/crm/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.
