What Current writes back to ConnectWise (and when)
Every action in Current that writes to ConnectWise, the gates in front of them, verify-after-write, and what a push can never touch.
On this page · 7 sections
Current pulls a lot from ConnectWise, but it also writes back, task schedules, status changes, comments, time entries, and CRM activity all flow the other direction once you allow them. This page lists exactly what triggers a push, the gates in front of every write, and the hard boundaries Current never crosses. For the full pull-side field reference, see "ConnectWise sync: the complete field-mapping reference".
The gates, in order
- 1Only ConnectWise-synced projects ever pushA Current-native project makes no ConnectWise calls at all, and a project synced to a since-disconnected PSA is frozen, the engine refuses cross-provider operations outright.
- 2The two-way sync switch governs task fieldsIntegrations → ConnectWise PSA → Manage. It controls the task-field pushes and field-by-field conflict resolution. Its position is per workspace, check it deliberately as part of your go-live plan.
- 3CRM write mode governs every CRM writeOff by default, no CRM writes at all. Test mode allows writes only against companies whose ConnectWise name starts with "ZZ-Current Test"; live mode is an explicit admin action, taken after test writes have landed correctly.
What triggers a push, by entity
| Your action in Current | What's written to ConnectWise |
|---|---|
| Drag a task to a new date on the Timeline or Schedule | The project ticket's new start and end dates |
| Change a task's status (Kanban or task drawer) | The ticket's board status, through your status mapping |
| Edit a task's synced fields (with two-way sync on) | That field's new value, if your edit is newer than ConnectWise's last change to it |
| Comment on a task | A note on the project ticket |
| Save a time entry | A new ConnectWise time entry charged to the project ticket, with the work role, work type, and agreement you picked |
| Create or edit a CRM company, add a contact, or log a note | The matching ConnectWise record (gated by CRM write mode) |
| A new lead arrives (website form or added by hand) | A new ConnectWise company typed as a Prospect, plus its contact. Unless the lead matched a company you already have, in which case it's linked and nothing new is created. A lead imported from a saved list is never pushed |
| Create an opportunity or move it to a new pipeline stage | A new or updated opportunity, through your stage mapping |
| Convert a won quote | The project or ticket build, product charges, and the opportunity's move to your Converted stage |
| Click "Build in ConnectWise" on a Current-native project or playbook | A brand-new ConnectWise project, with its phases and project tickets |
How Current writes: precise patches, never blanket updates
Every update Current sends to ConnectWise is a surgical patch naming only the fields that changed, never a full-record replacement. That's a safety property, not a detail: a full-record write can blank fields the sender didn't know about, and Current's patches physically can't. Creates return the new record, and Current stores the id mapping immediately, so a retry can never create a duplicate.
Verify-after-write: no silent successes
After every push, Current reads the record back from ConnectWise and compares what landed against what it sent. A write that ConnectWise accepted but quietly adjusted (a clamped date, a defaulted field) is reported as a residual, not swallowed. And if a push fails, the error surfaces ConnectWise's real message, never a generic "sync failed."
Time entries and billing
- Time entries are create-only: Current writes a new entry and never edits or deletes one that already exists in ConnectWise.
- An invoiced time entry is untouchable. ConnectWise rejects any edit to an entry that's on an invoice, and Current treats that rejection as final. It will not retry, because no retry can succeed.
- After a push, the entry's billing and invoice status is read back on a cycle, and Current only ever promotes an entry toward approved and invoiced, never demotes one.
Retry and dead-letter behavior
- Retryable failures (throttling, timeouts, temporary ConnectWise errors) retry automatically with increasing delays.
- After 5 failed attempts, a job is marked dead-letter and stops retrying on its own. It needs a person to look at it.
- Validation errors and permission errors are never auto-retried. These need a fix, not a delay.
- CRM pushes notify your sales leadership once a push has dead-lettered, so it doesn't sit silently.
What a push can never touch
- Agreements, additions, and anything else in your billing structures, read-only in every direction.
- Invoiced time entries, and hours already approved and posted.
- The product catalog, charges reference catalog items; they never create or reprice them.
- Records outside the API Member's security-role scope. ConnectWise's own permissions are the final gate.
- Anything at all while the relevant gate (two-way sync, CRM write mode) is closed.
This boundary is intentional: billing accuracy depends on ConnectWise staying the single source of truth for anything that touches an invoice. See "Reading the sync health dashboard (and fixing a stale sync)" for where failures surface.
