ID747 eAutomate & ConnectWise Manage Sync Overview

Sync between ConnectWise and eAutomate


Of all of the Professional Services Automation (PSA) software options available, ConnectWise Manage is the most popular among our client base for ticketing and contract management. However, because of previous integration limitations, clients were billing IT contracts in eAutomate and not in CW Manage. 

The ability to charge a customer as soon as they add a software license, as well as to cancel your vendor purchase as soon as that customer cancels, has a huge impact on low-margin deals. The RMM tools available to update agreements in ConnectWise automatically are one of the main reasons we recommend having ConnectWise be the master for your IT agreements. Agreement invoices from ConnectWise are synced into eAutomate so that your financials reflect all managed IT revenue. Service tickets are synced from ConnectWise to eAutomate so you have proper contract profitability numbers. Additionally, we can sync over sales orders from ConnectWise to eAutomate.

Below is a 20-minute overview video of the integration, use the chapters to jump to the section for each part of the sync:


The video below is the what we learned webinar, going over why you need ConnectWise Manage.



We see clients doing a lot of double entry to keep ConnectWise in sync with eAutomate; this integration works to automate these entries and reduce the amount of manual work needed to keep the two systems in sync. This integration is included in your monthly subscription to CEO Juice. The integration works through the ConnectWise API, so it will work for both on-premise and hosted accounts for both ConnectWise and eAutomate.
ConnectWise Manage and the RMM tools do an excellent job of tracking software, etc included on the contract, so we recommend that the CW Agreement be the master for contract billing. CW Manage also does a great job of quoting non-contract hardware and again CW Manage needs to be the master. eAutomate is the master for companies & credit holds as well as inventory. Service tickets should be entered in ConnectWise to track against your agreements; we can then sync closed tickets over to eAutomate.
Note: CW Manage is not an accounting software so things do not have to balance, for example, a line item can have a quantity, price & extended price (qty X price = ext price) and CW will allow you to change the ext price without adjusting the others, eAutomate will not and we have workarounds to allow for this.
We are breaking the sync into 5 modules: 
Companies (Subscribe to ID747)
Contracts (Subscribe to ID964)
Service Tickets (Subscribe to ID965)
Sales Orders (Subscribe to ID966)
Moving Tickets (Subscribe to ID912)
You need the customer sync at a minimum, then add any other pieces that you want.
Overview of the sync pieces, blue is for ConnectWise and red is for eAutomate:


For more details on ID747 - Customer Sync.
For more details on ID964 - Agreement Sync.



For more details on ID965 - Service Sync.



For more details on ID966 - Sales Orders.



For more details on ID912 - Moving Calls.


  • Must be on Connectwise 2015.3 or later, REST API was introduced in 2015.3. On-Premise or Hosted will both work.
  • Must be on eAutomate 8.7 or later, Serviceable items added then. Will work with either ECI Hosted or On-Premise.
  • Not required, but we do suggest you enable the "HelpDesk Button" in eAutomate.
  • .NET Framework on the server must be version 4.6.1 or higher.
  • Must be subscribed to ID747 
  • Serviceable items must be enabled in eAutomate (see here for where to turn that on)



 *  *  *

Set Up

Set Up

Jump to: Create CW API Keys | Create Custom Fields in CW | Enabling serviceable as an item in EA

Steps to set up and test:

  1. Give CEO Juice access to your CW Manage API, details here.
  2. Get us access to a test eAuto DB that won't be refreshed and a copy of our Juice DB.
  3. If new to CW Manage,  use our process to push companies into Manage.
  4. Customers must be mapped between ConnectWise and eAutomate for any of the sync pieces to work properly. Mapping between the two systems is done via a custom property on the customer record in eAutomate. Details here.
  5. Review your Product Types for your products in CW, you'll need a different Product Type for each revenue bucket you want to track. See our suggested list here. Note we do NOT need the GL entries CW normally uses for integrations.
  6. Ensure your agreement types in CW match your contract types in eAutomate. Especially for the service sync, you'll want to ensure that for every "flavor" of billing you do in ConnectWise, you have a matching bill code in eAutomate.
  7. Once your product and agreement types are set, let us know and we'll run our "preflight" process that will create the item and contract templates in your eAutomate test database.
  8. Tweak the templates we create to add the correct codes etc.
  9. We'll sync agreement invoices from your production ConnectWise database to your test eAutomate database. New contracts will be created by the sync from the agreement invoices. See here for the pros & cons of syncing to an existing eAuto contract.
  10. Tell us to start the sync then review the contracts we create.
  11. Once you’re comfortable with the process, and all the coding is correct, we’ll copy the templates over to your live database and point the sync to run in production.
  12. Review our process for tracking profit here.

Most clients begin by testing customers and agreements, then move to service calls and then sales orders. You can move each piece of the sync to production independent of the other pieces, once moved to production, you cannot move back to test with that specific piece of the integration. 

