The following article will walk you through understanding and configuring the ConnectWise PSA integration for Exoprise, additional options available, and assigning alarms to the integration. Once configured, the integration will automatically create and resolve tickets in ConnectWise PSA.
ConnectWise PSA Account
The first step to configuring the ConnectWise PSA integration is to create an API Member account. To accomplish this, from PSA, navigate to System and select Members then the API Members tab. Once there, select the “+” sign to create a new API Member.
Enter a Member ID and Name as well as select the Role ID and other required fields for the integration account and select “Save”.
Once created, navigate to the API Keys tab input a description, and save. This will populate both the Public and Private keys, copy and save them as they will be required for the integration.
Configuring the ConnectWise PSA Integration
Once you have created the API Member and generated the Public and Private keys, log in to Exoprise and navigate to Admin then Settings. From Settings, navigate to the ConnectWise Integration section.
Check the Enable Integration checkbox and populate each of the fields:
- Company: Login company for ConnectWise PSA
- ConnectWise URL: ConnectWise URL
- Public Key: Public key generated for API Member
- Private Key: Private key generated for API Member
Once the fields have been populated, select “Save”.
Next, navigate to Alarms, Settings, then select ConnectWise Integration and select “Add”
In the Create ConnectWise Call screen, the fields will need to be populated with the ConnectWise PSA information.
- Name: Identifying name for this integration
- Client ID: Company ID of the ConnectWise PSA Company
- Board: Service board for Exoprise Tickets
- Additional New Ticket Data (JSON): Allows assigning of type, subtype, and priority
- Additional Close Ticket Data (JSON): Allows assigning of Closed ticket status
The Additional New and Closed Ticket Data fields can be customized with the fields ConnectWise PSA customers use in their environments. More options are available and will be covered later in this article.
Testing the ConnectWise PSA Integration
Once the fields have been populated, the integration can be tested from the Edit button by selecting “Send Test”
Assigning Integration to Alarms
Once the integration has been configured and tested, you will want to assign the integration to the Alarms that require ticket generation. To assign the integration to alarms in bulk, from the ConnectWise integration page, select the gear and you’ll be presented with the options to deploy to everything, CloudReady, or Service Watch.
To manually assign alarms, navigate to Alarms then Alarm Dashboard. From the Alarm Dashboard, select the Alarm to tie the integration to and click “Edit”.
From the Edit screen, select your ConnectWise PSA integration from the Web Integration dropdown.
To save the change, click Update Alarm at the bottom of the window.
Default Ticket Fields
The default information included in a ticket utilizes built-in Exoprise alarm variables to populate the fields. For the Priority, Type, and Subtype fields, the integration passes the information filled out in the integration screens.
- Summary: “Alarm: $alarm.name$ on $alarm.site.display_name$”
- InitialDescription: “Alarm: $alarm.name$ on $alarm.site.display_name$ at $alarm.date_fired$ for $alarm.consecutive_periods$ consecutive periods. Tune this alarm at $alarm.edit_url$”
Additional Open Data (JSON)
The data and values tickets are created with can be customized by configuring the Additional Open Data fields. These fields are merged into the JSON data sent to ConnectWise through the integration.
For example, to create a ticket with a specific status rather than the default status of the Service Board, “Status”:{“name”: “NewStatus”} could be added to the Additional New Ticket Data (JSON) field.
The Additional New Ticket Data (JSON) can also be configured to utilize the Exoprise alarm variables, a full list of Alarm variables is available in this Alarm Hook Templates article.