(Effective with the release of v.38.0 on February 28, 2025).
Because of the complex dependency relationships among the various elements of the project being bi-directionally synced, syncing each of the relevant elements within a project is crucial to ensure that dependent records are not missed. For instance, if a new time entry is created in ConnectWise, we need to ensure that the ConnectWise ticket has been brought over into Moovila beforehand, even if we did not receive a webhook notifying us of its creation.
To avoid unnecessary API requests and processing, the sync process is run in two different modes: Delta Sync and Comprehensive Sync.
- Delta Sync mode: This is the most commonly run sync. Upon beginning processing, this generally looks at what elements within the synced project have changed across both systems since the completion of the last sync and performs the appropriate reconciliation action on those elements to ensure that both systems match.
- Comprehensive Sync mode: Because deletions in ConnectWise don't produce webhooks for certain elements, these tend to be missed during Delta sync processing (querying for records which have changed since the last sync won't return records which no longer exist), so a more exhaustive and thorough pull of project elements is needed to reconcile anything that may have been missed during the Delta sync. The Comprehensive sync for a project is executed roughly every four hours as a catch-up mechanism.
After a project's Delta sync is completed, another Delta sync is not eligible to be kicked off until 10 minutes after the sync's completion time. Any sync trigger (webhook from either system or a manual sync request from a user) that occurred during this 10-minute ineligibility window will be placed into queue for syncing once the window has concluded.
You can determine the status of a project sync by referring to the "Sync Status" field in this dialog. Here are the four statuses available:
- Idle: The sync is not running and there is not an outstanding request for syncing of the project
- Requested: A data change on the project change occurred in either system or a sync was manually requested, but the project is currently within a sync ineligibility window
- In Queue: A sync request has been placed in queue for processing, but hasn't yet begun
- Syncing: The sync process, Delta or Comprehensive, is currently underway
Troubleshooting:
There are a few nuances to the sync process that may be useful to understand:
- If the same object (other than a schedule entry) is changed in both systems, between 10 minute syncs, the last to change wins.
- If a schedule entry is changed in ConnectWise, then changed in Moovila, Moovila always wins.
- Note that after 90 days with a status of "Completed" or "Cancelled," a project's sync will automatically be paused. This can be updated under Advanced Settings in the Integration Configuration dialogue.
-
When a project's project board is changed in ConnectWise, it changes over all of the ticket statuses, but it doesn't auto-adjust the tickets' ticket types since there isn't any mapping/translation between the types of one board and another. So, on the backend of ConnectWise the tickets are still referencing the ticket type ID of the old project board.
For example, if there is a ticket type of "Project Service" on Board A. Then the project is switched to Board B which also has a ticket type named "Project Service." The difference is that these are two separate records with different IDs, so while on the UI it looks like it is properly set, every ticket in ConnectWise would need to be opened and resaved so that they are now saved down with the ticket type ID of "Project Service" from the new board. Without doing that, the ticket type ID on the tickets is still the old one, and since the Moovila integration doesn't send ticket type, when the CW API attempts to save whatever changes are attempting to send, it returns an exception and doesn't save any of the requested changes.
Comments
0 comments