Skip to content

ConnectWise PSA Setup

ConnectWise PSA is Junto's primary integration. It syncs tickets, companies, contacts, and time entries, providing the foundation for signal triage.

Prerequisites

  • A ConnectWise PSA instance (cloud or on-premise)
  • An API member account with appropriate security role permissions
  • Your ConnectWise Company Identifier and base URL

Step 1: Create a Security Role

  1. In ConnectWise, go to System > Security Roles and create a new role named Junto.
  2. Configure the permissions below. Actions not listed can be left at None.

Companies

ActionAddEditDeleteInquire
Company MaintenanceAllAllNoneAll
Company/Contact Group MaintenanceAllAllAllAll
ConfigurationsNoneNoneNoneAll
ContactsAllAllNoneAll
Manage AttachmentsAllNoneNoneAll

Finance

ActionAddEditDeleteInquire
AgreementsNoneNoneNoneAll
Company FinanceNoneAllNoneAll
InvoicingNoneNoneNoneAll

Procurement

ActionAddEditDeleteInquire
Product CatalogNoneNoneNoneAll
ProductsAllNoneNoneAll

Sales

ActionAddEditDeleteInquire
OpportunityAllNoneNoneAll
CRM/Sales ActivitiesAllNoneNoneAll

Service Desk

ActionAddEditDeleteInquire
Close Service TicketsNoneAllNoneAll
Merge TicketsAllNoneNoneAll
ReportsNoneNoneNoneAll
Resource SchedulingAllNoneAllAll
Service Ticket - FinanceNoneNoneNoneAll
Service TicketsAllAllNoneAll

System

ActionAddEditDeleteInquire
API ReportsNoneNoneNoneAll
Manage Hosted APINoneNoneNoneAll
Member MaintenanceNoneNoneNoneAll
My CompanyNoneNoneNoneAll
Table SetupNoneNoneNoneAll
Table Setup > CustomizeAllAllAllAll

Note: For Table Setup > Customize, click Customize to open the security dialog and restrict access to only Service / Email Connector, Service / Priority, and Service / Service Board. Move all other items to the "Disallow Access to these" list.

Table Setup Customize — allow only Service / Email Connector

Time & Expense

ActionAddEditDeleteInquire
Time EntryAllAllAllAll
Time Entry Billable OptionAllAllAllAll
ReportsNoneNoneNoneAll

Optional / Future Permissions

Pre-configure these for upcoming features. Not currently required.

ModuleActionAddEditDeleteInquire
CompaniesNotesNoneNoneNoneAll
CompaniesTeam MembersNoneNoneNoneAll
SalesClosed OpportunityNoneAllNoneAll
SalesOpportunity FinanceNoneNoneNoneAll
SalesReportsNoneNoneNoneAll
SalesSales DashboardNoneNoneNoneAll
SalesSales FunnelNoneNoneNoneAll
SalesSales Order FinanceNoneNoneNoneAll
SalesSales OrdersAllAllAllAll

Step 2: Create an API Member

  1. In ConnectWise, go to System > Members and create a new API member.
  2. Set the member ID and name to junto and assign the Junto security role.
  3. Generate API keys (public and private) for this member.

Step 3: Configure in Junto

  1. In Junto, go to Settings > Integrations > ConnectWise PSA.
  2. Click Add Configuration and fill in:
    • Company Identifier -- Your ConnectWise company ID (e.g., mycompany).
    • Base URL -- Your ConnectWise instance URL (e.g., na.myconnectwise.net).
    • Public Key -- The API public key from Step 2.
    • Private Key -- The API private key from Step 2.
  3. Click Create. Junto validates the connection by querying your ConnectWise instance.

Step 4: Map Service Boards

After connecting, configure which ConnectWise service boards Junto should monitor:

  1. Select the boards you want to sync tickets from.
  2. Apply selections, then map each board's ConnectWise statuses to Junto signal statuses.

Status Mapping

Each ConnectWise ticket status must be mapped to a Junto signal status. This mapping controls how tickets flow through Junto and which processors run on them.

Junto StatusMeaningMap to these CW statuses
NewTicket just arrived, needs triageNew, Open, Unassigned — statuses for tickets that haven't been looked at yet
ChildMerged or bundled under a parent ticketChild, Merged — statuses for tickets that are part of a parent ticket
ResolvedWork is done, pending confirmationResolved, Completed, Done — triggers resolution processors (AI resolution summary, service catalog classification)
ClosedFully closed, no further actionClosed, Cancelled — final state, no processors run
ActiveEverything elseAll remaining statuses (In Progress, Assigned, Waiting, Scheduled, etc.)

Why this matters:

  • New triggers intake processors — triage, priority classification, categorization, sentiment analysis
  • Resolved triggers resolution processors — AI resolution summary, resolution comparison, service catalog classification
  • Closed is a terminal state — tickets are hidden from the default signal view
  • Child tickets are excluded from the main signal list to avoid duplicates
  • Active is the working state — tickets are visible and monitored but don't trigger intake processors again

Tip: When in doubt, map a status to Active. Only map to New, Child, Resolved, or Closed when the status clearly matches those definitions.

Step 5: Map Technicians

Link your Junto users to their ConnectWise member records:

  1. Go to the Member Mapping section on the ConnectWise settings page.
  2. For each Junto user, select their corresponding ConnectWise member.
  3. This mapping enables time entries created by the AI agent to be attributed to the correct technician.

Step 6: Run Initial Sync

Click Full Sync to perform the initial data import. This syncs:

  • Companies -- All active companies from ConnectWise.
  • Contacts -- Contacts associated with synced companies.
  • Tickets -- Open tickets from the selected service boards.
  • Time entries -- Time entries associated with synced tickets.

After the initial sync, Junto keeps your data up to date automatically.

Real-Time Sync

Changes in ConnectWise (tickets, time entries, companies, and contacts) sync to Junto automatically in real-time. No manual setup is required — this is configured automatically when you connect the integration.

Troubleshooting

  • Connection fails -- Verify your Company Identifier, Base URL, and API keys. Ensure the API member is not disabled.
  • Tickets not syncing -- Check that the correct service boards are selected and that the API member has read access to those boards.
  • Time entries not attributed -- Verify the technician mapping. The Junto user who initiates the agent must be mapped to a ConnectWise member.
  • Real-time sync not working -- If changes in ConnectWise are not appearing in Junto promptly, contact Junto support.