Skip to content
Current/ Help Center

Prepare your ConnectWise before onboarding: the setup checklist

10 min read · Updated Sep 10, 2026

Current's ConnectWise connection is deep — it reads companies, contacts, agreements, opportunities, projects, tickets, members, and time, and writes back to most of them. That depth means the quality of your first sync is decided in ConnectWise, not in Current. This is the article to read before you paste a single credential: what to create, what to check, and what to clean up, so the first pull and the first push both land.

Work through it in order, and use the "You're ready when…" checklist at the bottom as your sign-off. For the connection walkthrough itself, see "Connect ConnectWise PSA and choose what syncs". For the field-level detail on what maps where, see "ConnectWise sync: the complete field-mapping reference".

Note
You don't need a ConnectWise developer account
ConnectWise requires every API call to carry a clientId that identifies the integration making it. That registration belongs to the integration vendor, not to the MSP running it — so it's ours, it's already done, and Current sends it on every request for you. You never register on the Developer Network, nothing is pasted into Current, and ConnectWise's own guidance is that you should never be asked for one by a packaged integration. Everything below happens inside your own ConnectWise.

Step 1 — Build a least-privilege security role

A ConnectWise API Member carries a security role, and that role is exactly what the API keys can do — no more, no less. Create a dedicated role for Current before you create the member (System → Security Roles → the + button, name it something like Current API), and grant it only what the sync needs. The table below is the whole list, module by module, in the order ConnectWise shows them.

ConnectWise module → permissionGrantWhat Current uses it for
Companies → Company MaintenanceInquire: All. Add + Edit: All if you turn on CRM write modeReads companies, company types, and statuses; with CRM write mode on, creates and updates companies
Companies → ContactsInquire: All. Add + Edit: All if you turn on CRM write modeReads contacts; with CRM write mode on, creates and updates them
Companies → Documents (and Sales → Documents)Inquire: All. Add: All if you use the Win Quote wizardThe Files chip on a company record, and filing a signed quote PDF onto the company when a quote converts
Sales → OpportunityInquire: All. Add + Edit: AllReads opportunities and their stages and statuses; pushes deals, won/lost status, and opportunity notes
Project → Project HeadersInquire: All. Add: AllReads projects, boards, statuses, and phases; creates a project (and its phases) from a won quote
Project → Project TicketsInquire: All. Add + Edit: AllReads project tickets as tasks; pushes dates, status, assignments, new tasks, and task notes
Service Desk → Service TicketsInquire: All. Add + Edit: AllReads service boards, priorities, and ticket history for account insight; creates a post-sale ticket from a won quote; pushes ticket dates, status, and notes
Service Desk → Service SurveyInquire: All, only if you use ConnectWise's own surveys for CSATReads service surveys, their questions and their results, so ConnectWise CSAT feeds the company record, the dashboards, the SBR pack, the alerts and the churn flag. Older versions of ConnectWise list the same access as Companies → Surveys — grant whichever your role list shows. Never written
Time & Expense → Time EntryInquire: All. Add: AllReads time for profitability; logs time entered in Current. It must be All, not My: the API Member logs time on behalf of your members
Finance → AgreementsInquire: AllAgreements and additions for MRR, coverage, and the renewal dossier. Never written
Finance → InvoicingInquire: AllInvoiced amounts for the profitability split. Never written
Procurement → Product CatalogInquire: All. Add: All if you use the Win Quote wizardReads products on quotes; creates a catalog product when a won quote line has none
Schedule → ScheduleInquire: AllMembers' time off and company holidays, so timelines skip days nobody is working
System → Member MaintenanceInquire: AllThe staff roster, matched to Current users by email. The connection test reads this first, so a role without it fails the test
System → Table SetupInquire: AllWork roles, work types, board statuses, priorities, and communication types (the lookups the time-entry guard validates against)
System → My AccountInquire: AllLets Current recognize its own writes coming back in a poll so it skips them instead of re-importing them
  • Every level above is All, not My. An API Member is never the owner of the records it reads, so a My-scoped permission returns nothing.
  • If you leave two-way sync and CRM write mode off, the Add and Edit levels on Companies, Contacts, and Opportunity can stay off too; Current only pushes where you have switched pushing on.
  • Skip everything else — unless you switch on PSA surveys, which needs the Service Survey line above. Expense, HR, Marketing, Procurement beyond the product catalog, and every System permission not listed are not needed. The survey line is only read once a Tenant Admin turns on "Satisfaction surveys" in the ConnectWise drawer; see "Use your PSA's built-in surveys for CSAT".
Heads up
A permission gap looks like missing data, not an error
ConnectWise answers a request for a record outside the API Member's role scope with a plain not-found — the same answer as a record that genuinely doesn't exist. So an under-permissioned role doesn't produce a red error; it produces an area of Current that's mysteriously empty after a successful-looking sync. If data you know exists isn't arriving, check the security role before anything else.

