# Package Installation Guide

## Kernel Salesforce Integration - Installation & Setup Guide

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

The Kernel team will create an environment and logins for you. You can access this via [app.kernel.ai](https://app.kernel.ai).

### Step 1: Your Instance

You will need to select your CRM and then input your instance URL. This can be a production or sandbox environment. Then press continue.

<figure><img src="/files/9Ck74yg3MStxMNRcKK0l" alt=""><figcaption></figcaption></figure>

This will give provide you with the install link for the Kernel package in your CRM. Click to open the install.

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

### Step 2: Package configuration

### 📋 Prerequisites

* **Salesforce System Administrator** access in your target org
* **Package Version**: Latest v2.0 release

{% embed url="<https://www.loom.com/share/9e212693e9174468b7d7f26707a1878c?sid=cb71e5bc-1aa6-4508-b634-d83ff2113feb>" %}

**Select installation options:**

* Install for: **Admins Only**

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

* You will be prompted to grant the Kernel API access to the user & permission set you create. (This allows us to sync your CRM to Kernel and we only have access based on Permission Sets)

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

* Click **Install**

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

* Wait for "Install Complete" confirmation

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

**Verify installation:**

* Navigate to **Setup → Installed Packages**

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

* Confirm "Kernel SF Connected App" appears with status "Installed"

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

**Open App Launcher** (9-dot grid icon)

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

1. **Select "Kernel Integration"** app
2. **Click the "Kernel Setup"** tab

### 👤 Step 2: Create Integration User

The integration user is a dedicated System Administrator account that Kernel uses to access your Salesforce data securely.

#### Creating the User:

1. **In the Kernel Setup tab**, locate the **Integration User** panel
2. **Review default settings:**
   * Email: `integrations@kernel.ai`
   * First Name: `Kernel`
   * Last Name: `Integration`
   * Username Prefix: `kernel-integration`
3. **Click "Create Integration User"**

   * The system creates a unique username: `kernel-integration@{OrgId}.kernel.ai`
   * A password reset email is sent to the specified email address
   * The user is created with System Administrator profile (this is for authorising the app/user and can be change upon successful connection to minimum access)

   <figure><img src="/files/kdxrTLJmwlpKTfh1DNkv" alt=""><figcaption></figcaption></figure>
4. **Verify user creation:**

   * You'll see a success message with the user details

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

#### Permission Set Assignment:

| Object            | Read                     | View-All                 | Edit              |
| ----------------- | ------------------------ | ------------------------ | ----------------- |
| Account           | ✓ (All or select fields) | ✓ (All or select fields) | ✓ (Kernel fields) |
| Lead\*            | ✓ (All or select fields) | ✓ (All or select fields) | ✓ (Kernel fields) |
| Contact           | ✓ (All or select fields) | ✓ (All or select fields) | <p><br></p>       |
| Opportunity       | ✓ (All or select fields) | ✓ (All or select fields) | <p><br></p>       |
| **Task/Activity** | ✓ (All or select fields) | ✓ (All or select fields) | <p><br></p>       |
| SystemUser        | ✓ (Limited fields)       |                          |                   |

The system automatically assigns the `Kernel_SF_Connected_App_PermissionSet` to the integration user, which provides:

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

* API access
* Read access to standard and custom objects
* Access to Kernel-specific settings

You can also choose to assign a your own custom permission set

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

### 🔗 Step 3: Authorize Kernel Connection

Before authorizing the connection, you need your Kernel API credentials. These will now be shown in the Kernel App via the original page:

* **Tenant ID**: Your unique organization identifier (e.g., `tenant_abc123xyz`)
* **API Key**: Your secure API key for authentication

1. **In the Kernel Setup tab**, locate the **Authorize Access** panel
2. **Enter your Kernel credentials:**

   <figure><img src="/files/LJIpmEkuoMjzuUFjQU50" alt=""><figcaption></figcaption></figure>
3. **Click "Sync with Kernel"**

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

Finally, back in the Kernel app you will need to login to the Salesforce instance to authorise the connection. On completion you will see our default fields to be mapped to your CRM. This means the installation is complete.

You can now proceed to set up the Kernel [Custom Object](/integrations/salesforce-integration/custom-object.md).

### 🔧 Configuration Options

#### Custom Permission Sets

By default, Kernel uses its standard permission set. For custom requirements:

1. **In the Permission Sets panel:**
   * Select **"Choose Custom Permission Sets"**
   * Select your organization's permission sets
   * Click **"Save"**
2. **The selected permission sets will be assigned** to the integration user

For full compatibility we recommend using the default Kernel permission set.

### 🔒 Security & Compliance

#### OAuth Scopes

The Kernel Connected App requests these OAuth scopes:

* `api` - Access and manage your data
* `refresh_token` - Perform requests while you're offline
* `openid` - Access unique user identifier
* `profile` - Access basic profile information
* `email` - Access email address

#### Data Access

* Access is logged and auditable
* All API calls are tracked in Setup Audit Trail
* Data transmission is encrypted via TLS 1.2+

### 🚨 Troubleshooting

#### Common Issues and Solutions

| Issue                                | Solution                                                                         |
| ------------------------------------ | -------------------------------------------------------------------------------- |
| **App not visible in App Launcher**  | Assign the Kernel Integration app to your user profile via Setup → App Manager   |
| **"Authorize" button disabled**      | Ensure Tenant ID and API Key are entered correctly                               |
| **Permission Set assignment failed** | Check if integration user is active; manually assign via Setup → Permission Sets |

### 🔄 Managing the Integration

#### Revoking Access

To temporarily or permanently disconnect:

1. **Revoke OAuth Token:**
   * Setup → Connected Apps OAuth Usage
   * Find "Kernel SF Connected App"
   * Click **"Revoke"**
2. **Deactivate Integration User:**
   * Setup → Users
   * Find the kernel-integration user
   * Uncheck **"Active"**
   * Click **Save**

#### Re-establishing Connection

1. **Reactivate the integration user** (if deactivated)
2. **Return to Kernel Setup tab**
3. **Click "Authorize Kernel"** again
4. **Complete OAuth flow**

#### Updating Credentials

If your Kernel API credentials change:

1. **Obtain new credentials** from Kernel
2. **In Salesforce Kernel Setup:**
   * Click **"Disconnect"** (if connected)
   * Enter new Tenant ID and API Key
   * Click **"Authorize Kernel"**
   * Complete OAuth flow

### 📞 Support

#### Getting Help

* **Email**: <support@kernel.ai>
* **Include in your support request:**
  * Organization ID
  * Environment type (Sandbox/Production)
  * Integration user username
  * Error messages or screenshots
  * Sync job IDs (from Kernel Portal)

### 📦 Package Components Reference

#### What Gets Installed

| Component            | Purpose                                  |
| -------------------- | ---------------------------------------- |
| **Connected App**    | OAuth 2.0 authentication with Kernel     |
| **Lightning App**    | Kernel Integration application container |
| **Custom Tab**       | Kernel Setup configuration interface     |
| **Apex Classes**     | Integration logic and API handlers       |
| **LWC Components**   | User interface for setup and management  |
| **Permission Set**   | Default access configuration             |
| **Custom Settings**  | Store integration configuration          |
| **Static Resources** | Application icons and assets             |

#### Version History

* **v2.0.1** - Current release
  * System Administrator profile by default
  * Simplified user creation flow
  * Enhanced permission management
  * Improved error handling

***

*Last Updated: Version 2.0.1* *For the latest updates, visit docs.kernel.ai*


---

# 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/integrations/salesforce-integration/package-installation-guide.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.
