Skip to content

ConnectWise PSA

Works with: ConnectWise PSA (Manage), cloud and on-premise. What SafeHanded does in ConnectWise: internal notes on every step · a customer-visible reply for link delivery · close-to-purge · request from a ticket · optional chain-of-custody certificate attachment.

  • A ConnectWise administrator, and a SafeHanded Owner/Admin on the Team plan or above.
  • About ten minutes.
  1. In ConnectWise, create an API member under System → Members → API Members with a public/private key pair, and get your developer clientId from developer.connectwise.com.
  2. In SafeHanded: Settings → Integrations, choose Connect and pick ConnectWise PSA. Give the connection a name, enter the ConnectWise site, Company ID, public and private keys and clientId, then click Connect and test.

Nothing to set up. SafeHanded polls ConnectWise for status changes, so resolving or closing a ticket purges its credential on the next poll. SafeHanded re-reads the ticket via the API before anything is purged — see how ticketing works.

ConnectWise PSA can add your own entry to the service ticket’s menu.

  1. In ConnectWise PSA, go to System → Setup Tables → Custom Menu Entry and add an entry for the Service Ticket screen, named Create SafeHanded request.
  2. Paste the link below as its URL. Then replace TICKET_ID at the end with ConnectWise’s ticket-ID merge field ([cw_id]).
  3. Save. The entry appears in the ticket’s menu and opens a new SafeHanded request linked to that ticket.
https://safehanded.com/app/requests/new?ticket=TICKET_ID

To copy this link, open Settings → Integrations, select your ConnectWise integration and go to its Activity tab.

Choosing a preset (optional). A preset is a saved request — the reason, how long the credential is kept, who receives it and how the link is sent. To start from one, add &preset= and the preset’s slug to the end of the link, for example &preset=password-reset. Each preset’s slug is shown, with a copy button, under Settings → Request presets. With no preset in the link, SafeHanded uses the client’s default preset, then the organisation default (Settings → Policy → Default preset for new requests), and otherwise the policy defaults.

Board statuses are site-specific, so the status map (Status mapping on the integration’s Configuration tab) matters most here: map each board status to open / pending / resolved / closed. Only a status that maps to your purge trigger destroys a credential.

Internal notes (never customer-facing) at each step; the final note names when and who closed the ticket. Link delivery via Reply in the ticket posts a customer-visible Discussion note. With Attach the chain-of-custody certificate to the ticket turned on in your policy, the signed custody certificate PDF is attached on purge.

SymptomCause / fix
Test connection failedCheck the member’s key pair and that your clientId is registered.