API Key in ConnectWise

Creating an API Key in ConnectWise

To start the process we need API access to your ConnectWise database, use this link to generate the API key pair, or give us a username/password with admin rights to your ConnectWise database, then we can login and generate for you. Once the keys are generated you can add them to our site under the Profile / Integrations tab or email them to

Note, once you create the keys, you need to copy/save the private key, CW will not display it again once you leave that page.

We also need the URL (1) for your CW portal and the Company ID (2). These are found as below;



To create the API keys, in ConnectWise go to System -> Members


Go to the API Members tab and create a new user named CEOJuice API by clicking the + button. 

(Adding an API Member does not count toward your user licenses):


Complete all of the required fields.

Once that is done, save and close the create member screen and you should see the user pop up in the API Members list.  Open up that member again and go to the API Keys tab and create a new record using the + button:


Give it a description and click Save (don’t save and close). 

It will populate the Public Key and Private Key fields at that time.  We will need both keys.  If you close it without copying the keys, you cannot view the private key again if you go back into it and will need to create a new pair again.


Please update your Integrations Page on CEO Juice subscription site (requires login by user with Admin Rights to site). 

Once logged in, please click on Profile in upper right hand corner:


Select (1) Integrations tab, then (2) ConnectWise:


Then update your ConnectWise Keys, Company Name (as listed in ConnectWise) and ConnectWise URL per those created in Step 1 above:




*  *  * 

Creating Custom Properties in CW

Creating Custom Properties in ConnectWise

Sync requires several custom fields in ConnectWise to be created. To create the custom fields, go to the Setup Tables in ConnectWise. At the bottom left, click on the gear icon, then"Setup Tables" in the popout menu:



Look for "General" and then click on Custom Fields


Each custom field needs to be created in a specific area:

ZCJ_ContractNumber - Updates with eAutomate contract number. Added to the Agreement Overview section


Click on Overview and then click on the plus sign to create a new custom field:


ZCJ_ItemNumber - Used to link an item from eAutomate to a product in ConnectWise, where the item number is not an exact match to the product ID. Add to the product setup overview section:


Click on Overview and then click on the plus sign to create a new custom field:


ZCJ_OnHoldCode - Updates with the on-hold code from eAutomate for the customer. Added to the Company Overview section:


Click on Company Overview and then click on the plus sign to create a new custom field:


ZCJ_Order_Type - Used with sales order sync to create a drop-down list of options for order type. This field is optional to add, only needed if you want to use more than one order type with ID966. This is added to the order overview:


Click on Sales Order Overview and then click on the plus sign to create a new custom field.


ZCJ_EAStatus - Used with sales order sync to update with the status of the sales order in eAutomate. This custom field is also added to the sales order overview section. 


ZCJ_ShipMethod - Used with sales order sync to create a drop-down list of options for the shipping method. This field is optional and only needed if you want to have more than one option for the shipping method on ID966. This field is added in the Sales Order / Shipping Information section:


Click on Shipping Information then click on the plus sign to create a new custom field:




To enable Serviceable as an Item

In eAutomate, go to Tools\Options and select the Contracts tab



*  *  *

Sync Functionality

Sync Functionality

Jump to: Companies/Customers | Products/Items | Agreements/Contracts | Service Tickets/Calls | Sales Orders



Companies in ConnectWise are Customers in eAutomate; sites in ConnectWise are child locations in eAutomate.

ConnectWise Companies will be updated from their corresponding eAutomate Customer. The mapping between eAutomate and ConnectWise is done via a custom property on the eAutomate customer record. Details on that here. The sync works by looking at records updated in eAutomate since the last run (every 15 minutes, the initial sync will look back 10 years for records updated) Changes made in eAutomate will be pushed to ConnectWise. You can update and insert customers from eAutomate to ConnectWise. No changes made on the company record in ConnectWise will push back to eAutomate.

The sync will update a custom field in ConnectWise (ZCJ_OnHoldCode) with the on-hold code for the customer in eAutomate. This is an information-only field, the sync will NOT put a company in ConnectWise on hold.

Fields that are updated: Name, Address Line1, City, State, Zip, Phone Number, Fax Number, Website, Hold Code (in the Custom Field.)

EA Customer Record:


ConnectWise Company Record:


No contacts are synced between the two systems.




Products in ConnectWise are items in eAutomate.

The sync will create items in eAutomate as needed to be added to contracts and sales orders. The sync is looking for an exact match between the item number in eAutomate and the product ID in ConnectWise, if no match is found, the item will be created. If you have existing items in eAutomate that match to ConnectWise, please review these items to ensure they have the proper coding. 

Our process will create several Item “templates” in eAutomate. An item template is simply an item we can copy, that is linked to the correct GL codes. See here for more details on the item templates. You will have one item template for each product type in ConnectWise.

