What Current writes back to ConnectWise (and when)
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" (older "ZZ-Cascade Test" names still count); 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 a deal 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.
