Integration to sync approved sales orders from Connectwise Manage to eAutomate.
See here for getting started with the sync.
Tools like ConnectWise Sell allow salespeople to see real-time costs and availability for the IT products they sell. Once their quote is approved in Sell, the items need to be ordered via eAutomate while keeping the salesperson updated on the status of their order. The sync will push the order into eAutomate for ordering and then you can use ID348 to keep everyone notified on the status of the order, you can use a clone & variable 3 for order type to just work the Managed IT orders.
We are syncing an approved sales order in CW Mange to an open sales order in eAutomate. Use Variable 1 to tell us the CW Sales Order Status that will prompt the sync to eAutomate. Note we do not support changes to the order once set to this status. We first check to see if all the items on the order exist in eAutomate (product ID in CW to the item number in EA). If the items do not exist, the sync creates the items and then creates the sales order. Attachments on the order in Connectwise will be brought over and attached to the sales order in eAutomate.
There are several default values that will need to be set up prior to testing, see those listed here. As with the agreement sync, we would initially set up the sync to push orders to your test eAutomate so you can review how the orders are coming in before moving to production.
When a quote is created in CW Sell, the Opportunity Summary field has a description of what the order is for. Once the quote is approved by the customer, the opportunity is turned into a CW Sales Order. The Opportunity Summary field from the quote would transfer to the Opportunity Summary field on the sales order and the CW order status would be New. This Opportunity Summary field will sync to EA as the sales order description. A vendor quote is included as an attachment to this quote in Sell and if also attached to the sales order in CW will transfer to the Sales Order in eAutomate.
Run Schedule: Every 15 minutes
Type of Output: Data push
* * *
Example Sales Order:
1. Number: The Connectwise order number with the prefix set in Variable 5.
2. Description: The description from the order in Connectwise. We also add in the subtotal amount from the order in Connectwise as a way to quickly see that the amounts match between Connectwise and eAutomate. Once you have reviewed the order you can delete this from the description line.
3. Order Type: the order type will match what is set in Variable 7. If you want to have more than one order type option, you will need to create a custom field in ConnectWise with a drop-down of the different options. These options need to exactly match to eAutomate. See details on that here.
4. Sales Rep: The sales rep will match to Connectwise if a match exists (Member Rec ID from ConnectWise in eAutomate custom prop, details on that here). If there is no match, the order will default to the rep set in Variable 3.
5. Branch: The branch will default to the branch for the customer unless you specify a branch to use in Variable 6.
6. Warehouse: The warehouse will be the warehouse set in Variable 4. If there is not a warehouse set in Variable 4, the order will use the customer branch default warehouse. More details on warehouse setup here.
7. Department: The department will be blank unless you have specified a department to use in Variable 8.
8. Status: The order status will match to Connectwise if there is a matching status in eAutomate. If no exact match between the two systems, the status specified in Variable 10 will be used. More details on order status here.
9. The line items from the order in Connectwise will show as individual line items on the eAutomate sales order.
The Bill to and Ship to customers will be populated to match the Connectwise order, as long as there are matching values in eAutomate. (Use ID747 to specify where you store the eAutomate customer number on the Connectwise company record.).
1. The Ship method will default to the shipping method for the customer. If you want the order to have a different shipping method, you can set up a custom field in ConnectWise with drop-down options. See details on that here.
Attachments from the order in Connectwise will import and be added as an attachment to the order in eAutomate. To find the attachments, first, click on the Attachment icon in the bottom left of the order:
This will open the attachments window and show you the attached documents on the order:
Double click on the document to view it:
* * *
Variable 1: SalesOrder Status - What status of the sales order in Connectwise should trigger the integration to move the order to eAutomate. More details on order status here.
Variable 2: Post Sync Status - Change the status of the sales order in Connectwise to this status after the order has been imported into eAutomate. The default value is Synced, DO NOT EDIT. **You will need to create this order status in ConnectWise if you choose to use it, see notes on how to do that here.
Variable 3: Default Sales Rep - Always default imported orders to have this sales rep. If blank, the sales rep will match the Connectwise sales rep, if there is a match. If there is no match between EA and CW, the sales rep will default to the sales rep for the customer in EA.
Variable 4: Default Warehouse - Warehouse to use for all imported sales orders. If blank, the Sales Orders Customer branch default warehouse will be used. More details on warehouse setup here.
Variable 5: SalesOrder Prefix - The imported sales order will reflect the Connectwise order number with the prefix set in this variable. (We can't use the CW number directly as there may be an existing order with that number). The default value is CW. (for Example, the CW order number is 1234, the order will import to eAutomate as order number CW1234).
Variable 6: Default Branch - By default, the sales orders will inherit the branch from the customer, leave this variable blank to use the customer branch. If you would like all imported sales orders to use the same branch, specify the branch number here.
Variable 7: Order Type - Default order type to use for all imported orders. All orders imported from Connectwise will use this type. If you would like to have multiple order types, you'll need to set up a custom field in ConnectWise, see details on how to do that here. If not provided, Orders will use the default order status for imported sales orders.
Variable 8: Department Number - Optional department number for all imported sales orders.
Variable 10: Order Status - Optional default order status for all imported orders. If provided, all orders imported will use this status. If not provided, orders will use an eAutomate status that matches the CW order status. Order statuses must match exactly and be maintained in both systems. More details on order status here.
* * *
1. Subscribe to both ID747 and ID966, being sure to update the variables as needed. Review the variables in this section and be sure to update all of the required ones! If you don't have a login to our subscription site, you can email firstname.lastname@example.org to have us set you up with a login.
These next three steps may need an IT person with admin access to ConnectWise and eAutomate. These three steps should already be in place if you have tested other portions of the sync.
2. Create API keys for CEO Juice in ConnectWise and enter them on the CEO Juice website (See this link for instructions on how to do that)
3. We do require that the initial sync goes from your production ConnectWise database to a Test/Development EA database, so you will need to have a test eAutomate database set up for this process. If you have a test ConnectWise database, we can initially sync from that, but it is not required. (This sync process only pushes information from ConnectWise to eAutomate while in test). **It's important that this test eAutomate database is not refreshed with new data during the testing process!!
4. We also require a test copy of our CEO Juice database to be created for the testing phase. See this link for details on how to do that.
There are several default values that are needed for the sales order import to work correctly, most of these can be entered on the ID966 variables, but there are some that CEO Juice will need to enter in the background table that pushes the sales orders into eAutomate.
5. Default values for the CEOJuice background process, these need to be sent to email@example.com to be updated.
- Order Status - Default status used for any sales order imported by CEOJuice process.
- On Hold Code for Errors - Orders with errors will be put on hold and the errors noted on the remarks tab of the order. Suggested On Hold code is: Error on SO Import. See more details on the on-hold code here.
- Ship method - Default to be used when the shipping method is not mapped from ConnectWise.
- Dropship method - Default to be used when the shipping method is not mapped from ConnectWise.
- Customer - This customer will be used if the customer on the order in ConnectWise is not mapped to an eAutomate customer
6. Custom fields to be set up in ConnectWise:
- ZCJ_Order_Type - If you want to have multiple order types pushed into eAutomate. See here for how to set up.
- ZCJ_ShipMethod - If you want to have multiple options for shipping methods beyond the default shipping method. See here for how to set up.
- ZCJ_EAStatus - If you want to have the status of the sales order in eAutomate update in ConnectWise. See here for how to set that us.
Once all the above steps are completed, please let us know. We will then run our PreFlight app that will create the item templates in your test eAutomate database. (These templates may already be in your system if you have installed the agreement sync)
7. After the templates are created, you will need to code the item templates with the proper codes. See notes on what needs to be updated on the templates here.
Once you have notified us that the templates have been updated, we can run the sync and pull in the sales order for you to test. We recommend changing two or three orders in ConnectWise to the status you've specified in Variable 1.
8. You will then review the orders created to check that everything imported correctly. A few things to review:
- The description line of the order will show the total amount, does this match to the total on the order?
- If there were any attachments on the order in ConnectWise, did those sync over correctly?
- All items on the order in ConnectWise show on the order in eAutomate?
- After fulfilling the order, are the proper revenue accounts being used?
After confirming that everything is syncing properly, we will move the templates to your production eAutomate and repoint the sync to production to push in the sales orders.
* * *
For inventory items our templates need many more codes, we will create the template shell (similar to agreements) but we need you to address these additional fields;
If there is only one Order Type that you want to use for all ConnectWise orders, you can enter this order type in Variable 7 on the alert. Order Types can be found in eAutomate in Tools - Lists and Codes - Sales order types:
If you would like to have multiple order types for the ConnectWise sales orders, you can do this by setting up a custom field in ConnectWise with a drop-down list of the order types. This custom field must have the name ZCJ_Order_Type.
To set up a custom field in ConnectWise, go to Setup Tables - Custom Fields - Sales Order Overview, then click on the plus button to add a new field.
The options you set in the drop-down in ConnectWise must match exactly to the order types in eAutomate.
The default ship method that will be used on the sales orders will be the default setting on the customer:
If there is no ship method set on the customer record, the default ship method set in the CEOJuice background table will be used. If you would like to set the shipping method to something different than the default, you can accomplish this by creating a custom field in ConnectWise. This field must be named ZCJ_ShipMethod.
To set up the custom field in ConnectWise, go to Setup Tables - Custom Fields - Shipping Information and click on the plus sign to add a new field.
The options that you set on the custom field in ConnectWise must exactly match your shipping methods in eAutomate. Shipping methods can be found in eAutomate by going to Tools - Lists and codes - Shipping methods:
CW allows for a check box on the line item to indicate that line is drop ship, eAuto only allows one ship method per order. If we find an order with a mixture of drop-ship and non-drop-ship items we will break it into two orders and add DropShip to the end of the sales order normal description.
You can create statuses for the orders in ConnectWise by going to Setup Tables - Sales order Status List:
Choose one status that will be the trigger for the sync to push the order to eAutomate. This value will be entered in variable 1. If you would like to have the sync update the status in ConnectWise after the sales order has been created in eAutomate, enter that status name in variable 2 and create that status in ConnectWise. We suggest Synced, DO NOT EDIT.
**Note that once the order has been moved to the status set in Variable 1 we do not support changes made to the order in ConnectWise. If you need to make changes, you'll need to do a change order and create a new sales order.**
When the order is pushed into eAutomate, if the status from ConnectWise matches an existing status in eAutomate, that status will be used. Otherwise, the order will use the default order status you enter in variable 10.
Statuses in eAutomate are found in Tools - Lists and codes - Sales/RMA order statuses:
If you would like the status of the order in eAutomate to update on the order in ConnectWise, you'll need to create a new custom field called ZCJ_EAStatus. To create the custom field, go to Setup Tables - Custom fields - Sales Order Overview and click on the plus sign to add a new custom field.
The sales order status here in eAutomate will update this field:
Warehouse to default to is ID966 Variable 4, if blank, Item bin default ( from template), then Branch default.
Sales reps need to be mapped exactly between Connectwise and eAutomate. If the sales rep on the order in ConnectWise is not mapped, the default sales rep set in variable 3 will be used. This is done by entering the Member RecID from ConnectWise into a custom property in eAutomate. (**If you have previously mapped the employee number from eAutomate to the employee ID field in ConnectWise, we can move this data from ConnectWise to eAutomate for you.)
Create the custom property in eAutomate:
Go to Tools - Lists and Codes - Attributes and then click on new:
Attribute name: ZCJ_CW_EmpRecordID
Description: ConnectWise Sync Member ID
Data type: Numeric
The value to be entered in the custom property is the Member RecID from ConnectWise:
On Hold Code
* * *
Best Practices & Tips
Best Practices & Tips
Like our Agreement/contract sync, we use Product Types and item templates in eAutomate to determine what GL codes the sales order in eAutomate will post to. A Product in CW is an Item in eAutomate. We suggest you use different Product Types for sales orders even though you may have a Product Type on an agreement that is similar.
We believe these 4 product types should work for most clients (Sales Orders only).
Material sales would include supplies like cabling etc, consumed on a project.
Sales orders with errors on the import will come in as on hold - Errors on SO Import:
The specific error that caused the order to be on hold will be included in the Remarks tab of the sales order.
* * *
ID747 - Connectwise Manage Customer Sync
ID964 - Connectwise Manage Agreement Sync
ID965 - Connectwise Manage Service Call Sync
* * *