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

# Salesforce

## Salesforce integration

Keeping's Salesforce integration brings your CRM into the inbox. Once connected, agents can see Salesforce Contacts, Leads, Accounts, Cases, and Opportunities alongside every customer email — and create or update records without leaving Keeping. Optional automations can also add new customers to Salesforce as Contacts and log every email as a Salesforce Task, so your CRM stays in sync without anyone copying and pasting.

<figure><img src="/files/pAOnckx3y88WvTmKuZid" alt=""><figcaption></figcaption></figure>

### What you can do

* **See Salesforce records inline.** When a customer emails you, Keeping looks up the matching Contact (or Lead) in Salesforce by email address and shows it right next to the conversation, along with the related Account, recent Cases, and recent Opportunities.
* **Edit Salesforce records from Keeping.** Click any field on the matched record to update it; the change is written back to Salesforce immediately.
* **Add new customers to Salesforce.** If a customer doesn't exist in Salesforce yet, agents can add them as a Contact or as a Lead with one click.
* **Auto-add new customers as Contacts.** Optionally, every new conversation creates a Salesforce Contact automatically if one doesn't already exist for that email.
* **Auto-log conversations as Tasks.** Optionally, every inbound and outbound message is written to the matching Contact's Activity timeline as a Salesforce Task.
* **Pick which fields you see.** Admins choose which Salesforce fields show up on each record type, so agents only see what's relevant.

### Before you start

You'll need:

* A Keeping account with **admin** access — only admins can connect, configure, or disconnect Salesforce.
* A Salesforce user account with permission to authorize connected apps and read/write the objects you want to use (Contact, Lead, Account, Case, Opportunity).
* Either a production or a sandbox Salesforce org. Keeping detects which one you're connecting to automatically based on your Salesforce login — there's no separate sandbox setting.

### Connecting Salesforce to Keeping

1. In Keeping, click your initials in the top-right and choose **Settings**.
2. In the left-hand sidebar, click **Integrations**.
3. Find the **Salesforce** tile and click **Add Integration**.
4. A Salesforce login window will open. Sign in with the Salesforce user you want Keeping to act as, then approve the requested permissions. The connection inherits this user's Salesforce permissions, so make sure they can see and edit the records your team needs.
5. After you allow access, the window closes and you're returned to Keeping. The first time you connect, Keeping fetches your Salesforce schema (which objects exist, which fields each object has, etc.); this usually takes a few seconds.

<figure><img src="/files/VWegwZxATZsvpOwJGvAf" alt=""><figcaption></figcaption></figure>

### Choosing which fields show up

After connecting, you'll see one tab for each Salesforce object type Keeping supports:

* **Contacts**
* **Leads**
* **Accounts**
* **Opportunities**
* **Cases**

On each tab, tick the fields you want agents to see and edit in the Keeping inbox. Required fields (for example, `Email` and `LastName` on a Contact, or `Name`, `StageName`, and `CloseDate` on an Opportunity) are pre-selected and can't be turned off — Salesforce won't let you save a record without them. Custom fields you've added in Salesforce show up here too.

<figure><img src="/files/mru5mtgeYzr7r7yno1cm" alt=""><figcaption></figcaption></figure>

Click **Save** when you're happy with each tab. You can come back and change these later; field choices apply to every agent in your company.

### Automations (per mailbox)

Salesforce automations are configured per mailbox so you can, for example, push conversations from your sales inbox to Salesforce while leaving your billing inbox out of it.

1. In **Settings → Integrations → Salesforce**, open the **Automation** tab.
2. Pick a mailbox.
3. Toggle either or both:
   * **Auto-add new customers as Salesforce Contacts** — When a new conversation arrives from an email that doesn't already exist in Salesforce, Keeping will create a Contact with that email address. The `LastName` defaults to the local part of the email (the part before the `@`) if Keeping can't determine a real name; you can edit the Contact in Salesforce or in the Keeping sidebar afterwards.
   * **Push conversations as Salesforce Tasks** — Every inbound and outbound message in the conversation is logged to the matched Contact's Activity timeline as a Salesforce Task. The Task's subject identifies the Keeping conversation, and the description contains the message body. This only fires once a matching Contact exists in Salesforce — pair it with the auto-add toggle above if you want full coverage from day one.

Both toggles are off by default. Turn them on per mailbox as needed.

### Using Salesforce in the inbox

Open any conversation in Keeping. The Salesforce panel appears in the right-hand sidebar.

#### When the customer matches a Contact

If the sender's email matches a Salesforce Contact, the panel shows:

* The Contact's fields (the ones you selected in settings).
* The Account the Contact is linked to, if any.
* Up to three of the Contact's most recent Opportunities.
* Up to five of the Contact's most recent Cases.
* An **Open in Salesforce** link that opens the record in a new tab in your Salesforce org.

Click any field on the Contact to edit it inline. Click **Save** to push the change to Salesforce immediately.

#### When the customer matches a Lead

If the email matches a Salesforce Lead instead of a Contact, the panel shows the Lead's fields and lets you edit them inline, just like Contacts.

#### When there's no match in Salesforce

You'll see two options:

* **Add as Contact** — Open a form to create a new Salesforce Contact, pre-filled with the sender's email.
* **Add as Lead** — Open a form to create a new Salesforce Lead, pre-filled with the sender's email and (if available) name and company.

Fill in any required fields, then click **Save**. The new record is created in Salesforce, and the sidebar refreshes to show it as a match for this conversation and any future conversations from the same email address.

### Disconnecting Salesforce

To disconnect:

1. Go to **Settings → Integrations → Salesforce**.
2. Click **Disconnect**.

Disconnecting stops the integration immediately: the Salesforce sidebar panel disappears from conversations, auto-add and auto-Task automations stop running, and Keeping no longer has access to your Salesforce data.

### Troubleshooting

**The Salesforce panel says "Connection lost" or asks me to reconnect.** This happens when Salesforce has expired or revoked the connection — most often because the Salesforce user who originally connected was deactivated, had their password reset with token revocation, or had the Keeping connected app removed by a Salesforce admin. An admin in Keeping should go to **Settings → Integrations → Salesforce** and reconnect.

**A field I configured in settings isn't showing up in the inbox.** Confirm the field is ticked on the right tab in **Settings → Integrations → Salesforce**, and that the Salesforce user who authorized the integration has field-level read access to it in Salesforce. If you've recently added a brand-new custom field in Salesforce, disconnect and reconnect to refresh Keeping's copy of your Salesforce schema.

**Auto-add isn't creating Contacts for new conversations.** Check that:

* **Auto-add new customers as Salesforce Contacts** is turned on for the specific mailbox the conversation came into (the toggle is per-mailbox, not company-wide).
* The customer's email doesn't already exist in Salesforce — auto-add only creates Contacts for genuinely new addresses.
* The email isn't an internal alias or a domain you've configured Keeping to skip.

**Conversations aren't being logged as Tasks.** Activity logging only fires when there's a matching Contact in Salesforce. If you also have **Auto-add new customers as Salesforce Contacts** turned off, conversations from people who aren't already in your CRM will never be logged. Turning on both toggles for the same mailbox gives you full coverage.

**Saving a record returns an error.** Salesforce validation rules, required fields beyond Keeping's baseline, and triggers can all reject a save. The error message Keeping shows comes straight from Salesforce — open the record in Salesforce to make the edit there if the cause isn't obvious.

**I need help.** If you're still stuck, email <support@keeping.com> and we'll dig in.


---

# 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:

```
GET https://docs.keeping.com/help/setup/integrations/salesforce.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
