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

# Custom Object

{% embed url="<https://pub-8e1d08f439ec43bdbb79f1055a273a02.r2.dev/salesforce-object-model-and-field-ownership-40fb93c7.mp4>" %}

Kernel can write enrichment to your Salesforce Account records or to the Kernel Account custom object, `Kernel_Account__c`.

Kernel recommends the custom object route so you can review Kernel data separately before deciding which values should update Account. A configured CRM push can write directly to Account. A Kernel Account to Account mapping can also copy selected values from the custom object.

For an existing Salesforce Account, the linked Kernel Account holds its Kernel data. Kernel Account can also hold a hierarchy entity that does not yet have a corresponding Account. A blank Account link therefore needs to be understood in the context of that record's role.

<figure><img src="https://1215786129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvRYB7XIKCnmUi9oCEQGV%2Fuploads%2FQ8hGnymHYyAlW7oiAEcf%2FCustom%20Object%20Flow.png?alt=media&amp;token=df545369-679e-4f00-9ba4-acb115595f15" alt=""><figcaption></figcaption></figure>

If your account import uses Kernel Account as its source, first copy the permitted Account fields into Kernel Account. If Kernel reads directly from Account, that extra copy is unnecessary. Review the selected source fields, related-object workflows and integration-user access separately. Choosing Kernel Account as the account source does not by itself describe every workflow enabled in your integration.

## 1. Reading from Salesforce

* Kernel connects to your Salesforce instance via an integration as configured per the Salesforce Integration documentation.
* Account records (with selected fields and filters) are read into Kernel’s platform.
* This data is then prepared for enrichment, cleaning, and deduplication.

## 2. Processing in Kernel

* Kernel applies enrichment (e.g., adding missing firmographic data, hierarchy modeling).
* Cleaning rules are applied to the standard fields.
* Duplicate records are flagged and grouped for review.

## 3. Writing Back to Salesforce

* Kernel writes updates back into Salesforce at a specified cadence.
* By default, the updates flow into the `Kernel_Account__c`.
* Optionally, you can configure Kernel to write directly into the Account records if that better fits your workflow.

## Setting up the object

### 1. Navigate to the Record Sync tab

Within the Kernel application (search "Kernel" in the app launcher) you need to go to the **Record Sync** tab. The **Configuration** tab will have been complete while doing the [Package Installation Guide](/integrations/salesforce-integration/package-installation-guide.md).

### 2. Configure the sync

You need to configure your account object and the Kernel object. The **Source Object** needs to be the object that you use in Salesforce to represent an account. The **Target Object** should be the `Kernel Account` object.

You then need to link the objects using the Salesforce ID. The fields will be as shown in the screenshot.

Finally label the configuration.

<figure><img src="https://1215786129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvRYB7XIKCnmUi9oCEQGV%2Fuploads%2FvL6hlwlxKqeWC8Gx2yad%2Fimage.png?alt=media&amp;token=a0988cc5-ce40-4630-8394-ef628f5db025" alt=""><figcaption></figcaption></figure>

### 3. Set up field sync (security conscious route)

This allows Kernel to pull from your source object via the custom object. By default Kernel recommends pulling fields directly from the Account object to allow maximum flexibility in the fields used.

For the standard Account to Kernel Account sync direction, the package shows these locked mappings:

| Source field | Kernel Account field | Notes                                                 |
| ------------ | -------------------- | ----------------------------------------------------- |
| `Name`       | `Name`               | Auto-populated when Kernel Account stubs are created. |
| `Website`    | `Kernel_Website__c`  | Auto-populated when Kernel Account stubs are created. |

Add only the extra source fields your security model allows Kernel to read. If Kernel is pulling directly from the Account object, this step can be left blank.

<figure><img src="https://1215786129-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvRYB7XIKCnmUi9oCEQGV%2Fuploads%2FL17IjIHI7WqAvGNQ0yQ7%2Fimage.png?alt=media&amp;token=b6eea49d-2692-47ac-93e1-07bf29d3d390" alt=""><figcaption></figcaption></figure>

### 4. Filter Records

The filter selects source records for this Salesforce field-copy configuration. It does not define every record Kernel can read through other workflows. Leaving the filter blank broadens this copy's source selection. Review CRM import filters and the integration user's Salesforce access separately.

Once complete you can sync the records to enact your latest changes.

{% embed url="<https://www.loom.com/share/c68463bebe13411cb7fd1e77293f08a7>" %}

### Field ownership and record links

Choose which direction maintains each field before scheduling both directions. Account to Kernel Account can copy customer values into Kernel Account. Kernel Account to Account copies only the values included in that configuration.

| Object         | Field                     | Purpose                                     |
| -------------- | ------------------------- | ------------------------------------------- |
| Account        | `Kernel_Account__c`       | Lookup to the related Kernel Account record |
| Kernel Account | `Linked_Account_Field__c` | Lookup to the related Account record        |

### KERN ID fields

KERN ID identifies the company. Salesforce record IDs and lookup fields identify the records used by Record Sync.

| Object         | Field          | Type                 |
| -------------- | -------------- | -------------------- |
| Account        | `Kern_Id__c`   | Text, 255 characters |
| Kernel Account | `Kernel_ID__c` | Text, 255 characters |

Check the type and length of any customer-created destination field before copying an identifier.

On Kernel Account, `Name` is labelled **Kernel - Trading name**. `Kernel_Legal_Name__c` holds the registered legal name. The value on Kernel Account also depends on the mappings that write to it.

Before retiring an older field, identify it by object and API name. Review its values, Salesforce dependencies and every integration mapping that reads or writes it. Move those dependencies and test the replacement before deciding whether to delete the old field.

Follow [Set up Record Sync and schedules](https://docs.kernel.ai/integrations/salesforce-integration/record-sync-backfill-and-schedules) to link existing Accounts and configure field copies. Use [Troubleshoot sync](https://docs.kernel.ai/integrations/salesforce-integration/troubleshoot-sync) when a value or record link is missing.

### Custom object reference

To display Kernel Account fields in a dedicated tab on your Salesforce Account record, follow [Show Kernel data on an Account](/integrations/salesforce-integration/show-kernel-data-on-account.md). This guide covers Lightning Experience.

The canonical field list now lives on [Kernel Account object reference](/integrations/salesforce-integration/kernel-account-object-reference.md). It covers the current `Kernel_Account__c` object fields, including identity, headcount, revenue, NAICS, location, hierarchy, LinkedIn, and account-linking fields.
