# Introduction

## What Does It Do?

COW is designed to streamline the management of device warranties for CyberDrain [Supported Device Types](/troubleshooting/supported-device-types). Here's a breakdown of its core functionalities:

#### Warranty Tracking

* **Seamless Warranty Maintenance**: COW collects and updates the warranty statuses for your devices, ensuring you have the latest information at your fingertips.
* **Timely Notifications**: Receive alerts and notifications and a unified dashboard to keep you informed about devices in need of attention.

#### Integration with PSA Tools

* **Effortless Synchronization**: Integrate with popular PSA tools like [Autotask PSA](/using-cow/navigation/integrations/autotask-psa), [ConnectWise PSA](/using-cow/navigation/integrations/connectwise-psa), and [HaloPSA](/using-cow/navigation/integrations/halopsa) allowing for smooth data synchronization and management.
* **Enhanced Flexibility**: Choose the configuration of clients and types that best fits your business needs for optimized operations.

#### CSV Import / Export

* **Manual Data Import**: COW supports [CSV Import](/using-cow/navigation/devices/csv-import). This is ideal for a more customized approach, for a one-time data reconciliation, or those not using one of the supported .
* **Export Updated CSVs:** Download the updated list of data from your [Devices](/using-cow/navigation/devices) page once COW has gone and collected all the warranty details and imported them for you.

## What It Does Not Do

It's right there in the name. COW is *Only Warranties.* While it strives to provide a reliable efficient and affordable warranty management tool, there are some limitations to be aware of:

* **Custom Reporting**: The tool is not designed to create extensive vCIO reports.
* **Support for Non-Listed Vendors**: The tool currently supports only certain [Supported Device Types](/troubleshooting/supported-device-types).

***

## Pricing Tiers

COW offers flexible pricing to accommodate various needs. Small shop managing less than 250 devices? Good news: You can use COW completely free!

### Free Tier

* **Up to 250 Devices**: Manage up to 250 devices at no cost. This is perfect for smaller MSPs or those looking to conduct a proof of concept.
* **No Support:** The free version does not come with dedicated support, you are welcome to join the Discord to engage with other users.

### Pro Teir

* **$69 per Month**: For just $69 a month, enjoy the ability to manage  up to 50,000 devices.
* **Scalable Solution**: Ideal for growing MSPs looking for scalable device management.


# Getting Started

## First Time Setup

When you first set up your COW instance, you'll see a message prompting you to set up your instance. Clicking on the banner will take you to the [Integrations](/using-cow/navigation/integrations) page where you can select your preferred methods of importing devices. Once you've got that selected, here's a few other things you can check out:

## Overview

The [Overview](/using-cow/navigation/overview) page will provide you with a high level view of your instance including quick links to important information for your review.

## Devices

The [Devices](/using-cow/navigation/devices) page will actually display your imported devices and their warranty information. If you are not going to sync with one of our supported PSAs, see [CSV Import](/using-cow/navigation/devices/csv-import).

## Lookup

The [Lookup](/using-cow/navigation/lookup) page will allow you to do a one-off lookup of a device.

## Integrations

The [Integrations](/using-cow/navigation/integrations) page will always be available with options for which integrations you want to configure. Check back here often as we'll be expanding integration options over time.

## Settings

The [Settings](/using-cow/navigation/settings) page includes information about how to manage your COW instance.

## Logs

The [Logs](/using-cow/navigation/logs) page will show you information on COW's progress and past attempts at looking up warranty information and any syncing with configured integrations.


# Navigation

There are three main pages for you to know about and understand within COW, and you can learn about them each in this section.

{% content-ref url="/pages/15gNXbSRSKSktr012ZI5" %}
[Overview](/using-cow/navigation/overview)
{% endcontent-ref %}

{% content-ref url="/pages/Yj3U3IXSFUYVSU3AyZ8L" %}
[Devices](/using-cow/navigation/devices)
{% endcontent-ref %}

{% content-ref url="/pages/Zxmi3XJOlptmSErAjJ4o" %}
[Settings](/using-cow/navigation/settings)
{% endcontent-ref %}


# Menu Bar

The top menu bar has a few features that you may want to know.

## Display Mode

Clicking this toggle will switch the display mode for COW.

