> For the complete documentation index, see [llms.txt](https://prohelp.assetpanda.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prohelp.assetpanda.com/integrations-store/record-management/connectwise-integration.md).

# ConnectWise Integration

You can integrate Asset Panda Pro and ConnectWise Cloud to pull device information from ConnectWise into Asset Panda. This integration ensures you have up-to-date information in Asset Panda Pro to manage your assets more efficiently.&#x20;

{% hint style="info" %}
ConnectWise is a third-party application, and Asset Panda does not control updates made by ConnectWise. For more information on how to use it, see[ ConnectWise resources.](https://www.connectwise.com/resources)&#x20;
{% endhint %}

You must perform the following steps to integrate ConnectWise with Asset Panda Pro:

* **Generate ConnectWise API credentials:** Create and configure the ConnectWise account and API credentials.
* **Configure Asset Panda Integration:** Configure and map the ConnectWise data fields in Asset Panda Pro.
* **Ensure Data Accuracy:** Ensure that the data fetched from ConnectWise is accurately mapped and stored in Asset Panda. &#x20;

***

## Prerequisites <a href="#prereqs" id="prereqs"></a>

* Active ConnectWise and Asset Panda Pro accounts
* Administrative permissions in ConnectWise and Asset Panda

***

## ConnectWise tasks <a href="#cw-tasks" id="cw-tasks"></a>

### Create a role

1. Log into **ConnectWise Manage** with an administrator account.
2. Navigate to **System > Security Roles**.
3. Click **+** to create a new role.
4. Enter a **Role ID** (for example, `AssetPandaIntegration`).
5. Assign the following permissions:
   * **Companies -** *Company Maintenance*: Set **Inquire Level** to **All**.
   * **Finance -** *Agreements*: Set **Add**, **Edit**, and **Inquire Levels** to **All**.
   * **Procurement -** *Product Catalog*: Set **Inquire Level** to **All**.
   * **Service Desk -** *Service Tickets*: Set **Add** and **Inquire Levels** to **All**.
6. Click **Save**.

***

### Create an API member

1. In ConnectWise, navigate to **System > Members**.
2. Select the **API Members** tab.
3. Click **+** to create a new API member.
4. Provide the following details:
   * **Member ID**: Enter a unique identifier (for example, AssetPandaAPI).
   * **Member Name**: Enter a name (for example, Asset Panda Integration).
   * **Role ID**: Select the security role created earlier.
   * **Level**: Set to **Corporate**.
   * **Email**: Provide a valid email address.
5. Click **Save**.

***

### Generate API credentials

{% hint style="info" %}
To ensure full access and proper functionality, the Public & Private Keys must be generated using a user with an ADMIN role in ConnectWise.&#x20;
{% endhint %}

1. Open the newly created API member.
2. Go to the **API Keys** tab.
3. Click **+** to create a new API key.
4. Enter a **Description** (for example, Asset Panda API Key).
5. Click **Save**. The system generates a **Public Key** and **Private Key**.
6. Copy and store the keys for future use.

{% hint style="warning" %}
&#x20;The Private Key cannot be retrieved later, so save the keys securely to ensure it is accessible later.
{% endhint %}

***

## Asset Panda tasks

### Set up the ConnectWise integration

1. Log into Asset Panda Pro with an administrator account
2. Navigate to <img src="/files/dLHka5YWbUR3zisHLua6" alt="Settings icon" data-size="line"> **Settings** > **Account Management**.
3. Expand the appropriate account and module.
4. Click **Manage** in the **Integrations** card.
5. Select **Integrations Store**.
6. In the **ConnectWise** tile, click **Add**. The **Integrations in this module** tab is displayed.
7. In the **ConnectWise** tile, click **Configure**.
8. Enter the following details:
   * **URL**: Web address of the system to which you are connecting. This identifies the location of the service.
   * **Company Name**: Organization’s unique identifier within the connected system, which helps link your account.
   * **Public Key**: Unique identifier used for authentication. This key is part of a secure login process.
   * **Private Key**: Confidential code that, when used with the Public Key, verifies access permissions.
   * **Is Self Hosted**: Specifies whether the system runs on a private server instead of a cloud-based service.
9. Click **Test and Save Connection** to verify the authentication.&#x20;
10. Click **Add mapping.**
11. In the **Mapping** section, map the Asset Panda field from ConnectWise to the relevant column in your Asset Panda Pro collection. See [Configure data mapping and filtering](#configure-data-mapping-and-filtering).
12. Click **Save**.

***

### Configure data mapping and filtering

During integration, ConnectWise fields must be mapped to corresponding Asset Panda fields to ensure accurate data synchronization. Proper mapping prevents duplication and ensures that records are updated correctly.

#### Unique Identifiers

A unique identifier is a field that remains constant and is distinct for each record, ensuring accurate data syncing and preventing duplicates between ConnectWise and Asset Panda. For example:&#x20;

* Use **Company ID** for company records.
* Use **Product SKU** for products.
* Use **Ticket Number** for service tickets.
* Use **Agreement ID** for agreements.

{% hint style="warning" %}
Do not use fields like **Company Name**, **Phone**, or **Status** as unique identifiers, because they can change over time, leading to sync errors.
{% endhint %}

You can set up [an automation](/settings/account-management/automations.md) to ensure data stays up to date by syncing records at scheduled intervals.

#### ConnectWise fields

<table><thead><tr><th width="205.34765625">Field Name</th><th>Description</th><th>Mapping &#x26; Filtering Guidance</th></tr></thead><tbody><tr><td><strong>Address 1</strong></td><td>Primary address of the company</td><td>Map to address fields; filter by region if needed.</td></tr><tr><td><strong>Address 2</strong></td><td>Additional address details</td><td>Optional for extended address information</td></tr><tr><td><strong>City</strong></td><td>Company’s city location</td><td>Map to city fields; filter by city if required.</td></tr><tr><td><strong>Company</strong></td><td>Official company name</td><td>Map to company name in Asset Panda; avoid using as a unique identifier.</td></tr><tr><td><strong>Company ID</strong><br><em>unique identifier</em></td><td>System-generated unique company identifier</td><td>Best choice for a unique identifier</td></tr><tr><td><strong>Company Identifier</strong><br><em>unique identifier</em></td><td>Alternate internal company ID</td><td>Can be used as a unique identifier, if structured properly</td></tr><tr><td><strong>Country</strong></td><td>Country of operation</td><td>Map to country fields; filter by specific countries.</td></tr><tr><td><strong>Number of Employees</strong></td><td>Total employee count</td><td>Use for reporting; filter by size if needed.</td></tr><tr><td><strong>Phone</strong></td><td>Primary contact number</td><td>Map to phone fields; not suitable for filtering.</td></tr><tr><td><strong>State</strong></td><td>State or province location</td><td>Useful for filtering by region</td></tr><tr><td><strong>Status</strong></td><td>Active, inactive, or other status.</td><td>Filter to include only active records</td></tr><tr><td><strong>Type</strong></td><td>Classification (for example, Client or Vendor)</td><td>Filter by type to sync relevant data</td></tr><tr><td><strong>Website</strong></td><td>Company’s official website</td><td>Map to website fields</td></tr><tr><td><strong>Zip</strong></td><td>Postal or ZIP code</td><td>Map to ZIP code fields; filter by location if needed.</td></tr></tbody></table>


---

# 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, and the optional `goal` query parameter:

```
GET https://prohelp.assetpanda.com/integrations-store/record-management/connectwise-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
