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

# Sync AI agents with HubSpot or Salesforce

> Connect HubSpot, Salesforce or Intercom so Contacts fill with your customers every 15 minutes and outcomes go back to the CRM. Connect your CRM.

Connect a CRM and your agent's Contacts fill with the customers you already
know, kept up to date as they change in the CRM. You can sync your AI agent with
HubSpot, Salesforce or Intercom, and, with **Write outcomes back** on, what the
agent learns in a conversation goes back to the same customer's record
(conversation summaries also need churn detection on).

![Integrations page on Main with Add integration, No integrations connected and the Salesforce, HubSpot, Shopify and Stripe cards](https://mintcdn.com/centillion/WLpDA0mJ1ryQ1IZ5/images/agents/integrations-01-page.webp?fit=max\&auto=format\&n=WLpDA0mJ1ryQ1IZ5\&q=85\&s=b644a8f5975aa2f2e7c902e41a0f7267)

The agent's Integrations page, where Add integration opens the catalog and connected CRMs are listed.

## What it does

* Copies email, name and phone from each CRM record into
  [Contacts](https://cntillion.com/docs/customer-data/contacts.md), then reads only changed records every 15
  minutes.
* Matches a CRM record to the contact with the same external ID, email or phone,
  and leaves duplicates out instead of merging them.
* Copies extra CRM fields you map onto contact attributes or the External ID.
* Writes conversation summaries, churn reasons and handoffs back to the CRM
  record, for contacts that came from the CRM.
* Supports HubSpot, Salesforce and Intercom, with each agent connecting its own
  account.

## What you need

* Standard and up for HubSpot, Salesforce and Intercom. Sync and write-back stop
  if the workspace no longer has the required [plan](https://cntillion.com/docs/workspaces/billing.md); saved
  contact records remain available.
* The Owner or Member role to connect and change integrations. Viewers can read
  their status but cannot change them. See [workspace
  roles](https://cntillion.com/docs/workspaces/members.md).
* A CRM account that can approve access, or for Salesforce, an external client
  app in your org.

If you are new to the product, start with [what Centillion is](https://cntillion.com/docs/introduction.md).

## Set it up

**1. Open Integrations**

Open your agent and choose **Integrations** in the sidebar. The page lists
what the agent has connected, with a search box and a sort order.

**2. Find the CRM**

Click **Add integration** to open the catalog. Choose a category on the left
(Knowledge, CRM, Helpdesk, Messaging and live chat, Commerce, Payments,
Scheduling, Telephony, E-signature) or use **Search integrations**.

**3. Connect**

Choosing a provider opens its window with three tabs: **Configure** to
connect it, **Tools** for what the agent can do with it, and **About**.
Click **Connect**, sign in to the CRM and approve access. For Intercom,
first choose the **Data region**.

**4. Wait for the first sync**

You return to the Integrations page, and the first sync starts within a few
minutes.

**5. Map fields and write-back**

Open the connection to choose **Field mapping** and turn on **Write outcomes
back**.

## Use it every day

### The catalog

The catalog also includes [Stripe billing](https://cntillion.com/docs/customer-data/stripe.md), Shopify,
Slack, [Twilio](https://cntillion.com/docs/channels/phone.md) for phone calls, and other providers. Providers
the Centillion team sets up with you are marked **On request**, and choosing one
offers **Contact us**. A CRM without its deployment configuration also shows
this contact option. **Back** returns to the catalog.

Each agent connects its own CRM account. Connecting the same account to two
agents is fine: each keeps its own contacts. The workspace **Integrations** page
lists workspace and agent connections in one table. Search by service, account
name or agent, and sort by **Recent** or **Name**. The **Scope** column shows
which agent owns a connection; **Manage** opens its settings.

![Workspace Integrations with search, sorting, a connections table and suggested services](https://mintcdn.com/centillion/WLpDA0mJ1ryQ1IZ5/images/agents/integrations-02-workspace.webp?fit=max\&auto=format\&n=WLpDA0mJ1ryQ1IZ5\&q=85\&s=e4c350b69194318892973318213fe3da)

Workspace Integrations lists saved connections. Add integration opens the catalog, including DocuSign under E-signature.

Connect DocuSign from **Add integration**, then choose your environment and sign
in or enter your integration key. Its window has **Configure**, **Tools** and
**About** tabs. Once connected, **Manage** shows the Connect URL and lets Owners
and Members update the Connect HMAC key.

Message templates and SMS or email opt-out wording are available from the
three-dot menu beside **Add integration**, under **Message settings**.

| CRM | What syncs | What is written back |
| - | - | - |
| HubSpot | Contacts | A note on the contact |
| Salesforce | Contacts | A completed task on the contact |
| Intercom | Users and leads | A note on the user, written as the admin who connected |

### Intercom regions

Choose where your Intercom workspace is hosted under **Data region**: the US,
Europe or Australia. Intercom has a separate sign-in page for each region. If you
sign in to Intercom with Google, the region has to match, or Intercom refuses the
sign-in.

### Salesforce with your own app

Salesforce offers a second **Connection method**: **OAuth 2.0 client
credentials**, which connects through an app in your own org instead of signing
in.

1. In Salesforce Setup, create an external client app with OAuth turned on.
2. Enable the client credentials flow and choose the integration user it runs
   as. Give that user API access and access to contacts, cases and tasks.
3. In Centillion, choose **Salesforce**, set **Connection method** to **OAuth
   2.0 client credentials**, and enter your org's My Domain hostname (such as
   `acme.my.salesforce.com`), the consumer key and the consumer secret. Click
   **Connect**.

The agent then works as that integration user. The key and secret are stored
encrypted and are only sent to your org's Salesforce host. If you rotate the
secret, open the connection and choose **Update credentials**.

### Salesforce support workflows

Salesforce contact syncing shares its connection with **Channels → Salesforce**.
From that channel's **Manage** screen, choose the model and instructions in
**Overview**, then install the package and assign an active reply user in
**Configs**. Leave **Generate Draft Response** off for automatic case emails, or
turn it on for drafts that teammates review and send from Salesforce. Verify the
reply user's organization-wide email address before using automatic replies.

**Unassign user** stops automatic generation and keeps manual drafts and contact
syncing available. **Pause sync** pauses the shared connection, including case
replies and live chat synchronization. **Disconnect** also removes the package
configuration and closes its live chats; existing Salesforce cases and emails
remain in Salesforce.

Use [Salesforce support actions](https://cntillion.com/docs/helpdesk.md#salesforce-support) to create cases,
escalate an existing case, or hand website chats to your team. The [Salesforce
setup guide](https://cntillion.com/docs/channels/salesforce.md) covers package installation, permissions and
Enhanced Chat configuration.

### What syncs

Email, name and phone always sync. After the first pass, only records changed
since the last one are read, every 15 minutes. **Sync now** queues a pass right
away, and **Pause sync** stops syncing until you resume it.

A CRM record joins the contact that already has its external ID, email or phone,
or becomes a new contact. A phone only joins them when their emails match or one
of them has none, so colleagues who share a company's main number stay separate
contacts, and the number stays on the contact that already has it. A record with
no email, phone or external ID is skipped. Two CRM records that point at the same
contact are counted as duplicates and the second one is left out, rather than
merged. A value another contact already uses is not copied over, and an empty
email, name, phone or external ID in the CRM never erases the one the contact
already has.

### Choosing extra fields

**Field mapping** picks more CRM fields to copy onto each contact:

* **External ID**: the id your own product uses for the customer. Map it if you
  use [identity verification](https://cntillion.com/docs/customer-data/identity-verification.md), so a
  signed-in visitor meets their CRM record.
* **An existing contact attribute**, such as a plan or balance you created in
  **Contacts**, **Manage attributes**.
* **A new attribute**, created with the CRM field's type when you save.

When you add a field, or change which CRM field fills a contact field, the sync
restarts from the beginning, so contacts that already synced get the new values
too. Values are converted to the attribute's type; one that cannot be converted
is left out. A mapped field follows the CRM: clearing it there clears it on the
contact.

### Writing outcomes back

With **Write outcomes back** on, the agent logs to the contact's CRM record:

* a short summary of each finished conversation, when [churn
  detection](https://cntillion.com/docs/customer-data/churn-reasons.md) is on;
* the reason, when a customer says they are leaving;
* each handoff to your team, when the agent opens a ticket or a live chat in
  Helpdesk or asks for one again on the customer's existing ticket: the ticket
  number, the subject and description of that request, and a link to the
  ticket.

Only contacts that came from the CRM are written back to. A person takes over
from the [helpdesk inbox](https://cntillion.com/docs/helpdesk.md), and the CRM keeps a note of each handoff.

### When a connection stops

If the CRM stops accepting the connection, because access was revoked or the
app was uninstalled, the Integrations list shows **Needs reconnect** and syncing
stops. Click **Manage**, then **Reconnect**, or **Update credentials** for a
Salesforce connection made with client credentials. Notes queued in the meantime
are sent once it works again.

**Disconnect** removes the connection, its field mapping and queued notes.
Contacts that synced stay in Contacts.

## Limits and good to know

* Changed records sync every 15 minutes. **Sync now** queues a pass at once.
* A record with no email, phone or external ID is skipped, and a second record
  pointing at the same contact is left out as a duplicate.
* Write-back reaches only contacts that came from the CRM.
* Conversation summaries are written back only when churn detection is on.
* Disconnecting deletes the field mapping and queued notes; synced contacts
  stay.

## Questions

### How often does Centillion read my CRM?

The first pass reads every record. After that, only records changed since the
last pass are read, every 15 minutes. **Sync now** queues a pass right away.

### Will syncing overwrite data my agent collected?

An empty email, name, phone or external ID in the CRM never erases the one the
contact already has. A mapped attribute follows the CRM, so clearing it there
clears it on the contact.

### Can two agents use the same CRM account?

Yes. Each agent connects its own account, and connecting the same account to
two agents is fine. Each keeps its own contacts.

### What does the agent write to the CRM?

A summary of each finished conversation when churn detection is on, the reason
when a customer says they are leaving, and each handoff to your team with the
ticket number, subject, description and link.

### Why does my integration show Needs reconnect?

The CRM stopped accepting the connection, usually because access was revoked or
the app was uninstalled. Click **Manage**, then **Reconnect**, and queued notes
are sent once it works again.

### Which plan do I need?

Standard and up for HubSpot, Salesforce and Intercom.

## Try it

Connect your CRM to one agent, wait for the first sync, and open **Contacts** to
check that your customers arrived with the fields you mapped.

> [card] [Start free](https://app.cntillion.com/sign-up?utm_source=docs\&utm_medium=article\&utm_campaign=customer-data-crm-integrations)
>
> Start on the Free plan, or take a seven-day trial of a paid plan. Your agent is live on your site in an afternoon.

> [card] [Book a demo](https://cal.com/patrick-turricelli-smgfks/15min?utm_source=docs\&utm_medium=article\&utm_campaign=customer-data-crm-integrations)
>
> Fifteen minutes with the team, on your own use case.

Or ask the assistant on this page.

## Related

> [card] [What Centillion is](https://cntillion.com/docs/introduction.md)
>
> How the agent, its knowledge and its channels fit together.

> [card] [Contacts](https://cntillion.com/docs/customer-data/contacts.md)
>
> Import, edit and segment the customers your agent knows.

> [card] [Stripe billing](https://cntillion.com/docs/customer-data/stripe.md)
>
> Show signed-in customers their invoices and subscriptions in chat.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.