Navigation
3.8. Link Tickets to GitHub, Jira, and Other External Systems
Connect AlgaPSA tickets to their origin, mirrored work, and references in external systems, and find tickets by external ID through the v1 API.
External links help technicians move between an AlgaPSA ticket and the record a client or partner uses to track the same work. For example, GreenLeaf Dental Group's co-managed IT team can report an issue as Jira key GLD-42, while your service desk records the work in AlgaPSA and keeps a direct link to that issue.
Links appear in External links in both the Grid and Entry ticket layouts in the MSP app. The client portal does not render these links. Adding a link records the relationship; it does not synchronize data between the systems.
Choose the relationship
| Relationship | Use it for |
|---|---|
| Origin | The external record where the ticket started. Each ticket can have one origin link, which sets its origin badge. |
| Mirror | Another record tracking the same work, such as a Jira issue maintained by a co-managed IT team. |
| Reference | Supporting information, such as a related issue or vendor case. This is the initial choice when adding a link. |
The built-in systems are GitHub, Jira, Slack, Discord, Email, Client Portal, and API. External Reference is also available for a general link. Custom systems appear alongside the built-in choices.
Add a link to a ticket
You need access to the ticket and permission to update it (ticket:update). Have the external record's identifier and destination URL ready.
- Open the ticket in the MSP app and find External links.
- Click Add link and select the System.
- Enter the External ID. For the GreenLeaf example, select Jira and enter
GLD-42. - Fill in the system-specific field when shown: Repository for GitHub, Site for Jira, Workspace for Slack, or Server for Discord. For Jira, the site is the host name, such as
greenleafdental.atlassian.net. - Review the Opens: URL preview. Supply a URL to override the generated destination, or when the system has no URL template. URLs must use HTTP or HTTPS.
- Choose Relationship. Use Origin if the external record started this ticket, or Mirror if it tracks work started elsewhere. A second origin cannot be added.
- Optionally expand Person or account (optional) to record the external username or display name, then click Save.
Figure 1: Pick the system, enter the external ID, and choose the relationship. The URL preview shows where the link opens.
The new row shows the system, external identifier, and relationship. Open the link to verify that it reaches the correct client's record. Use Link actions > Edit to change the relationship or URL, or Remove to remove the link from the ticket.
Figure 2: The saved link on the ticket, with its relationship badge.
Manage custom systems
Open Settings > General, select Ticketing, then External systems. This is the Settings > Ticketing > External systems area of Admin Settings.
Figure 3: A custom system needs a key, a label, and optionally a URL template; the built-in catalog stays available beside it.
- Click Add system.
- Enter a Key, such as
custom:vendor_support, using lowercase letters, digits, or underscores aftercustom:. - Enter the Label technicians should see, such as "Vendor Support".
- Optionally enter a URL template, such as
https://support.example.com/cases/{external_id}. Templates support{external_id}and{realm}. - Click Save, then select the custom system when adding a ticket link.
Use the system's Actions menu to edit or delete it. A system still used by existing links cannot be deleted. See 10.5. Configure Ticket Numbering, Boards, Statuses, Priorities, and Categories for the surrounding ticket configuration.
Use the v1 API
Integrations can store and retrieve the same relationships. Use an internal MSP API key whose user has ticket:read for reads and ticket:update for changes.
| Method | Route | Purpose |
|---|---|---|
GET | /api/v1/tickets/{id}/external-links | List the ticket's external links. |
POST | /api/v1/tickets/{id}/external-links | Add an external link. |
PATCH | /api/v1/tickets/{id}/external-links/{linkId} | Update a link's mutable fields, including its relationship or URL. |
DELETE | /api/v1/tickets/{id}/external-links/{linkId} | Remove an external link. |
GET | /api/v1/tickets/by-external-link | Find a ticket using required system and external_id query parameters, with optional external_parent_id. |
For the GreenLeaf Jira example, an integration can look up the existing AlgaPSA ticket before creating another:
GET /api/v1/tickets/by-external-link?system=jira&external_id=GLD-42
Lookup returns the matching ticket_id and link, or HTTP 404 when no match exists. This lets the integration find work by its external identifier without maintaining a separate mapping table. Before putting the integration into service, check both a known identifier and an identifier that has no link, and verify that the known match belongs to the intended client.
