ConnectWise Importer

We have built a tool that uses the ConnectWise API to pull in your data.

What it imports:

  • Customers: (Companies) Business Name, Email, Phone
  • Sub Contacts: Name, Address
  • Tickets: Summary, Number, Date
  • Ticket Notes: Text, Creator, Date

Note: If your import stops unexpectedly, it is safe to restart the Import without risking duplicate records.

Steps to import

  1. Register for a CW Developer account if you do not have one.
  2. ConnectWise now requires a Client ID to use their API. You can register for a Client ID here (in the upper right, click Register).
    Like the API keys, we do not store the Client ID after the import is complete.
  3. Set up your API keys in the ConnectWise app (see this illustrated guide for screenshots, or CW's documentation below).
    1. In the upper right, click PSA > My Account.
    2. Click the gear icon tab.
    3. Click the API Keys item in the left-hand list, then click the right arrow button to move it to the right-hand list.
    4. Click Save & Close.
    5. Click the newly added API Keys tab.
    6. Fill in a Description.
    7. Below the Defaults tab, click the disc icon to save.
    8. Copy the Public and Private keys generated and save them somewhere.
  4. In Syncro, head to Admin > App Center
  5. Find and click the ConnectWise Importer app card.
  6. Fill in the fields as follows.
    1. ConnectWise CompanyName - must match what is in CW exactly
    2. Public API Key - what you generated above
    3. Private API Key - what you generated above
    4. ConnectWise API Host
      • Cloud hosted:
        • North American Cloud: api-na.myconnectwise.net
        • European Cloud: api-eu.myconnectwise.net
        • South African Cloud: api-za.myconnectwise.net
        • Australian Cloud: api-au.myconnectwise.net
      • Self-hosted/on-premise: Your on-premise public URL
    5. Client ID - what you generated above
  7. Click Import Now.

Here is a link to a PowerShell module to test the API and get back useful information: https://github.com/christaylorcodes/ConnectWiseManageAPI/blob/master/Examples/TicketExample.ps1

Here is some sample code for testing in PowerShell. Replace the values as appropriate.

$CWMConnectionInfo = @{
  # This is the URL to your manage server.
  Server = 'server.example.com'
  # This is the company entered at login
  Company = 'My Company ID'
  # Public key created for this integration
  pubkey = '1234'
  # Private key created for this integration
  privatekey = 'abcd'
  # Your ClientID found at https://developer.connectwise.com/ClientID
  clientid = 'Go generate your own ClientID'
}
# ^This information is sensitive, take precautions to secure it.^
# Install/Update/Load the module
if(Get-InstalledModule 'ConnectWiseManageAPI' -ErrorAction SilentlyContinue){ Update-Module 'ConnectWiseManageAPI' -Verbose }
else{ Install-Module 'ConnectWiseManageAPI' -Verbose }
Import-Module 'ConnectWiseManageAPI'
# Connect to your Manage server
Connect-CWM @CWMConnectionInfo -Force -Verbose

 

Setting up API Keys (from CW Documentation)

Using the same setup screen as creating a Member an API Member allows granular control over what type of information an integration has access to. A global user allows integrations to be turned on and off easily without requiring the person who initially setup the integration.

The Members screen can be found by going to the System Module and opening the Members page. After accessing the Members page, click the API Members tab. Here you can create a new user and generate API Keys for them.

API Members do not require a user license.

Hi Randy,
Will this look at existing company records in CW to prevent importing duplicates or will it just bring everything over? We already manually entered our companies and I’m just looking to bring tickets over.

Thanks!

Hi Sarah,

If the email and/or business phone numbers match, it will not create duplicates. But if it can’t find a match with either, it will add the company which could result in duplicates.

Hi Randy,

I have used the imported and my Customers and contacts imported but the Ticket and Ticket notes are not importing. It gets to Step 3 of 3:Importing tickets and it just stops. Could the ClientID or API keys be preventing the ticket import? I do not see an error messgae.

Thank you,

Lisa F

I worked extensively with dev to get this tuned to get our stuff imported. We didn’t need to import all Automates tickets, so they added a board filter. The tickets took a while, how long have you let it run? If they still have the board filter on it, can you try narrowing down by board to see if you can get those to import?

We tried on August 19th, 22nd, 23rd,and 26th. I left it alone and tried on Sept 6th with differnt API keys. I tried to see if there was an error message but there isnt they all still say Step3 or 3 0%.

I thought maybe because the sites didnt port over properly that could be the issue so I spent Friday and today adding them in one by one and I tried importing today two different boards my main board and a small board with just one ticket today and they are both sitting there at 0%. I submitted for a new clientID just in case but the companies and contacts imported so Im not sure why its stopping at step3.

Sounds like a support ticket and hopefully you won’t have to go through CW support. ClientID and API key should have been fine as long as you followed the guide.

I have support tickets opened for both already.