# Internal data requirements

Kernel runs its analysis and recommendations <mark style="color:$warning;">based on how a rep would see the account</mark>, which requires broader access to the account and its associated data.

Kernel's [Salesforce](/integrations/salesforce-integration.md) integration comes with a recommended permission set providing view access to various objects and fields required for the best results.

{% tabs %}
{% tab title="Salesforce" %}

### Required account fields

<table><thead><tr><th width="212.1875">Field</th><th>Notes</th></tr></thead><tbody><tr><td>Id</td><td></td></tr><tr><td>Website</td><td></td></tr><tr><td>Name</td><td></td></tr><tr><td>LastActivityDate</td><td></td></tr><tr><td>CreatedDate</td><td></td></tr><tr><td>Type</td><td>If an alternative field is used to track the customer lifecycle, please specify this.</td></tr><tr><td>Billing/ShippingAddress</td><td></td></tr><tr><td>OwnerId</td><td></td></tr></tbody></table>

In addition, Kernel will ask for the following custom fields, where available:

* Legal name
* Trading/DBA name
* Billing email
* Account notes / SDR notes
* LinkedIn URL
* Account status
* Alternative website/domain

### Required opportunity fields

Opportunity data is used in (a) the algorithm for safeguarding active accounts, (b) the algorithm for determining the primary account among a group of duplicate accounts, and (c) establishing the account’s identity by looking at the associated opportunity names.

If it's not possible to allow read access to the fields outlined below, it can be sufficient to provide access to an account-level field that rolls up the number of open opportunities associated with the account.

<table><thead><tr><th width="185.40625">Field</th><th>Notes</th></tr></thead><tbody><tr><td>Id</td><td></td></tr><tr><td>Name</td><td></td></tr><tr><td>Stage</td><td></td></tr><tr><td>CreatedDate</td><td></td></tr><tr><td>CloseDate</td><td></td></tr></tbody></table>

### Required contact fields (Salesforce)

Kernel uses the contact data to establish the identity of an account. Emails are converted to domains (<marcus@kernel.ai> becomes [kernel.ai](http://kernel.ai)), and only the related domains of an object are stored by Kernel.

<table><thead><tr><th width="159.50390625">Field</th><th>Notes</th></tr></thead><tbody><tr><td>Id</td><td></td></tr><tr><td>Email</td><td></td></tr></tbody></table>

### Required task fields

Tasks are used (a) for establishing the primary in a group of a duplicates and (b) identifying the identity of the account.

<table><thead><tr><th width="163.7578125">Field</th><th>Notes</th></tr></thead><tbody><tr><td>Id</td><td></td></tr><tr><td>Name</td><td></td></tr><tr><td>Subject</td><td></td></tr><tr><td>Description</td><td></td></tr></tbody></table>
{% endtab %}

{% tab title="Hubspot" %}
Contact Kernel at `sales@kernel.ai` to learn more about the requirements for Hubspot.
{% endtab %}

{% tab title="Microsoft Dynamics" %}
Contact Kernel at `sales@kernel.ai` to learn more about the requirements for Microsoft Dynamics.
{% endtab %}
{% endtabs %}


---

# Agent Instructions: 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.kernel.ai/internal-data-requirements.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.
