Skip to content

PSA Integrations

PSA (Professional Services Automation) integrations connect Breeze to the ticketing platform your service desk already runs on. Connections store encrypted credentials, support connection testing and company import, and offer alert ticket creation for ConnectWise Manage.

You manage PSA connections from Integrations → PSA. The tab is deep-linkable at /integrations#psa.


Breeze supports six PSA providers. Pick one when you create a connection; each provider has its own set of relevant credential fields.

Provider Instance URL example
Jira https://your-domain.atlassian.net
ServiceNow https://instance.service-now.com
ConnectWise https://api-na.myconnectwise.net
Autotask https://webservices.autotask.net/atservices/1.6/atws.asmx
Freshservice https://your-domain.freshservice.com
Zendesk https://your-domain.zendesk.com

Not every credential field applies to every provider. Fill in the ones your provider needs and leave the rest blank — for example, Jira uses an email/username plus an API token, ConnectWise uses a public/private key pair, and ServiceNow uses a username and password. The instance URL placeholder in the form updates to match the provider you select.


A PSA connection is owned either by a single organization or partner-wide (all organizations under your partner). Since one MSP typically runs one PSA for all its customers, partner-wide is the natural choice: one connection serves every org. The scope is chosen when the connection is created and cannot be changed afterwards; creating a partner-wide connection requires full-partner access.