Step 2 — Create the API Member and mint the keys

  1. 1
    Create the API Member
    In ConnectWise PSA: System → Members → API Members tab → the + (new) button. Fill in the required fields, assign the security role from Step 1, and Save. API Members are API-only — they can't sign in to the interface and don't consume a ConnectWise license seat.
  2. 2
    Mint the API keys
    Reopen the member, go to the API Keys tab, press +, enter a description like Current sync, and click Save — not Save and Close. The Public Key and Private Key appear on that screen, and the private key is shown exactly once. Copy both into a password manager before you leave the page; a lost private key means minting a new pair.
  3. 3
    Name it recognisably
    Something like current-sync. Every write Current makes shows up in ConnectWise attributed to this member — which is also how Current recognizes its own edits coming back in a poll and skips them instead of re-importing them.

Step 3 — Find your company ID and site URL

The company ID isn't generated anywhere — it's the value your team types in the Company field on the ConnectWise login screen. The site URL is the host you sign in at: na.myconnectwise.net, eu.myconnectwise.net, aus.myconnectwise.net, or your own hostname if you're on-premises. That's all Current needs — it derives the API address and version path automatically from ConnectWise's own site-discovery endpoint, and re-resolves them whenever ConnectWise moves your instance during an upgrade.

Note
The full credential set
Four values you gather: site URL + company ID + public key + private key. The first two are not secrets; the key pair is. That's the whole set — the connect screen has exactly those four boxes, and the integration identifier described at the top of this page is handled by Current.

Step 4 — Service-board hygiene

Current reads your service boards for company ticket history — the support record behind sentiment, SBR statistics, and AI account insight. Most ConnectWise instances have boards that hold machine noise rather than customer work: alerts and monitoring, RMM automation, backup jobs, spam and internal IT. Current's board-noise toggles flag the usual suspects as Recommended off but never mute a board for you — you decide, in the setup wizard's mapping step or later under Integrations → ConnectWise PSA → Manage.

  • Know which boards hold real customer conversations before your first sync, so the noise never distorts your stats.
  • Muting a board hides its tickets in Current immediately; nothing is deleted, and nothing changes in ConnectWise.
  • Closed-status hygiene matters too: Current maps a board status to done when ConnectWise itself flags it as a closed status, so a board whose "finished" status isn't flagged closed will show its tickets as forever open.

Step 5 — Member emails must match Current sign-ins

Everything personal in Current — logging time, My Day, an account executive's CRM book — hangs off one link: the ConnectWise member ↔ Current user match. Current makes it automatically on a lowercase email comparison between the member's email in ConnectWise and the person's Current sign-in email. That is the only automatic match; there is no name-based fallback.

  • Give every human member a real email in ConnectWise that exactly matches their Current sign-in email (case aside).
  • Inactive members are not pulled, so they can't be linked at all.
  • If an email genuinely differs, a tenant admin links the person by hand in Users & roles — deliberately admin-only, because claiming a member identity is a security decision.
  • Unlinked people are blocked from logging time and see an empty My Day, so this is the highest-value step to get right.

Step 6 — The Current-side gates

  1. 1
    CRM write mode starts at OFF
    Every CRM write to ConnectWise — companies, contacts, notes, deals — is blocked until an admin opts in. Off means no CRM writes at all.
  2. 2
    Create a test company for the middle rung
    Test mode allows CRM writes only against companies whose live ConnectWise name starts with "ZZ-Current Test". Create one now so your team can exercise the whole flow without touching a real account, and flip to live only after test writes have landed correctly.
  3. 3
    Map your pipeline stages
    Pushing a deal to a ConnectWise opportunity requires a mapping from each Current pipeline stage to a ConnectWise opportunity stage. Set it in the Manage drawer before your first deal push, or you'll get "This deal's stage isn't mapped yet."
  4. 4
    Check the two-way sync switch
    It controls task-field pushes. Decide its position deliberately as part of your go-live plan rather than discovering it later.

You're ready when…

  • A dedicated API Member exists with a least-privilege security role: read on everything Current pulls, add/edit only on what you'll push.
  • The public and private keys are minted and saved — you copied the private key before closing the screen.
  • You know your company ID (the login screen's Company field) and your site URL.
  • Every person who will use Current has an active ConnectWise member whose email matches their Current sign-in email, exactly (case aside).
  • You know which service boards are machine noise, so you can mute them in the mapping step.
  • Board "finished" statuses are actually flagged closed in ConnectWise, so done means done.
  • A "ZZ-Current Test" company exists in ConnectWise for the CRM write-mode test pass.
  • Pipeline stages are mapped before the first deal push.
  • If you plan to use ConnectWise's own surveys for CSAT, the security role carries Service Survey: Inquire All (or Companies → Surveys on an older instance).
Tip
ConnectWise doesn't publish a fixed API quota
Unlike Autotask's hourly threshold, ConnectWise throttles bursts as they happen. Current paces itself — a small number of concurrent requests, large pages, and automatic backoff whenever ConnectWise asks — so you shouldn't need to think about limits. Still, kick the first big pull off when someone's around to read the warnings, not at 4:55pm on a Friday.
Was this helpful?