> ## Documentation Index
> Fetch the complete documentation index at: https://docs.julian.11x.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Connect Salesforce or HubSpot, route records with an Agent Identifier, and build CRM workflows in Julian.

Connect Salesforce or HubSpot once, subscribe records to the correct agent with an Agent Identifier, build CRM
behavior in Workflow Builder, and inspect each execution in Run History. Everything on this page works the same way
for either CRM.

<Note>
  Your CRM also needs setup on its own side — a user, permissions, and object access. Complete that before the
  **Connect** step below: [Salesforce](/salesforce), or the [HubSpot setup
  guide](https://11xai.notion.site/julian-crm-integration-hubspot) for HubSpot's private app.
</Note>

## Connect

Open **Integrations** in Julian. Before a CRM is connected, Salesforce and HubSpot each display a **Connect** button.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/integrations-pre-connection.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=7075b7d9c875e854b4452f983597594a" alt="Salesforce and HubSpot before connection" width="2675" height="2037" data-path="images/crm/integrations-pre-connection.png" />

To connect Salesforce:

**1. Start the connection.** Select **Connect** beside Salesforce.

**2. Enter your Salesforce subdomain.** Enter the part before `.my.salesforce.com`, then select **Next**.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/salesforce-subdomain-prompt.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=9b97377807456760473b3a13b47efb47" alt="Salesforce subdomain prompt" width="5088" height="3902" data-path="images/crm/salesforce-subdomain-prompt.png" />

**3. Authorize Salesforce.** Complete the Salesforce authorization flow.

**4. Finish the installation.** Return to **Integrations** and open Salesforce to configure the integration.

After authorization, Salesforce displays **Integration Not Installed** until you map at least one Agent Identifier
field or enable write permission for at least one CRM object.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/salesforce-installation-incomplete.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=4d2304a8a899fca6c152783256ffc918" alt="Salesforce installation awaiting configuration" width="2675" height="2037" data-path="images/crm/salesforce-installation-incomplete.png" />

Complete the Agent Identifier and write-permission setup in the next section. Once the installation configuration is
saved, Salesforce appears as connected on the Integrations page.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/integrations-connected.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=f83b7ac25618308d391271179d4145c2" alt="Connected Salesforce and HubSpot integrations" width="2675" height="2037" data-path="images/crm/integrations-connected.png" />

A green status and a **Connected** button confirm the completed installation. The connection is shared across the
organization rather than created separately for each agent.

## Subscribe

Use an **Agent Identifier** when CRM field changes should start a sequence for a specific Julian agent.

1. Open the connected CRM from **Integrations**.
2. Under **Schedule**, choose the CRM field that stores the Agent Identifier for each supported object.
3. Use the matching Agent Identifier value on the agent's pre-sequence workflow.
4. Under **Push**, enable the CRM objects that Julian may write to.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/salesforce-agent-identifier.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=bec48d47a731be61cdf3ffe9cff10a44" alt="Salesforce Agent Identifier mapping and write permissions" width="2675" height="2037" data-path="images/crm/salesforce-agent-identifier.png" />

The Agent Identifier belongs to subscription routing. Ordinary **Search CRM** and **Write to CRM** nodes do not
require it. Within an organization, one Agent Identifier value routes to one workflow for each CRM provider and
record type.

## Build your workflows

Open an agent, select **Workflows**, and compose CRM actions with conditions and other workflow steps.

### Read from CRM

Use **Search CRM** to look up one record by Record ID or field filters, choose the fields to return, and use `found`,
`recordId`, and `record.<field>` in later nodes.

This pre-sequence example starts when the mapped CRM field changes, fetches contact details, checks the result, and
enrolls only records with the required fields.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/pre-sequence-workflow.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=31d76112a7101a34bad5e99036abca7b" alt="Pre-sequence CRM workflow" width="2675" height="2037" data-path="images/crm/pre-sequence-workflow.png" />

The Search CRM node below reads a Salesforce Lead by the Record ID from the workflow trigger and returns Phone and
Status.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/search-crm-configuration.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=b28850fda523dd2820bb8a0d0fbb0e9d" alt="Search CRM configuration" width="2675" height="2037" data-path="images/crm/search-crm-configuration.png" />

### Write to CRM

Use **Write to CRM** to create a record, update an existing record by Record ID, or log a supported activity. In a
post-call workflow, a call activity can also include the recording.

This post-call example searches for the Lead after analysis completes. When the Lead is found, it updates the CRM
record and logs the call activity with its recording. A missing record follows the safe no-op branch.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/post-call-workflow.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=0296a4ddfb8bb87b7c78b017a32d2319" alt="Post-call CRM workflow" width="2675" height="2037" data-path="images/crm/post-call-workflow.png" />

The Update CRM Record node below uses the Record ID returned by Search CRM and maps the call summary to the Salesforce
Lead Description field.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/update-crm-configuration.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=1bc8d375680cdde1321693aa5f66e5ed" alt="Update CRM Record configuration" width="2675" height="2037" data-path="images/crm/update-crm-configuration.png" />

## Observe your workflows

Open **Workflows → Run History** to confirm that a workflow ran and review its overall status, version, trigger, start
time, finish time, and duration.

<img src="https://mintcdn.com/11x-60396687/1UXJq5PnV_EfuC3h/images/crm/run-history.png?fit=max&auto=format&n=1UXJq5PnV_EfuC3h&q=85&s=f4360a8e4ac17544754568bb74302506" alt="Workflow Run History overview" width="2675" height="2037" data-path="images/crm/run-history.png" />

The latest entry above is a completed Version 3 test run of the updated post-call workflow. No individual node is
selected, so the page shows the run-level summary.

<Warning>
  Test runs execute real workflow actions. Use designated test data and safe branches when a workflow can update CRM
  records, send notifications, call APIs, or schedule sequences.
</Warning>