For Agreements, items are only going to support contracts, so all Items are non-inventory, serviceable items. Items created for sales orders will need to have a sales code and either an inventory or an expense code assigned. 


Click here to see how to enable Serviceable as an item in eAutomate.  


Agreements in ConnectWise are contracts in eAutomate.

eAutomate Contracts are updated based on the agreement invoice from ConnectWise. This ensures that eAutomate’s billing matches CW’s billing exactly, as CW does some more advanced pro-ration.

When creating new Contracts in eAutomate, a “template” is used, similar to Items. A contract template is simply a non-billing contract, with the customer as your dealership, that we can copy, update the customer and add the line items. See here for details on the contract templates.

WE MUST CREATE THE LINE ITEMS ON CONTRACTS AND CAN NOT SYNC TO EXISTING LINE ITEMS. The eAuto contract must ONLY contain items on the CW Agreement. When syncing to existing contracts, all current line items will be terminated by the sync and new items added. You can "group bill" with other contracts in eAutomate.

To determine if an Agreement should update an existing Contract or insert a new one, sync first looks to its internal tables. If this Agreement has already been synced to a Contract, that Contract will always be updated by this Agreement. If there is no sync record for this Agreement, the sync will next look at the ZCJ_ContractNumber Custom Field. If a value was manually entered here, the indicated Contract will be updated. If there is no sync record and the Custom Field is not populated, sync will insert a new Contract in eAutomate.

The Contract template for inserts is selected based on matching the agreement type in ConnectWise to the contract template in eAutomate. If no corresponding Contract template exists, the default Contract template will be used.

Contract Details are added based on the Agreement Invoice line items. Contract Details will reflect any price changes, pro-ration, name/description overrides, etc.


Service Tickets

Service Tickets

Service tickets in ConnectWise are service calls in eAutomate.

The ID965 service sync will pull closed service tickets from ConnectWise and insert them into eAutomate as Ok to Invoice service calls. This is a one-directional pull from ConnectWise to eAutomate; once the ticket is pushed, no updates made in ConnectWise will affect the service call in eAutomate.

See here for more details on the service ticket sync.

There is also an option to move calls between eAutomate and ConnectWise. This is ID912, details on that sync are here.


Sales Orders

Sales Orders

Sales orders in ConnectWise are sales orders in eAutomate.

The ID966 sales order sync will take orders in a specified status in ConnectWise and insert them into eAutomate as sales orders. The sync will create any needed items that do not exist already in eAutomate. These items will be created based on the item templates, that correlate to the product types in ConnectWise.

The sales order sync works in conjunction with ID634, the alert used to insert sales orders into eAutomate.

See here for more details on the sales order sync.


*  *  *


Best Practices & Tips

Best Practices & Tips

Jump to: Suggested Accounts | What Contracts should sync | Syncing to Existing EA Contracts

See the attachment at the bottom of this post for a sample invoice of the same contract in CW & eAuto.  We recommend sending the eAutomate invoice, though we support sending either invoice. We offer three different custom invoice formats for you to use to send the contract invoice from eAutomate. Details on those here.

Once the contract bills in eAuto we will update the eAuto invoice to have the CW agreement invoice # with a CW prefix. Once paid in eAuto we will mark paid in CW. Note: we see some clients who are sending the eAuto invoice but still want the eAuto invoice # changed, the number should be updated within 15 minutes of the contract being invoiced but you don't want to send the invoice before the number is changed.

Suggest Accounts and Product Types

Suggested Accounts and Product Types

See below for our suggested list of Product Types and the GL accounts they would tie to in eAuto.



Contracts to sync

Decide what contracts should sync

You can filter the agreements that will sync to eAutomate based on the agreement type or the agreement status. These are both set by variables on ID964, details on those here.

Sync to Existing Contracts

Sync to existing contracts in eAuto

We see clients who have been billing their IT contracts in eAuto without a PSA tool ask that we sync to those same contracts after they switch to CW Manage, so they can have contract profit reports that include the old contract. While this is possible we do not recommend it, as it can cause many sync problems. These issues are mainly around the dates on the contracts; ConnectWise ONLY bills full months, starting on the first, while eAutomate allows you to start the billing period on any day of the month. Switching the existing contracts in eAutomate to the new billing dates in ConnectWise can cause issues with the billing period dates.

Instead, we suggest you let our sync create a new contract, then change that contract # in eAuto to match the next revision on the old contracts. Note you will also need to update the field in CW Manage that stores the eAuto contract #. If you have existing contracts that are tied to leases then this may be worth the effort.

For more details on syncing to existing contracts, see this post.

*  *  *

Related Alerts

Related Alerts

ID747 - Customer Inserts/Updates

ID912 - Moving Calls

ID964 - Agreement Sync

ID965 - Service Call Sync

ID966 - Sales Order Sync

*  *  * 



Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request


Please sign in to leave a comment.
Powered by Zendesk