#### Available Display Modes&#xD;

* Light mode
* Dark mode

## Help & Support

Here you will find options on how you can get support for COW.

#### Discord

This is a link to the CyberDrain Discord server. We have channels dedicated to answering your questions about COW.

#### Docs

This links you to docs.cow\.tech.

#### Email Support

This will launch an email in your configured application to send an email to our support staff who can answer questions or resolve any issue that you may be having.


# Overview

## Page Components

The dashboard is the central hub of the COW, offering a snapshot of your device and client data.&#x20;

| Component             | Description                                                                                                                                                                                                                                                                                                                                              |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Welcome Card          | Provides a starting point for new users to begin importing devices using either their PSA or a manual CSV import. If this is your first time logging in, you'll want to start here by configuring your PSA connection or performing a CSV import. You can jump over to the [Integrations](/using-cow/navigation/integrations) page for more information. |
| Messages              | If you have any alerts to review you will see them here. Clicking `View all` will bring up the [Messages](/using-cow/navigation/overview/messages) page showing a table of all messages your organization has received with additional details.                                                                                                          |
| Summary Cards         | Display key statistics including total devices, total clients, and upcoming expiring warranties (30 days).                                                                                                                                                                                                                                               |
| Warranty Status Chart | A donut chart visualizing the current state of your warranties. Additional details on each category can be found under [#warranty-status-categories](#warranty-status-categories "mention").                                                                                                                                                             |

### Warranty Status Categories&#x20;

The chart breaks down warranties into four categories:

| Category       | Description                                  |
| -------------- | -------------------------------------------- |
| Current        | Devices with active warranties.              |
| Almost Expired | Warranties expiring within the next 30 days. |
| Expired        | Warranties that have already expired.        |
| **Unknown**    | Devices with unknown warranty status.        |


# Messages

This page will display the messages for your COW instance.

## Table Details

The messages that appear in this table are related to subscription events, failed login attempts, etc. For sync related information, please see [Logs](/using-cow/navigation/logs).

## Table Actions

<table><thead><tr><th>Action</th><th>Description</th><th data-type="checkbox">Bulk Action Available</th></tr></thead><tbody><tr><td>Mark as Read</td><td>Marks the selected message(s) as read and stops displaying them on the <a data-mention href="/using-cow/navigation/overview">Overview</a>page.</td><td>true</td></tr><tr><td>Remove Message</td><td>Removes the selected message(s) from the database.</td><td>true</td></tr></tbody></table>


# Devices

This overview helps users understand how to manage device info and warranties efficiently via the Devices page.

## Actions

| Action                  | Description                                                                                                                                                                                                                                               |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Import CSV              | This will allow you to import a CSV of devices if you need to utilize COW outside of one of the supported [Integrations](/using-cow/navigation/integrations). See [CSV Import](/using-cow/navigation/devices/csv-import) for more information.            |
| Sync Devices            | Syncs the device list from your PSA to fill the table with the latest info based on the filters that you set during configuration.                                                                                                                        |
| Device Lifecycle Report | Generates a PDF lifecycle report. This is fully brandable with your own custom logo and primary color scheme. Select the client, report currency, and average replacement cost to update the PDF. Once completed, click `Download PDF` to save your copy. |

{% hint style="warning" %}
Make sure you download any latest data prior to updating to ensure the most up to date details are being reflected in your sync.
{% endhint %}

## Dashboard

| Component       | Description                                                 |
| --------------- | ----------------------------------------------------------- |
| Total Devices   | Displays the total # of devices identified from the import. |
| Percentage OK   | Shows the % of devices with valid warranties.               |
| Active Devices  | Displays the # of devices with active warranties.           |
| Expired Devices | Displays the # of devices with expired warranties.          |

### Sync Status Bar

This bar will show you the status of your warranty sync. It shows the current stage of the sync process along with a percentage of completion.

## Clients and Devices Table

The table provides detailed information about each device, with functionality to search, filter, sort, and manage data effectively.

### Table Details

| Column               | Description                                                                                                             |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Client               | Displays the name of the client associated with each device.                                                            |
| Serial               | Shows the unique serial number of each device.                                                                          |
| Manufacturer         | Indicates the manufacturer of the device.                                                                               |
| Last Warranty Lookup | The date when the warranty was last checked.                                                                            |
| Expires in (days)    | Number of days remaining before the warranty expires. Will display as a negative number for already expired warranties. |
| Status               | Current status of the device’s warranty (e.g., No lookup performed).                                                    |
| Start Date           | The start date of the device’s warranty.                                                                                |
| End Date             | The expiration date of the warranty.                                                                                    |
| Warranty Type        | Describes the type of warranty (e.g., Unknown).                                                                         |

### Table Features

| Feature             | Description                                                                                                                           |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Search Bar          | Quickly find devices by entering keywords such as client name, serial number, or manufacturer.                                        |
| Show / Hide Filters | Show or hide filters to refine the device list based on various in-line criteria at once like client, serial number, and manufacturer |
| Show / Hide Columns | Customize your view by showing or hiding specific columns for a tailored display of information.                                      |
| Density Toggle      | Adjust the table density for compact or comfortable viewing                                                                           |
| Density Toggle      | Export the table data to a PDF file for offline viewing or sharing or a CSV file for further processing.                              |

### Table Actions

<table><thead><tr><th>Action</th><th>Description</th><th data-type="checkbox">Bulk Action Available</th></tr></thead><tbody><tr><td>Get Warranty</td><td>Fetches the latest warranty details for the selected device from the CyberDrain Warranty API.</td><td>true</td></tr><tr><td>Delete Device(s)</td><td>Removes the device from the list. Use this action with caution, as it cannot be undone.</td><td>true</td></tr></tbody></table>


# CSV Import

The easiest way to test out COW and start importing device details is through a manual CSV import. This method allows users who prefer or require manual entry to efficiently integrate their data.

### File Requirements

Before importing your data, ensure that your CSV file meets the following specifications:

* **Columns**: Your CSV file must contain the following columns:
  * `ClientName`: The name of the client associated with each device.
  * `DeviceSerial`: The unique serial number of each device.
  * `DeviceProductNumber`: The product number for each device if required.
  * `DeviceManufacturer`: The manufacturer of each device.

#### Example CSV

**Download Sample**: To help you format your file correctly, download an [example CSV file](data:text/csv;charset=utf-8,%EF%BB%BFClientName%2CDeviceSerial%2CDeviceProductNumber%2CDeviceManufacturer%0A) that includes the required columns. This template ensures that your data is properly structured for successful import.

{% hint style="warning" %}
Ensure your CSV file adheres to the specified format with no missing or extra columns. Keep your file size manageable to prevent slow uploads or potential errors during processing.
{% endhint %}


# Lookup

This page will allow you to do ad hoc lookups for a single device outside of your normal synced devices. Enter the serial number and click `Get Warranty`.

{% hint style="warning" %}
For serial numbers not already in the COW database, this may take a few minutes to return as the device gets added to the lookup queue. Please wait a few minutes and return to check `Get Warranty` again to see the results.
{% endhint %}


# Integrations

This page will display the available integrations.


# Autotask PSA

Instructions on connecting and configuring Autotask.

## Introduction

Integrating Autotask with COW allows you to seamlessly synchronize your device and warranty data, ensuring that your information is up-to-date and accurately managed. This guide will walk you through the steps required to set up and configure your Autotask integration.

## Prerequisites

Before you begin the integration process, ensure you have the following information ready:

* **Autotask API Username**: Enter your Autotask API username.
* **Autotask API Password**: Enter your API password securely.

### Setup

{% @storylane/embed subdomain="app" linkValue="vjyicbi0m66d" url="<https://app.storylane.io/share/vjyicbi0m66d>" %}


# Autotask Permissions

To enable secure warranty sync while following least privilege principles, you’ll need to create a dedicated API account and role.

### API  Security Levels setup

1. Go to Admin > Account Settings & users > Security Levels
2. Make a copy of API User (system) (API-only)
3. Click on "No Permission" for all items to prevent setting incorrect permissions
4. Click on the "CRM" header
5. Add "Customer & Cancelation" with "All" permission
6. Add "Configuration Items & Subscriptions" with "View All" and "Edit All" permissions
7. Click on the "Inventory" header
8. Add "Products" with "View All" permissions
9. Click on the "Admin" header
10. Check the box for "Configuration Items"
11. Save this permission with your own name, such as "COW Warranty Permissions"

**API account Setup Steps**

1. Go to **Admin >** Resources/Users **> API Members**
2. Create a new API user. Select the Security level we've just created.
3. Setup the API account according to your own procedures, giving it an email, internal location, and generate the credentials
4. Select the "CyberDrain B.V." API Tracking integration vendor.
5. Save the account and enter your credentials in cow\.tech.


# ConnectWise PSA

Instructions on connecting and configuring ConnectWise PSA.

## Introduction

Integrating ConnectWise PSA with COW allows you to seamlessly synchronize your device and warranty data, ensuring that your information is up-to-date and accurately managed. This guide will walk you through the steps required to set up and configure your ConnectWise PSA integration.

### Prerequisites

Before you begin the integration process, ensure you have the following information ready:

* **CW Instance URL**: Enter the URL of your ConnectWise instance.
* **Company ID**: Provide your company identification for ConnectWise.
* **API Username**: Enter your API username for access.
* **API Password**: Enter your API password securely.

{% hint style="warning" %}
Be sure to follow the guidance in [Connectwise Permissions](/using-cow/navigation/integrations/connectwise-psa/connectwise-permissions) to properly configure your API member to work with COW.
{% endhint %}

### Setup

{% @storylane/embed subdomain="app" linkValue="o0opja2qvrze" url="<https://app.storylane.io/share/o0opja2qvrze>" %}


# Connectwise Permissions

To enable secure warranty sync while following least privilege principles, you’ll need to create a dedicated API member and role.

### Custom Role Creation

{% stepper %}
{% step %}

### Open System > Security Roles

{% endstep %}

{% step %}

### Create a new Role

Best practice is to create a custom role for each integration to be sure to scope the integration to the least priviledged access. Be sure to name the role something easily identifiable, e.g. `CyberDrain Only Warranties`
{% endstep %}

{% step %}

### Set Required Permissions

The following permissions are needed for COW to function properly. All other settings can remain set as `None`:

| Module    | Function            | Add | Edit | Delete | Inquire |
| --------- | ------------------- | --- | ---- | ------ | ------- |
| Companies | Company Maintenance |     |      |        | All     |
|           | Configurations      |     | All  |        | All     |
| System    | Table Setup         |     |      |        | All     |

For the Table Setup function, click the customize link next to the function and select the following and add them to the "Allow Access to these" section:

* Company / Company Status
* Company / Company Type
* Company / Configuration
* Company / Configuration Status
  {% endstep %}
  {% endstepper %}

### **API Member Creation**

{% stepper %}
{% step %}
Go to System > Members > API Members

{% endstep %}

{% step %}
Create new API member

{% endstep %}

{% step %}
Assign the custom role created above

{% endstep %}

{% step %}
Under **API Keys**, generate the **Public/Private Key Pair**

{% endstep %}

{% step %}
Save the **Company, Site, URL**, and **Keys** in your warranty sync setup

{% endstep %}
{% endstepper %}


# HaloPSA

Instructions on connecting and configuring Halo.

## Introduction

Integrating HaloPSA with COW allows you to seamlessly synchronize your device and warranty data, ensuring that your information is up-to-date and accurately managed. This guide will walk you through the steps required to set up and configure your HaloPSA integration.

### Prerequisites

Before you begin the integration process, ensure you have the following information ready:

* **HaloPSA URL**: Enter the URL of your HaloPSA instance.
* **HaloPSA Tenant**: Provide the tenant information for your HaloPSA account.
* **HaloPSA Client ID**: Enter the client ID for authentication.
* **HaloPSA Secret**: Enter your API secret securely.

### Setup

{% @storylane/embed subdomain="app" linkValue="xmyh2w67fya7" url="<https://app.storylane.io/share/xmyh2w67fya7>" %}


# Halo PSA Permissions

**General Authentication Permission**

* The user must have valid API credentials and be enabled for token-based auth.

**Read Access to Assets**

* This checks that the account can retrieve at least one asset/device.

**Read Access to Asset Types**

* These are typically under **Asset Type Management** or **Configuration** settings.

**Read Access to Clients**

* Used to associate devices with clients during sync.

***

To support the above operations securely with least privilege access, you require view permissions for Assets, Asset Types, Clients as well as Edit permission for Asset Types in order to write back.

**Role Creation Steps:**

* Create a new Role: `COW Warranty Sync`
* Set **default** access to **none/deny**, then grant only what's needed:

**Permissions to Grant:**

| Area                             | Permission  | Why                                                       |
| -------------------------------- | ----------- | --------------------------------------------------------- |
| **Assets / Configuration Items** | View All    | To retrieve device data                                   |
| **Asset Types**                  | View All    | To interpret classification & sync metadata               |
| **Clients / Companies**          | View All    | To associate devices with companies                       |
| For Writebacks                   | Edit Assets | To allow sync to update device records with warranty info |


# Azure Table

Connect CoW to an **Azure Table Storage** table containing your devices — the self-serve option for technical MSPs who want to push and pull data programmatically. You run the table in your own Azure tenant and populate it however you like (script, Rewst, Power Automate, PSA export). CoW reads your devices, looks up warranties, and — optionally — writes the results back into the same rows.

## Prerequisites

Your table must contain these columns (all required — the Test step fails if any are missing):

* `ClientName`: the end client each device belongs to.
* `DeviceSerial`: the device serial number (CoW's lookup key).
* `DeviceManufacturer`: the manufacturer. If blank or `Unknown`, CoW attempts to detect it from the serial.
* `DeviceName`: a friendly device name.
* `CompanyId`: your identifier for the client.
* `DeviceId`: your identifier for the device.

{% hint style="info" %}
**Optional**: `StartDate` / `EndDate` if you already hold warranty dates (CoW reads them, and overwrites on write-back). Each row's Azure `PartitionKey`/`RowKey` are used to target write-back — keep them stable.
{% endhint %}

## Import Steps

{% stepper %}
{% step %}

### Create a SAS link

Follow Microsoft's documentation to create a [shared access signature (SAS) token](https://learn.microsoft.com/en-us/azure/ai-services/translator/document-translation/how-to-guides/create-sas-tokens?tabs=Containers). Read-only sync needs **Read** (query) permission; add **Add** and **Update** as well if you plan to enable write-back. When you copy it from Azure, paste the **SAS token string** — the part after the `?` — not the full SAS URL.
{% endstep %}

{% step %}

### Enter SAS Details

Enter the Storage Account Name, Table Name, and SAS token.
{% endstep %}

{% step %}

### Test the Connection

Click Test to confirm the token authenticates, the table is readable, and all required columns are present (your table needs at least one row for the column check).
{% endstep %}

{% step %}

### Enable the Integration

Toggle on "Enable Integration". Optionally toggle "Write Back to Table" to save warranty results (`StartDate`, `EndDate`, `Warranty`, `Status`, `WarrantyJSON`) back onto your existing rows.
{% endstep %}

{% step %}

### Submit

Click Submit to save the enablement of the integration. CoW queues the first sync immediately, then re-syncs each integration roughly once a day.
{% endstep %}
{% endstepper %}

## What COW writes back

With **Write Back to Table** on, for each device where a warranty is found CoW updates that device's **existing row** (matched on its original `PartitionKey`/`RowKey`) with `StartDate`, `EndDate` (both `YYYY-MM-DD`), `Warranty` (description), `Status`, and `WarrantyJSON` (a compact JSON of all of it plus the lookup time). Unresolved devices are left untouched and retried next sync.

## Troubleshooting

* **Test fails "missing required columns"** — add the exact column names above (case-sensitive).
* **Test fails "table is empty"** — the column check needs at least one row.
* **Test fails to authenticate** — make sure you pasted the SAS **token string** (the part after the `?`), not the full SAS URL.
* **Some devices never appear** — filtered for empty/placeholder `DeviceSerial`, blank `ClientName`, undetectable manufacturer, or your plan's device cap (upgrade to raise it).
* **Warranties aren't writing back** — confirm write-back is on, the SAS has Add/Update, and rows still have the `PartitionKey`/`RowKey` CoW first read them under.

{% hint style="warning" %}
Set the SAS token's expiry well into the future — syncs stop the moment it expires, and you'll need to generate a new one.
{% endhint %}


# Settings

This page allows you to configure and modify the setup initially completed through the onboarding wizard, offering you the flexibility to adjust the integrations and preferences as needed.

### General

This tab will include information on your subscription, including who the owner of your instance is.

### Subscription

This tab will allow you to manage your COW subscription.

### Email Notifications

This tab will configure email notification preferences including sync completion, sync failures, and warranty updates.

{% hint style="warning" %}
You can configure email notification settings, but emails are not currently being sent out. This functionality is still under development.
{% endhint %}

### User Management

This tab will manage allowed users and access control settings.

### Advanced

This tab will contain advanced configuration options, debugging settings, and experimental features. Currently you are able to change the organization owner, clear sync status, and purge the organization data from COW.


# Logs

This page contains the logs for COW.

### Log Filters

Here you can optionally select the filters you want to use to narrow down the data displayed in the chart below.&#x20;

{% hint style="warning" %}
By default, logs show the last 7 days based on UTC time.
{% endhint %}

### Table Info

| Column    | Description                                                            |
| --------- | ---------------------------------------------------------------------- |
| Timestamp | The relative time since the event                                      |
| Message   | The details of the log entry                                           |
| Severity  | Will display `Error`or `Info` to display the type of log entry         |
| User      | The user who initiated the action that led to the entry, if applicable |


# Supported Device Types

COW supports automatic warranty management on a best effort for the following device manufacturers:

* Lenovo
* Toshiba
* Microsoft
* Apple (pre-2022 models)
* Dell
* HP


# FAQ

#### What PSA platforms are supported?

COW currently supports the following platforms for device synchronization:

* **HaloPSA**
* **ConnectWise Manage**
* **Autotask**

You can also import devices via **CSV upload** if your PSA is not supported.

#### How is access controlled?

* Access is scoped by **email domain**.
* The **first person** from a domain to sign up becomes the **org owner**.
* Additional users can be added automatically (via domain match) or manually invited.
* Only approved users can access organization data.

#### What device data is synced?

COW pulls device information from your PSA or CSV source.\
The level of detail varies by manufacturer, but typically includes:

* Serial number
* Purchase or manufacture date
* Model information
* Warranty status
* Service entitlements (if available)

If manufacturer data is incomplete, the device is still tracked but marked with limited metadata.

#### Can I import devices in bulk?

Yes. Both PSA-connected and CSV-loaded environments support:

* Bulk imports
* Duplicate detection and de-duplication
* Device removal (if needed)

Note: Devices already synced will not be re-imported unless modified.

#### What happens during syncing?

* Only **one sync** runs at a time.
* If a new sync is triggered while one is already running, it will be **queued** and executed afterward.
* This avoids unnecessary load and helps preserve data integrity.

#### How often are devices checked?

* Devices are automatically re-checked every **30 days** if no changes are made.
* Manual re-syncs can be triggered at any time.

#### Are lookups rate-limited?

Yes. Lookups are subject to throttling to prevent overuse of vendor APIs and ensure reliable responses.\
This helps ensure fairness and availability across all users.

#### What manufacturers are supported?

Warranty data is currently available for:

* **Dell**
* **HP**
* **Lenovo**
* **Microsoft Surface**
* **Toshiba**
* **Apple** (devices manufactured before 2022)

Additional manufacturers may be added over time.

#### What can I do with the synced data?

Inside the app, you can:

* View all devices and their warranty status
* Export device data (CSV)
* Filter by key attributes (manufacturer, expiry, client, etc.)
* View sync status cards showing:
  * Total devices found
  * Devices pending sync
  * Sync failures or incomplete records
  * Devices with updated warranty data

#### Is there a device limit?

Yes.

* **Free Tier**: up to **250 concurrently tracked devices**
* **Pro Tier**: up to **50,000 devices** for **$69/month**
* A **lifetime grace buffer** of up to 400 devices is available for short-term overages.
* If you require more than 50,000 devices, **enterprise options are available**.

#### What’s included in the pricing?

* **Free**: 0–250 tracked devices
* **Pro**: $69/month for up to 50,000 tracked devices
* **Enterprise / White-label / Vendor**: Contact us for custom pricing

All subscriptions are **month-to-month**, and you may cancel at any time.