A partner-wide connection is visible to any partner-scope user — but the tickets and device/alert mappings underneath it are still filtered to the organizations you can access, so a restricted technician never sees another customer’s work items through a shared connection.

  1. Open Integrations → PSA (or go straight to /integrations#psa) and click Add connection.

  2. Give the connection a name (for example, “ConnectWise — Contoso”) and choose the provider from the dropdown. A short hint under the provider field describes the credentials that provider expects.

  3. Under Connection details, enter the Instance URL for your PSA platform and, optionally, a Default queue (the board, queue, or project that new tickets land in).

  4. Under Credentials, fill in the fields your provider requires — any combination of Username, Password, API Token, Client ID, and Client Secret. Secret fields are masked; use the eye toggle to reveal what you typed. Only the fields relevant to your provider need values.

  5. General Ticket Sync controls are unavailable. Configure ConnectWise Manage alert tickets separately in the connection’s Alert tickets card.

  6. Click Create connection. Breeze encrypts the credentials and saves the connection.

  7. Open the connection again in Edit mode and click Test connection to verify the credentials are valid (see Testing a Connection).

Field Used for
Instance URL The base URL of your PSA platform
Default queue The board / queue / project new tickets are created in
Username Login or email for providers that authenticate with a user identity
Password Password for providers that authenticate with username + password
API Token Token-based authentication (e.g. Jira, Zendesk, Freshservice)
Client ID OAuth / API client identifier where the provider requires one
Client Secret OAuth / API client secret

The Test connection button is available when you edit an existing connection. It sends a live request to the PSA platform using the stored credentials and reports the result in a dialog:

  • On success, Breeze shows a confirmation and records the test outcome on the connection (a lastTestedAt timestamp and a verified status).
  • On failure, Breeze shows the error returned by the provider along with a prompt to re-check your credentials and instance URL.

The PSA tab lists every connection with its provider, name, and status. You can search connections by name or provider and filter by status. Each row offers these actions:

Action What it does
Edit Open the connection to change its name or credentials, or to test it
Pause / Resume Toggle the connection between active and paused
Delete Remove the connection permanently

Connection status is one of:

Status Meaning
Active The connection is enabled
Paused The connection and its credentials are retained but marked inactive
Error The most recent test failed

Bring a PSA’s company list into Breeze as organizations, one connection at a time. For alert tickets, these company links determine which customer receives each ticket.

On the PSA tab, each connection for a provider with a company/account object shows an Import companies button. ConnectWise, Autotask, Freshservice, ServiceNow, and Zendesk support this; Jira does not, because it has no company object to map onto an organization, so the button is not shown for a Jira connection.

  1. Click Import companies on the connection you want to pull from.

  2. Click Fetch to pull the company list from the PSA. This is a live request — up to 1,000 companies are fetched per import, and nothing is created yet.

  3. Review the preview. Each row is auto-checked to be imported unless it already matches an existing organization; uncheck any row you don’t want to bring in.

  4. Choose what to do with a row that matches an org already imported from this connection: Skip it, or Update it with the PSA’s current data.

  5. Click Import to create or update the selected organizations.

The preview calls out anything that affects the result:

  • Partial company list — if the PSA connection responded too slowly, paged too many times, or the listing hit the 1,000-company cap, the warning names which of those three happened and how many companies were actually fetched. Any company that was never read is not linked, and importing again later is the way to catch up on a company list larger than the cap.
  • Already linked — companies already imported from this connection are called out, not treated as an error.
  • Malformed records — companies the PSA returned without a usable ID or name are skipped and counted separately; this reflects a data-quality issue on the PSA’s side, not a failed import.

General bidirectional ticket sync and manual full-sync runs are not available. Legacy sync settings have no effect. ConnectWise Manage alert tickets use the separate configuration below.

The Alert tickets card lives at Integrations → PSA, on the bound ConnectWise Manage connection. Settings are partner-wide; there is no per-organization override. Managing them requires full-partner access, organization write permission, and MFA.

  1. Use a partner-owned ConnectWise Manage connection as the partner’s bound PSA connection and set ticketing mode to external.
  2. Test the connection, import companies, and check each organization’s company link. Breeze never uses a fallback company. If you change PSA instances, verify the links again.
  3. In Alert tickets, choose the board, open status, and severity-to-priority mapping. Choose a closed status if you enable closing on resolve.
  4. Review the minimum severity. Existing rule and monitor filters also apply to automatic creation. Close-on-resolve and acknowledgement notes are off by default. The default limit is 100 creates per hour, with a 24-hour lookback.
  5. Check Company links match this instance, enable alert tickets, and save. If another administrator changed the configuration, the card reloads the latest revision; review it before saving again.

In external ticketing mode, staff with tickets:write permission can choose Create PSA ticket on an accessible alert. This bypasses severity, rule, and monitor filters, but still requires active alert ticketing on the bound connection and a valid company link. Repeated requests return the existing mapping. In native mode, use native ticket creation instead.

Once a ticket exists, the alert’s external-ticket chip shows its PSA state, ticket number and link to viewers permitted to see that connection. Pending or uncertain creates appear in the Alert tickets activity panel. Partner viewers also see references supplied through the Partner API; organization sessions retain their organization-owned connection visibility.

The card shows counts across all create states and a paginated list of failed creates, missing company links, and outcomes needing attention. Refresh reloads the activity.

State Meaning and next step
Queued / Creating Breeze is preparing or sending the create request.
Created A PSA ticket is linked. Close and acknowledgement-note progress are tracked separately.
Create outcome unknown A request may have reached the PSA. Breeze searches for the ticket rather than sending another create automatically.
Needs attention Lookup could not confirm the outcome. Check the PSA before choosing a human action.
Failed Automatic attempts reached their deadline. Correct the cause, then use Re-drive.
No company link Link the organization to its PSA company, then use Re-drive, or wait for reconciliation.
Ambiguous company link Correct the conflicting company links. Breeze will not guess a customer.
Rejected The PSA rejected the request. Review the configuration and provider requirements.
Resolved before create The alert resolved before a create was sent. No ticket was needed.
Handled A person ended processing for this mapping.

Re-drive retries only failed creates and missing-company mappings, preserving the connection binding. It does not retry unknown outcomes or rejected requests. Authentication failures pause ticketing; correct the credentials and successfully test the connection to resume.

Create anyway is available for Needs attention. A ticket may already exist, so check the PSA first. After confirmation, this allows one additional create attempt per mapping. A second uncertain outcome cannot receive another such grant. Concurrent clicks cannot grant multiple attempts.

Mark handled stops processing a failed, missing-company, or needs-attention mapping. It does not create, close, or delete a ticket in the PSA. Human actions are audited; if another action changed the row first, refresh and review its new state.

When Close on resolve is enabled, Breeze closes the linked ticket when the alert resolves. Otherwise, resolution adds an internal note. Note on acknowledge controls acknowledgement notes separately. These choices are captured when the ticket is created.

Use partner-wide webhooks with the v2 alert payload to send alert events to middleware such as Rewst, then create the ticket in your PSA. Save its number and HTTPS link through the Partner API external-ticket reference endpoints. A dedicated principal needs the opt-in alerts:write scope to write references or acknowledge and resolve alerts; it is never included in a default scope set. alerts:read permits lookup for deduplication. The webhook guide’s middleware example describes the event-to-ticket flow and loop prevention.


Connection test fails. Confirm the credentials are correct and that the PSA platform’s API is reachable from your Breeze API server. Some providers require IP allowlisting or VPN access. Double-check the instance URL matches the provider format shown in the form, and re-check any secret fields you may have left blank on edit.

“Failed to encrypt credentials” when saving a connection. The APP_ENCRYPTION_KEY environment variable is not set or is invalid. This variable is required in every environment and the API will not start without it. On Breeze-hosted accounts this is already configured.

Editing a connection wiped my credentials. Credentials are replaced as a whole, not merged. On the edit form, leave a secret field blank to keep its existing value — only type into it when you intend to rotate that credential.

No tickets are showing up. For ConnectWise Manage, check external mode, the bound connection, the enabled Alert tickets card, company-link confirmation, and severity filters. Review the activity states for missing company links, failed creates, or an uncertain outcome. Other PSA providers need the webhook and Partner API middleware path.

A connection shows the Error status. The most recent connection test failed. Open the connection, run Test connection to see the provider’s error message, and correct the credentials or instance URL as needed.


  • Integrations overview — the full Integrations page, including communication, monitoring, accounting, distributor, and network integrations.
  • Ticketing — Breeze’s native ticketing system.
  • Webhooks — push real-time event notifications to external systems, including your PSA or messaging tools.