The contracts module takes agreement invoices from ConnectWise and uses the data to create/update contracts in e-automate. The ConnectWise agreement is the master for the contract information, the contract in e-automate is updated when the agreement is invoiced.
Click here for our ID964 videos!
ConnectWise Manage and the RMM tools do an excellent job of tracking products included in agreements, so we recommend that the ConnectWise Agreement be the master for contract billing. This sync process will take the agreement invoices from ConnectWise and create matching contracts in e-automate. The base amount and additions from the ConnectWise agreement will push to e-automate and update the line items on the contract when the agreement is billed in ConnectWise. This sync does not push any information from e-automate to ConnectWise.
**It's important to note that Connectwise Manage is not an accounting software and therefore things do not have to balance in the same way that they do in e-automate. For example, the ConnectWise invoice can have an item with a quantity and extended price and show a billed amount of zero. E-automate will not allow this, the software automatically calculates the billed amount as the quantity times the extended price.
This process will create the contract if it does not exist in e-automate, and create the items on the contract if they also do not exist. You can choose to create the contracts and items yourself in e-automate and link them to the agreements and products in Connectwise, but we recommend allowing the sync to create these for you. This way requires the least manual intervention by your team and therefore saves you the most time.
We are using "templates" in e-automate to create both the contracts and the items. A contract template is simply a non-billing contract, with the customer as your dealership, that the sync will copy, update the customer, and add the line items to match the ConnectWise agreement invoice. Similarly, item templates are simply items that the sync copies when creating new items in e-automate to be added to the contract. We create these templates for you as part of the testing process for the sync.
Run Schedule: Every 15 minutes
Type of Output: Data Push
* * *
1. The contract number will be the next number from e-automate, combined with the optional prefix from variable 9. The e-automate contract number posts back to ConnectWise in the custom field ZCJ_ContractNumber. More details on the contract number are here.
2. The customer on the contract will match the company from ConnectWise. The company field is touched on both contract creation and contract updates. Details on company matching are here.
3. The contract type is copied from the contract template used to create the contract. This field is only touched on contract creation. More details on the contract type in e-automate are here.
4. The contract bill code is copied from the contract template. This field is only touched on contract creation. More details on contract bill codes are here.
5. The status of the contract will be set to active unless the start date of the contract is in the future. Contract status is updated when the contract is updated by the sync.
6. The billing method will be copied from the contract template. This field is only touched on contract creation.
7. The start date of the contract will be the billing start date of the agreement in ConnectWise. This field is only touched on contract creation.
8. If there is an end date set on the agreement in ConnectWise, that date will be used as the expiration date on the contract in e-automate. This field is updated when the sync updates the contract, so if an expiration date is added in ConnectWise it will be updated on the contract.
9. The billing cycle on the contract will match the billing cycle from ConnectWise. This field is only touched on contract creation. More details on billing cycles are here.
10. The sync will set the billing period on the contract to match the period from the ConnectWise invoice. This field is updated each time the sync updates the contract. More details on the contract billing period are here.
11. The option to use equipment base rates is set when the contract is created by the sync. This field is only touched on contract creation.
12. The base rate on the contract is set to the total amount billed in ConnectWise when the contract is created and on each update of the contract.
13. The contract base distribution code will be copied from the contract template. This field is only touched on contract creation.
14. The activated on date will be set to match the contract start date when the contract is created. This field is only touched on contract creation.
15. The terminated on date field is touched on contract updates if the agreement has been canceled in ConnectWise.
16. If the terminated on date is set, the sync will apply the default termination code to the contract.
17. An accrual cycle is set on the contract if the billing period is greater than one month. This field is only touched on contract creation. (If you have a practice of accruing all contracts regardless of the billing period length, there is an option to accommodate this in the sync. You'll need to email firstname.lastname@example.org and ask to have this option turned on)
Contract item Details
Contract Item Details
Each product from the additions tab of the agreement in ConnectWise will have a matching serviceable item on the Equipment/Items tab of the e-automate contract.
1. The item number on the contract will match the product ID from ConnectWise. The item number is only touched when the item is added to the contract.
2. The description of the item will match the invoice description from ConnectWise. This field is updated each time the sync touches the contract.
3. The quantity will match the quantity to bill in ConnectWise. This field is updated each time the sync touches the contract.
4. The unit base rate is the unit price of the item from ConnectWise. This field is updated each time the sync touches the contract.
5. The base rate is the ext price for the item. This field is updated each time the sync touches the contract.
**Note that ConnectWise allows the unit price and ext price to have up to 6 decimal places, while e-automate only allows for 2. If you are using the full six decimal places in ConnectWise, you may see slight discrepancies where items are a penny or two off in the total amount.
6. The start coverage date is set to the first day of the month that the item is added to the contract. This date is only touched when the item is added to the contract
7. If the product is canceled on the ConnectWise agreement, the end coverage date will be updated to the last day of the month for that billing period.
8. If the item is terminated, the default termination code will be applied.
9. The base distribution code is pulled from the item record. This field is updated each time the sync touches the contract.
10. The bill code is pulled from the bill code set on the contract. This field is only touched when the item is added to the contract.
11. The tax code is pulled from the customer record. This field is only touched when the item is added to the contract.
12. The option to override the taxable status is touched when the item is added to the contract and each update. See notes here on how this option is set in ConnectWise.
13. The branch on the item is pulled from the customer record and only touched when the item is added to the contract. If you need to set the branch to a specific value for all contracts, there is an option to accommodate that. You'll need to email email@example.com to let us know to enable that, along with the specific branch to be used on all contracts.
14. Starting with version 2023.06.16 of the sync, there is an option to link agreement additions to locations in e-automate. To do this, you'll need to add a custom field to the agreement additions in ConnectWise and then populate this field with the customer number from e-automate for that location.
Contract Billing/Contact Tab
1. The bill to customer will match the bill to company from the ConnectWise agreement. More details on the bill to company are here. The bill to company is touched on creation of the contract and subsequent updates. Starting with the 2023.06.16 version of the sync, there is an option to link the billing site from ConnectWise to the bill to company on the contract.
2. The contact name will match the contact name from ConnectWise. This field is only touched when the contract is created.
3. The branch is pulled from the customer record in e-automate. This field is touched on creation of the contract and subsequent updates. If you need to set the branch to a specific value for all contracts, there is an option to accommodate that. You'll need to email firstname.lastname@example.org to let us know to enable that, along with the specific branch to be used on all contracts.
4. If you have checked the option to Group invoices on the contract template, this option will be checked on the contract created by the sync. This field is only touched on the creation of the contract. More details on group billing of invoices can be found here.
5. The bill contract box is checked upon creation of the contract and not updated after that.
6. The billing group will be pulled from the contract template. This field is only touched on the creation of the contract. See more details on billing groups here.
7. The tax code on the contract will be pulled from the customer record. See more details on contract tax here. (This field is not touched on contract updates, if you need to set the tax code to a different code than the one set on the customer you just need to do that one time when the contract is created.)
8. The taxable check box is based on the taxable status of the customer on the contract, this field is touched on creation of the contract and subsequent updates.
9. The option to use the equipment tax codes is set on creation of the contract.
10. The terms on the contract will pull from the customer record. This field is only touched when the contract is created.
11. Starting with version 2023.06.16, there are two options for updating the sales rep on the contract. The first option is to pull the sales rep from the customer record, the second option is to pull the sales rep from a custom field in ConnectWise. See here for more details on the sales rep linking.
12. The report group will be pulled from the contract template. This field is only touched when the contract is created. See more details on the different report groups CEOJuice will install here.
13. The invoice number from ConnectWise will sync to the PO field on the contract. This field is updated with the new invoice number from ConnectWise each time the sync updates the contract. You do have the option to post the invoice number to the contract remarks if needed. More details on that are here.
1. The sync automatically adds a billing queue message with the next billing date from the ConnectWise agreement. More details on this message are here.
2. This message is set to require acknowledgment in the billing queue.
Starting with the 2023.10.27 version of the sync, an email will be generated whenever the default contract or item template is used.
* * *
1. Map customers and locations between the two systems, more details on customer mapping can be found here.
2. The billing cycles need to match between the two systems, more details on billing cycles can be found here.
1. Verify that the option to add items to service contracts is enabled. More details on that here.
2. The sync needs a default termination code to use when items on the contract are canceled, you'll enter this default in variable 11. More details on terminating items are here.
1. There are a few other custom fields that need to be created in ConnectWise:
ZCJ_ContractNumber – On the agreement, to store the contract number from eAutomate.
ZCJ_ItemNumber – On the product ID, to store the item number from eAutomate.
See instructions on how to create these custom fields in CW here.
2. Review the Product types you currently have in ConnectWise, you will have one item template for each product type in ConnectWise. You'll need one product type for each GL code you want revenue to post to.
3. Review the Agreement types you currently are using in ConnectWise, do you wish to sync all agreement types or only a few? You will have one contract template for each agreement type that exists in ConnectWise.
Subscribe to Alerts
1. Once you have the settings in ConnectWise and e-automate determined, subscribe to ID964 on our website. If you don't have a login to our subscription site, you can email email@example.com to have us set you up with a login.
* * *
Variable W: Serviceable Item - Enter the item number to be added to the contract that will be used on all service calls generated by ID965 integration. This item will be added to all contracts created by the sync. **Required, the default value is CW-Service, we will create this item during the preflight process.
Variable Z: Mark Invoices Paid - Option to mark invoices as paid in ConnectWise when the invoice is paid in e-automate. The default option is No, switch to Yes if you want the sync to update the invoices in ConnectWise and mark them as paid.
Variable 4: Default Contract Template - the name of the default contract template in e-automate. This template would be used if there is no matching contract template for the agreement type from Connectwise. The default is **CWAgreement. **Required, we will create this template for you during the preflight process.
Variable 3: Contract # Field - the name of the custom field in ConnectWise used to store the e-automate contract number. See this link for how to set up the custom field in Connectwise. The default value is ZCJ_ContractNumber. **Required.
Variable 5: Default Item Template - the name of the default item template in e-automate. This template would be used if there is no matching item template for the product type in ConnectWise. The default is **CWJuiceDefault. **Required, we will create this template for you during the preflight process.
Variable 6: Item # Field - the name of the custom field in Connectwise to store the e-automate item number. See this link for how to set up the custom field in Connectwise. The default value is ZCJ_ItemNumber, when the sync creates an item it will add the item number to this field. **Required.
Variable 11: Default Term Code - Termination code to use when a contract detail line item is terminated on the e-automate contract. See here for further details on the termination code. **Required**
Variable 1: ConnectWise Credentials - Select the credentials to use from the drop-down. Only needed if you have more than one set of API credentials on the CEOJuice website.
Variable 2: Agreement Type - If you would only like to sync agreements of a specific agreement type, enter the specific agreement types to sync here. Leave blank to sync all agreements.
Variable 7: Exclude Product Types - If there are specific product types in ConnectWise that you do not want to sync over to e-automate, enter those here. Leave blank to sync all product types. (For example, if you have cost items on the ConnectWise agreement and do not want those products to sync over to e-automate, enter the product type of those items here to exclude them.)
Variable 9: Contract # Prefix - If you would like the contracts created by the sync to have a specific prefix (CW, MNS, IT, etc) enter that here. Leave blank to use the default contract number. See here for more details on the contract number.
Variable 8: Renumber Invoices - You have the option to renumber the contract invoices in e-automate to match the invoice number in ConnectWise. Set this variable to Yes to renumber the invoices or No to not renumber the invoices. See here for more details on the invoice renumbering process.
Variable 12: Invoice Renumber Prefix - If you choose to have the invoices in e-automate renumbered, you will need to select a prefix to use on the invoice. The default value is CW. If your invoices in ConnectWise are ONLY numeric, you must select a prefix to add to the invoice number in e-automate. See here for more details on the invoice renumbering process.
Variable 10: Invoice Status Trigger - If you only want agreement invoices in a specific status (Closed, for example) to sync over, enter that status in this variable. Leave blank to sync all agreement invoices regardless of invoice status.
Variable X: Push Invoice # to CW after billing - After the contract invoice is created in e-automate, the invoice number will push to the invoice in ConnectWise. Not needed if you are using the invoice renumber option.
Variable 10: Invoice # Field - ConnectWise custom field to hold the e-automate invoice number. Only needed if Variable X is set to yes and the invoice renumber option is not used.
* * *
The first step in testing the agreement sync is to setup the testing environment. Then, we can run our preflight process to create the item and contract templates for you. You'll then update the coding on each template, once that is done, we can sync agreement invoices to the test database to create contracts for testing.
1. API Keys in ConnectWise – These may already be in place if you are using other portions of the ConnectWise sync. New keys do not need to be created for the contract sync. Details on creating API keys here.
2. ConnectWise test Database – If using a test ConnectWise database, you’ll need to create a set of API keys for that database. Details on creating API keys here.
3. e-automate test Database – A test database is required to sync contracts initially for review. See this link for notes on creating a test e-automate database. **It's very important that this test database is NOT updated while the sync is being tested as this will overwrite the item and contract templates**
4. CEOJuice test database – If you have previously tested other parts of the ConnectWise integration, you may already have this in place. If not, see this link for notes on creating a test CEOJuice database.
Once these setup steps have been completed, please let us know and we will install the sync for testing and run the preflight process to create the item and contract templates.
You will have one contract template for each agreement type that you have in ConnectWise, plus one default contract template. You want to be sure to have at least one agreement type for every "flavor" of billing that you do.
Updates needed on the contracts:
1. Contract type - More details on the contract types in e-automate are here.
2. Contract bill code - More details on the contract bill code in e-automate are here.
3. Contract status - This is a required field on the contract that will need to be set, we'd recommend setting the status to Active.
4. Billing method - This is determined by the option set on the contract type. Be sure that any block of time agreement types are set to deposit-based and not installment based.
5. Billing cycle - This should be left blank, the sync will set the billing cycle on a new contract to match the billing cycle from the agreement. More details on billing cycles are here.
6. Base distribution code - This is a required field on the contract, it's only used when items added to the contract do not have a distribution code set. See more details on the base distribution code here.
**You can check either the bill in arrears (1) or bill in advance (2) options on the template, to do so you'll first need to add a billing cycle:
The contract sync will automatically force the billing period to match the billing period from ConnectWise, so these settings are NOT required. More details on the billing period are here. If you do check either of these options, remove the billing cycle after you have set them.
On the Billing/Contact tab of the contract, these codes need to be set:
1. Group invoices - If you would like to group bill contracts in e-automate, check this option on the template. See notes on group billing here.
2. Billing group - This is not a required field, but we do recommend setting up a billing group to be used on all contracts created by the sync. See more details on the billing group here.
3. Tax code - The tax code is a required field and so you must set a tax code on the template. This tax code DOES NOT transfer to the contracts created by the sync, the tax code is pulled from the customer on each contract created.
4. Report group - The report group is a required field, we will add several report group options for you to use. See more details on those here.
You'll have one item template for each product type in ConnectWise, these item templates all begin with **CW and then the product type. You want to have at least one product type for each GL account that you want revenue to post to. Additionally, you'll have one item template for each agreement type. These item templates will start **CWBase and then the agreement type. These base templates are only used if you are billing a base amount on the agreement in ConnectWise. See here for more details on base charges on the contract.
These codes need to be updated on the item templates:
1. Description - The description will default to ID964 Item Template, you can leave this as is or change it. When the sync creates an item, it will use the description from the product in ConnectWise.
2. Category - This is a required field on the item, the sync will create the template with the first category option it finds so you'll most likely want to change it.
3. Unit of measure - This is a required field on the item, the default when the item is created is EA. You can change the unit of measure or leave as is.
4. Contract base distribution code - This is the most important code to set on each item template as this determines what revenue account will be used when the item is billed on a contract. More details on the distribution code are here.
If you are going to be using the sales order sync with ConnectWise, these item templates will need further coding so that the items created from the templates can be added to sales orders. See the documentation here on the other codes you'll need to set.
**If you have items already set up in e-automate that match a product ID in ConnectWise, please review these items and verify that all have the correct contract base distribution code in place. If the sync finds a matching item already in e-automate, it will use that item on the contract. If the distribution code is not set on the item, the revenue from that item will default to the GL account used on the contract distribution code (code set on the contract template).
If you do not use base amounts on the agreements in ConnectWise, you do not need to update the base item templates. If you do use a billing amount on the ConnectWise agreement, you'll need to code the distribution code on the base templates to the appropriate revenue account and you will want to change the description of the item as that will show on the invoice from e-automate. See here for more details on the base billing amount.
Once the templates have been updated, you're ready to begin syncing invoices to the test database for review. Verify the following are all working as expected:
- Review the contracts that were created, checking dates, base rate amounts, and item amounts.
- Preview the next invoice, confirm that the totals match and that the tax status is in line.
- Invoice contract and review the GL entries to verify that the amounts all posted to the correct accounts.
After confirming that everything is syncing properly, we will move the templates to your production e-automate and repoint the sync to production to push in the agreement invoices.
* * *
The sync is triggered by the agreement invoice in ConnectWise. Changes made to the agreement in ConnectWise over the course of the month do not update the contract in e-automate until the agreement invoice is generated.
Once a new agreement invoice is created, the sync will check:
1. Is the customer linked in ConnectWise? If a customer match can't be found, the invoice will not import.
2. Is the agreement in ConnectWise linked to a contract in e-automate? (Either manually via the custom field in ConnectWise or automatically by the sync from a previous invoice). If the agreement is linked to a contract in e-automate, that contract will be updated by the sync.
3. If the contract does not exist, the sync will create the contract by copying the appropriate contract template, then add the line items from the agreement invoice to the contract as serviceable items. Items that don't already exist in e-automate will also be created based on the item templates.
Once the contract is updated by the sync, you will need to cycle the contract through the billing queue in e-automate. It's very important that you do not cycle the contract through the billing queue in e-automate before it is updated by the sync as this will cause multiple issues in e-automate.
Jump to: Contract Number | Customer Mapping | Contract Type | Contract Bill Code | Contract Status | Contract Dates | Contract Billing Period | Contract Accruals | Billing Cycles | Base Distribution Codes | Contract Base Amount | Locations | Bill to Customer | CW Invoice # | CW Invoice Status | Invoice Renumber | Billing Groups | Sales Reps | Report Groups | Invoice Samples | Contract Message | Serviceable as an Item | Contract Tax | Terminating Items/Contracts | Proration of Items | Invoice Paid in CW
The sync will use the next contract number from e-automate, this is set in Options:
You do have the option to add a prefix to all contracts created by the sync, which we recommend doing. This allows for easy filtering in the contracts screen for the contracts created by the sync. This prefix is set in variable 9. In the example below, variable 9 is set to CW-
You can change the contract number after the sync has created the contract, that will not affect the linking of the agreement to the contract. Creating a new revision of the contract in e-automate will not cause the sync to update the revised contract, it will continue to update the initial revision of the contract.
ID747, the customer sync, is required for ID964. You do have the option to use ID747 in No Update mode, that will only update the background mapping in the custom property in e-automate and not make any changes in ConnectWise. See here for more details on ID747.
The agreement sync matches customers based on the ConnectWise company recID being in the custom property ZCJ_CW_CompanyID on the customer record in e-automate. Additionally, the agreement sync will check for customer matches based on the e-automate customer number in the Account ID, Company ID or the custom field ZCJ_CustomerNumber. (Note: The service sync (ID965) and sales order sync (ID966) match customers solely on the custom property in e-automate.)
If the sync is unable to match the company from ConnectWise to one in e-automate, the invoice will not be inserted.
See the documentation here on how to map the customers based on the custom property in e-automate.
Contract types in e-automate are used to set the defaults used when a contract is created, these are similar to agreement types in ConnectWise though you do not need to have the contract types match exactly to the agreement types.
When creating a contract type in e-automate, go to Lists and Codes then Contract Types.
There are four fields required on the contract type:
1. Contract type - The name of the contract type.
2. Description - A description of the contract type.
3. Base distribution code - The default distribution code used at the contract level when this contract type is used on a contract.
4. Billing method - The contract type determines if the billing method will be Installment based or Deposit based.
The remaining fields are optional when setting up the contract type, you may want to set a default bill code (5) or a report group (6).
**When setting the contract type on the contract templates, you can override the defaults for everything except the contract type name and the billing method.**
Contract Bill Code
Contract Bill Code
The contract bill code will determine what is billable and what is covered for service tickets applied against the contract. When the sync creates a new contract it sets each item added to the contract with the contract bill code on the template.
Contract level bill code:
Item level bill code:
If this bill code is later changed on the contract, that change DOES NOT push to the items existing on the contract and will need to be manually changed.
Depending on how you are billing for service, you may need to set up advanced bill codes so that what's billable in ConnectWise is also billable in e-automate. See here for more details on setting up advanced bill codes. See the documentation here for more details on how the bill code functions in relation to the service call sync.
The sync will set the e-automate contract status to equal the ConnectWise agreement status, anytime that the status exists in both systems. If ConnectWise has a status that doesn’t exist in e-automate (Cancelled and Expired are statuses in ConnectWise that do not exist in e-automate) the sync will use the template’s status for inserts and just leave the status alone on updates.
If a contract is created in e-automate where the start date is in the future, the status will be inactive when the contract is created. To bill the contract, you'll need to manually change the status to active.
The sync will populate the start date of the contract to match the billing start date in ConnectWise unless the start date of the contract is not the first of the month:
For prorated contracts with a mid-month start date, the sync will set the start date of the contract to the first of the month. In the example above, the billing start date is 5/10/23, the contract will be created in e-automate with a start date of 5/1/23:
This is done to ensure that e-automate doesn't attempt to prorate the amount billing, as that proration has already taken place in ConnectWise.
Items added to the contract in e-automate will all be set with a start date of the first of the month. When items are terminated, the termination date will be set to the last day of the previous month. This is also to ensure that e-automate doesn't calculate prorated amounts.
Contract Billing Period
Contract Billing Period
ConnectWise contracts only allow for billing on the first of the month through the end of the month.
Each month when the sync updates the contract, it takes the billing period from the ConnectWise invoice and sets the e-automate contract to match that billing period. You can check the ConnectWise billing period by going to the Invoices tab of the agreement:
The sync uses the Month and Year for the invoice to set the billing period in e-automate:
Due to the sync matching the billing period from ConnectWise, it's not necessary to have the bill base rate in arrears or bill base in advance options set, as the sync will force the billing period to match regardless of those settings.
One of the reasons that it is VERY important that you do not bill the contract prior to the sync updating the contract is due to the sync resetting the billing period when it touches the contract. In e-automate, once you have billed the contract, the billing period is automatically rolled forward. If the sync updates the contract AFTER it has been billed for the period, the billing period will get rolled back and the contract will go back to showing in the billing queue.
To correct this issue, you need to manually reset the billing period on the contract by clicking on the pencil edit button and then clicking on the green arrow to reset the period:
After you click on the OK button, you'll need to make another change to the contract for the OK button on the contract to not be greyed out. Adding a space in the remarks section should be enough to get e-automate to recognize that changes were made.
When the billing cycle on the contract is greater than one month, the sync will automatically use the accrual settings for the contract, those are set in Options here:
If the billing cycle is one-month, the sync will default to NOT setting an accrual cycle on the contract. If for any reason you need contracts with monthly billing cycles to accrue, you'll need to send an email to firstname.lastname@example.org to request the sync be modified to always set an accrual cycle.
The billing cycles that are set in ConnectWise must match the billing cycle options you have for the contracts in e-automate exactly, both the code and the description.
Billing cycles in e-automate are found in Tools/Lists and Codes/Billing Cycles:
Billing cycles in ConnectWise found in setup tables/Billing Cycle
If you look at the quarterly billing cycle in the above examples, quarterly is shown as Quarterly in e-automate and QU in ConnectWise. This mismatch will cause an issue when the agreement invoice syncs to the contract in e-automate. It doesn't matter what the billing cycle is named, as long as they match exactly in both systems. (Most likely, it is easier to change the ConnectWise billing cycles to match what you have in e-automate, though the Bill Cycle ID in ConnectWise can only have a max of five digits.)
If the agreement in ConnectWise does not have a billing cycle (one-time bill agreement), the sync will create the contract with the default billing cycle of Monthly. You will need to manually terminate this contract once it has been billed in e-automate.
Contract Base Distribution Code
Contract Base Distribution Code
The base distribution code determines if the contract will accrue and sets the GL account that revenue will post to; the distribution code is set on the contract type and will automatically update when you update the contract type.
1. The check box Use accruals needs to be checked if the contract should accrue.
2. Revenue account - The GL account that the revenue will be posted to.
3. Revenue department - The GL department that the revenue will be posted to.
4. Revenue distribution - The percentage of revenue to be posted to the account. You can split the revenue among several accounts, the total distribution needs to add up to 100%.
When posting revenue, e-automate checks for the distribution at the item level, if no code is found there, the code at the contract level is used.
The contract base distribution code on the item template is copied to each item created by the sync, and therefore will be used at the item level of the contract (1). You'll want to check for any existing items in e-automate where the item number matches a product number in ConnectWise and verify that these items all have a base distribution code set.
Contract Base Amount
Contract Base Amount
If you are billing a base amount on the ConnectWise contract, that amount will show as a serviceable item on the contract in e-automate. ConnectWise allows you to bill both a base rate and additions, but e-automate does not have the same functionality, contracts either bill a contract base rate or a base rate by equipment/item.
The base amount on the ConnectWise agreement shows in the Recurring Invoice Parameters pod as the Billing Amount:
This amount will show on the e-automate contract as a line item, using the **CWBase template that matches the agreement type:
The newest version of the sync (version 2023.06.16 and higher) offers an option to link the additions on the agreement in ConnectWise to a location in e-automate. This will allow you to properly charge tax based on the location of the item, as the tax code on the line item will pull from the location customer.
To add this option, you'll first need to create a custom field in ConnectWise named ZCJ_EALocation to the agreement additions. In this field, you'll enter the exact customer number from e-automate that the product should be linked to:
When the contract is updated in e-automate, the sync will set the location on the item to match the customer number in the custom field:
To enable this option you'll need to email email@example.com and ask to be updated to the new version of the sync.
Bill To Customer
Bill To Customer
The bill to company from the agreement in ConnectWise will be used as the bill to customer on the contract in e-automate. If the sync can not match the bill to company to a customer in e-automate, the invoice will not sync.
If the billing address on the customer record in e-automate is not the same as the physical address, the sync will pull the address from the Billing Address field on the customer record:
Starting with version 2023.06.16, the sync can link the billing site on the ConnectWise agreement to the bill to on the contract in e-automate:
In order for this to work, you'll need to be sure that the site in ConnectWise is linked to the proper location record in e-automate:
See this link for more details on linking sites in ConnectWise to locations in e-automate.
ConnectWise Invoice Number
ConnectWise Invoice Number
The ConnectWise invoice number will post in the PO field on the contract in e-automate. You can see the last invoice number for the agreement in the Agreement Recap pod:
This number posts to the PO field of the contract:
You can search by the PO field and see this column in the contracts screen in e-automate, making it easy to search for the invoice number and use this field to verify that the contract has been updated by the latest invoice from ConnectWise.
You do have the option to instead post the invoice number in the remarks field if you have customers that need to populate the PO field.
You will need to contact CEOJuice by emailing firstname.lastname@example.org to have this switched.
CW Invoice Status
ConnectWise Invoice Status
Starting with the 2023.11.06 version of the sync, you have the option to update the status of the invoice in ConnectWise after it has synced into e-automate. There is not a variable option for the name of the status to use, you will need to reach out to us to set this up by emailing email@example.com with the name of the status that you wish to use. The sync will process the invoice from ConnectWise and then on the next run of the sync (approximately 15 minutes later) the status of the invoice in ConnectWise will be updated.
If you have the invoice status update set, but you notice invoices that are not updating, check that the company in ConnectWise for those invoices has an Account ID set. ConnectWise does not allow the status to change on invoices where the company record does not have an Account ID set.
To correct this, simply need to go to the finance details section of the company record and add the Account ID:
The sync does offer the option to renumber the invoices in e-automate to match the invoice number from ConnectWise. This is recommended only if you are sending the invoice to the customer from ConnectWise, if you are sending the invoice from e-automate, there is no reason to renumber the invoices.
When the invoice renumber option is enabled, the sync will renumber the contract invoice in e-automate to match the invoice number from ConnectWise. If the invoice numbers in ConnectWise are numeric only, you'll need to also enter a prefix option to ensure that the sync doesn't try to renumber the invoice to a number that already exists in e-automate.
A few things to keep in mind when using the invoice renumber:
1. You MUST wait until the sync has updated the contract with the new invoice number from ConnectWise prior to billing the contract in e-automate. If the contract is billed prior to the sync updating the contract with the new invoice number from ConnectWise the sync WILL NOT renumber the invoice in e-automate.
2. If you are sending invoices from e-automate and using the renumbering process, you must wait at least 15 minutes after creating the invoices before sending them to the customer. If you send the invoices immediately after creating them, the sync will not have time to renumber the invoices and they will send with the original e-automate invoice number.
3. If you are using group billing in e-automate, the invoice renumber will not work.
4. The renumber process only supports ONE void of the contract invoice. When the invoice is voided and rebilled, the sync will renumber the second invoice created with the ConnectWise invoice number and a "-a" at the end. If the contract invoice is voided more than once, the renumber process will not work on the subsequent invoices.
5. If you are using the option to post the ConnectWise invoice number into the remarks field, the invoice renumber will not work at this time.
If you want IT contracts to have a separate billing group, you can add one to the contract templates. It is not required, just a way to segregate the IT contracts into a separate group and something we recommend doing.
To create a billing group in e-automate, go to Lists and Codes and select Contract bill groups from the drop-down list:
Assign the bill group to the contract templates and it will then be copied over to contracts created from that template.
The newest version of the sync (2023.06.16 and higher) has options for updating the sales rep on the contract in e-automate. There are two options for updating the sales rep:
1. Pull the sales rep from the customer record in e-automate.
2. Pull the sales rep from a custom field on the agreement in ConnectWise.
For option one, if there is a sales rep assigned to the main customer on the contract, that sales rep will populate in the sales rep field on the contract.
For option two, you'll first need to create a custom field in ConnectWise on the agreement overview called ZCJ_EASalesRep. This field will be populated with the employee number from e-automate for the sales rep:
You'll need to be sure to use the employee number from e-automate and that the employee record is set as a sales rep:
To enable this feature, you'll need to email firstname.lastname@example.org and ask to be updated to the current version and specify which option you want to use to update the sales reps.
The report group on the contract determines what invoice format is used when printing/viewing the invoice in e-automate. We will create four optional report groups for you that you can assign to the contract templates.
The report groups are:
A. CW No Base Rate: Show line items, with no pricing. This invoice template shows the quantity and description of each item on the contract invoice, but does not show the individual line item pricing:
B. CW Details: Show line items and line item pricing. This invoice template shows the line items on the contract, the quantity, and the line item pricing
C. CW No Details: Only shows the billed amount. The last option does not show any of the line items on the invoice, just the total amount charged.
D. CW Full Details: Shows the full details of each item pulled from the ConnectWise agreement. This format is best used when you have multiple items of the same product ID on an agreement as this invoice will show each item description instead of the one rolled up item from the EA contract. **This is a newer format, please email email@example.com to get it installed for you.
CW No Base Rate:
CW No Details
CW Full Details
The sync will populate a message on the contract with the next billing date from ConnectWise (1). This message is set to require acknowledgment in the billing queue (2).
The message is intended to be used as a way to confirm that the contract has been updated by the sync prior to invoicing the contract in e-automate. If the next invoice date in the message matches the billing period date, the invoice has not been updated by the sync and should not be billed. In the above example, the message on the contract indicates that the next billing date in ConnectWise is 8/1/23, meaning that in e-automate the contract should be billing for the 7/1-/31 period. If the contract in e-automate is billing for the 8/1/8/31 period, the contract has not been updated by the sync and should not be billed in e-automate.
Serviceable as an Item
The sync process will add the base and additions from the Connectwise agreement invoice to the eAutomate contract as individual line items. In order to add these items to the service contracts in eAutomate, you will need to enable the option to Allow items to contracts and service calls.
This option is located in Tools\Options:
Click on Contracts (1) and then check the option for Allow items on contracts and service calls (2). You will need to close eAutomate and reopen to see the change.
For items to be eligible to be taxed in e-automate, the additions on the agreement all need to be checked as Taxable:
If this option is NOT checked on the Addition product ID, the sync will check the Override taxable check box on the item on the contract in e-automate:
When the Override taxable option is checked on the line item, no tax will be charged for that item, regardless of the other tax settings in e-automate. To make sure that this box is unchecked in e-automate, you'll need to make sure that the taxable option in ConnectWise is selected.
The tax billed on the e-automate contract invoice is tied to the tax authority on the contract and the tax category that is on the contract base distribution code.
On the contract, the tax code is set on the Billing/Contact tab. For the contract to bill tax, there needs to be a billable tax code entered and the Taxable box must be checked.
These two settings will default to the customer settings when the contract is created.
Every tax code in e-automate is made up of tax authorities, you can have multiple tax authorities on one tax code. The tax authority determines what to charge tax on, based on the tax flags that are added:
Each contract distribution code has a tax category listed:
In order for the contract to charge tax, the tax category on the base distribution code needs to match one of the categories to tax that is listed on the tax authority. For example, if the base distribution code is set with a tax category of MISC and that is NOT a category listed on the tax authority, e-automate will not charge tax on the contract invoice.
The sync will use the default termination code in variable 11 to terminate items that are no longer on the contract. When the item is no longer billed on the contract, the sync will use this termination code and show the item as canceled:
The sync will set the end coverage date and end base billing date to the last day of the month, this is done to stop e-automate from automatically prorating the billing amount for the item, as that proration has already been done in ConnectWise.
As of version 2023.11.06, the sync will also terminate contracts in e-automate when the linked agreement in ConnectWise is set with a termination date, regardless of whether an invoice was generated after the agreement was updated. (You can use ID617 to see a list of contracts canceled each day.)
Proration of Items
Proration of Items
ConnectWise will automatically prorate additions added mid-month, the sync takes this proration into account and makes adjustments to these items on the e-automate contract so that the item on the contract is not prorated again by e-automate.
In ConnectWise, to prorate the additions on the agreement, you need to have the option to prorate checked:
When this option is checked, when additions are added with an effective date of mid-month (1), ConnectWise will automatically calculate a prorated price (2):
When the new item is added to the contract in e-automate, the sync will set the start date on the item to the first of the billing month. This has to be done so that e-automate will not automatically prorate the amount, since the billing amount has already been prorated in ConnectWise.
Invoice Paid in CW
Invoice Paid in CW
The sync has the option to update the invoice in ConnectWise and show it as paid in full when the invoice in e-automate is paid. To utilize this option, set variable Z to yes. When the invoice in e-automate is paid in full:
The sync will then update the invoice in ConnectWise to show that it has been paid in full:
This piece of the integration only works when the invoice has $0.00 due in e-automate. The sync will not post partial payments to the invoice.
* * *
Best Practices & Tips
Best Practices & Tips
Jump to: Annual Agreements | Existing Contracts | Renewing Contracts | Multiple Items | Canceled Agreements | EA Version 21 | Billing Cycle | Contract Not Updated | Zero Dollar Invoices in EA | Invoice Renumber Issues | Bundled Agreements | Product Type Recommendations | Custom Fields
To ensure that annual agreements sync properly, update the Batch settings in ConnectWise from 90 (default) to 400. In ConnectWise, go to System > Setup Tables > Batch:
The agreement sync can be set to push CW agreement invoices to existing contracts in e-automate, though we do not recommend this practice. If you would like to do this, please be aware that the sync cannot update existing line items on the contract. All existing line items will be terminated the first time that the contract syncs with a CW invoice. Additionally, you will need to manually enter the contract numbers in the custom field in CW, being sure to match the contract numbers exactly. (If the contract number is not an exact match, the sync will create new contracts.) See this post for further details on syncing to existing contracts.
The majority of MNS contracts are set with no end date and are allowed to keep billing until the contract is canceled. If an agreement in ConnectWise is set with an expiration date, the best practice to renew the contract is to simply update the end date on the agreement in ConnectWise. When this date is updated, the expiration date on the linked contract in e-automate will be updated when the next invoice is generated.
If a contract that is linked to an agreement is renewed in e-automate, subsequent invoices from ConnectWise will NOT update the renewed contract, but continue to update the original contract. If a contract must be renewed, you will need to send an email to firstname.lastname@example.org with the contract number so that we can break the background linking and allow the agreement to update the renewed contract.
ConnectWise allows you to put the same item on an agreement multiple times, this is not supported on contracts in e-automate. When an invoice has the same item number multiple times, the sync will roll up the price from each of the items and add it to the e-automate contract as one line item. The line item description will show all descriptions from ConnectWise.
In ConnectWise you'll see the same product listed twice:
In e-automate, there will be one item on the contract, with a quantity of 1 and the base rate will be the sum of the price from ConnectWise:
**The below applies if your version of the sync is prior to 2023.11.06. Starting with that version, the sync will check for expired agreements in ConnectWise and then terminate the linked contract in e-automate.
- Agreements that are canceled AFTER THE LAST INVOICE IS GENERATED IN CONNECTWISE will need to be manually terminated in e-automate.
- The agreement invoice is the trigger to update the contract, if the agreement is canceled and no new invoices are generated, the contract in e-automate will not be updated.
- If the agreement in ConnectWise is marked as canceled PRIOR TO THE LAST INVOICE GENERATED IN CONNECTWISE, the sync will cancel the contract in e-automate. A few things to keep in mind on these contracts:
- The status in ConnectWise will show as 'Canceled', there is not a matching status in e-automate so the sync will use the default value of 'Active'.
- The termination code used in variable 11 will be used as the termination code on the contract. We recommend creating a new term code to use with the sync for CW Canceled. For other termination codes we recommend, see this post.
- These contracts will need to be reviewed and properly terminated, as they will show with a status of Active and a termination code.
EA Version 21
In e-automate version 21 and higher, there is an option for the serviceable item to inherit the base distribution code from the contract level:
When the sync adds an item to the contract and the item record has a base distribution code added, this option will be unchecked and the distribution code from the item will be used. If the item added to the contract does not have a distribution code, then this option will be checked and the distribution code from the contract level will be used. There are two scenarios where an item added by the sync will not have a distribution code: 1) There is an existing item in EA where the item number = product ID and this item does not have a distribution code set. 2) The template used to create the item does not have a distribution code set.
Billing Cycle - ConnectWise to e-automate
Please note that you will not be able to bill an agreement in ConnectWise for multiple months at once and have each invoice sync properly over to e-automate. If you are billing multiple months you will need to bill the first month and allow that invoice to sync over to e-automate. Bill the contract in e-automate, then go back to ConnectWise and bill the next month. Repeat the process for as many months as you need to bill.
The process to get your contracts billed properly in ConnectWise and e-automate:
1. Agreements are invoiced in ConnectWise.
2. The sync will pull the agreement invoice information into e-automate.
*If you are using variable 10 to only import agreement invoices of a certain status, review the agreement invoices and update the status. Then the sync will pull the agreement invoices into e-automate and update the contracts.
3. The sync will attempt to match the company and bill to company on the agreement to customer records in e-automate. If the sync is unable to match these customers, the invoice will not import and you'll see either customer not found or bill to customer not found on the ID954 error report.
4. Once the customer is matched, the sync will check to see if the agreement is linked to an existing contract in e-automate (1. In the CEOJuice background tables, 2. Via the ZCJ_EAContractNumber custom field on the agreement). If an existing contract is found, that contract will be updated. If there's not an existing contract, the sync will create a new one based on the matching agreement type template.
5. The sync will go through and set the items on the contract in e-automate to match the ConnectWise billing.
6. The contract will need to be cycled through the contract billing queue to generate a contract invoice and post the revenue.
CREATING THE CONTRACT INVOICE IN E-AUTOMATE PRIOR TO BILLING THE NEXT MONTH IN CONNECTWISE IS THE MOST IMPORTANT THING THAT NEEDS TO BE DONE IN THIS PROCESS!!
**If you need to make corrections to invoices you'll need to void the invoice in e-automate first, then rebill in ConnectWise and let the sync update the contract in e-automate with the new invoice. Then bill the contract in e-automate.
Troubleshooting a contract that didn't update:
1. Check the ID954 report for any errors. The ID954 report is accessed via the SSRS console, see here for more details on this report.
2. Sometimes the contract in e-automate is marked as inactive or terminated, and therefore will not show up in the billing queue. Go to the contract list and search for the CW invoice in the Blanket PO field:
3. Check to see if the billing cycle used on the agreement in ConnectWise exactly matches the billing cycle in e-automate. Details on matching the billing cycles here.
4. Have the default item or contract templates been made inactive or deleted? Those default templates need to be in place in order for the sync to function properly.
5. Try updating the invoice in ConnectWise to get it to sync again. The sync checks for invoices that have been updated in ConnectWise since the last time that the sync ran. Updating the invoice in ConnectWise moves the Last Updated date forward and causes the sync to "see" the invoice again. The easiest way to do this is to change the billing status on the invoice (1) and click on the save button (2):
You can then switch the billing status back to what it was to begin with and save and close the invoice.
If none of these tips get the invoice to sync, please send the invoice number to email@example.com.
Zero Dollar Invoices
Zero Dollar Invoices
If you are billing contract invoices in e-automate and notice that the invoice shows for zero dollars, the most likely reason is that the contract was billed in e-automate before the sync updated the contract. To check for this, open the contract and see if the Billed through date is AFTER the billing on date:
If the Billed through date is AFTER the billing on date, this indicates that the contract was invoiced in e-automate for the billing period, and then updated by the sync. In the example above, the contract was billed for the 11/1 to 11/30 period and then updated by the sync. The sync will set the billing period back to match the billing period on the ConnectWise invoice. For more details on the billing period, see this link.
Check the contract invoices for the contract and see if there are multiple invoices for the same billing period.
These invoices will all need to be voided and reset, then the contract can be billed with the correct information to match ConnectWise.
Invoice Renumber Issues
Invoice Renumber Issues
If the invoice renumber process didn't change the invoice number in e-automate, the most likely reason is that the contract was billed in e-automate prior to the sync updating the contract. To check for this, open the invoice that didn't renumber and check the PO number:
Is the PO number the current invoice number from ConnectWise, or is it the previous month's invoice number? If the PO number is the previous month's invoice number, the sync will be unable to renumber the invoice as it's trying to renumber to an invoice number that already exists in e-automate.
If you are not sure, check the PO number that is currently on the contract:
If the PO number on the contract does not match the PO number on the invoice, that means that the sync has updated the contract since the invoice was created. This usually indicates that the contract was billed prior to being updated by the sync.
To correct this issue, you will need to void and reset the invoice in e-automate and then rebill the contract. The new invoice should be generated with the new invoice number in the PO field and the sync will be able to renumber the invoice.
If the contract invoice that didn't renumber does show the current invoice number from ConnectWise, please send an email to firstname.lastname@example.org with the invoice number from e-automate.
Bundled Agreements/Group Billing
ConnectWise allows you to bundle agreements together so that your customer will only receive one invoice. To bundle the agreements together, they must have the same billing cycle, tax code, and terms. You'll have one parent agreement and then assign other agreements to be billed with that agreement. The bundled agreements will be child agreements to the main agreement.
To bundle the agreements in ConnectWise, go to the agreement that will be the parent agreement and click on the Agreements tab. This will show you all agreements for the company:
Select the agreements that will become the child agreements by checking the box in the Attach column. Once the agreements are set as a child agreement, you'll see that the additions from the child agreements show on the Addititions tab:
The level column will show the specific agreement name for any child agreements. The level column will be blank for any additions that are on the parent agreement.
Once an agreement is set as a child agreement, it will no longer show in the main agreement search.
When this agreement is billed in ConnectWise, the additions from all agreements will bill on one invoice. The sync will then create ONE contract in e-automate, with the additions from all child agreements listed. (Everything from the ConnectWise invoice will match to the items on the e-automate contract.)
If you have agreements in ConnectWise that can't be bundled, you can also group bill the contracts in e-automate so that your customer will only receive one invoice. Contracts in e-automate can be group billed as long as they have the same customer (1), bill to customer (2), and billing group (3). The contracts must all have the same billing cycle. To group bill, you'd check the option to Group invoices according to customer, bill to, etc (4):
To use the group billing in e-automate, you would keep each agreement in ConnectWise separate and bill them on separate invoices. The sync would create individual contracts for each agreement in e-automate, when the contracts are processed in the billing queue, one invoice would be created for all contracts that are grouped together.
If you use the group billing option in e-automate, the invoice renumber process and invoice paid process will not work.
**One thing to note, e-automate will not allow block time (deposit) contracts to be group billed with recurring monthly (installment) contracts.
Suggested Product Types
See this post for how to set up an agreement in Connectwise with a minimum base.
Custom Field Set-Up
To create the custom fields, go to the Setup Tables and choose Custom Fields from the list:
Section: Agreement Overview
1. Enter ZCJ_ContractNumber in the Field Caption.
2. Check the box for Display on Screen?
3. Check the box for Include on List View?
4. Click the Save and Close button
Section: Agreement Overview
Click on the plus icon to create a new custom field
1. Enter ZCJ_EASalesRep in the Field Caption.
2. Check the box for Display on Screen?
3. Check the box for Include on List View?
Section: Agreement Additions
Click on the plus icon to create a new custom field
1. Enter ZCJ_EALocation in the Field Caption.
2. Check the box for Display on Screen?
3. Check the box for Include on List View?
Section: Product Overview
Click on the plus sign by Custom Fields to add a new field and use the Field Caption ZCJ_ItemNumber:
Again, select the checkboxes for Display on Screen and Include on List View. Then click on the save and close button to save the new record.
* * *
ID747 - Connectwise Customer Sync
ID954 - SSRS Report for Agreement Sync details
ID965 - Connectwise Service Call Sync
ID966 - Connectwise Sales Order Sync
* * *