Navigation

20.14. Connect 3CX to Capture Calls and Link Them to Tickets

Connect 3CX to identify callers, capture Call interactions, and link calls to tickets. Configure PBX API access for incoming-call cards, click-to-dial, call-history import, phonebook sync, and transcripts.

20.14. Connect 3CX to Capture Calls and Link Them to Tickets
Connect 3CX to identify callers, capture Call interactions, and link calls to tickets. Configure PBX API access for incoming-call cards, click-to-dial, call-history import, phonebook sync, and transcripts.
20. IntegrationsUpdated: 9/24/2026

A support call should leave the service desk with a record of who called, which client they represent, and what work needs follow-up. The 3CX integration identifies callers against AlgaPSA contacts in the 3CX client and journals finished calls as Call interactions on the matched contact and client.

For example, when GreenLeaf Dental Group calls about a failed backup, the technician can recognize the caller and keep the conversation with the ticket the next technician will use.

Availability: The 3CX integration requires AlgaPSA Enterprise Edition and the Pro tier.

3CX uses the same interaction, auto-ticketing, and unmatched-caller mechanism as 20.13. Capture Microsoft Teams Phone Calls as Ticket Interactions.

Check your 3CX edition

Your 3CX license determines which PBX features can connect to AlgaPSA. These requirements are separate from your AlgaPSA edition and tier.

3CX editionAvailable integration features
SMB or BasicNo server-side CRM template or PBX API access for this integration.
PROCRM template for caller identification, contact lookup and search, and finished-call journaling. AlgaPSA can match calls, create tickets automatically, and queue unknown or ambiguous callers for review.
Enterprise, 8SC+CRM features plus Call Control and Configuration API access for incoming-call cards, click-to-dial, scheduled call-history import, company phonebook sync, and retrieval of available PBX call artifacts.
AI, 8SC+The same API integration features. PBX-produced transcripts and summaries can attach to calls when supplied by 3CX.

Transcripts and summaries come from the PBX. AlgaPSA retains the artifacts 3CX supplies; it does not generate a transcript from the call audio as part of this integration.

Configure the CRM template

Before setup, confirm that you can update system settings in AlgaPSA and administer the 3CX PBX. The PBX must be able to reach your AlgaPSA address. Keep contact phone numbers current, and use the technician's AlgaPSA email address on their 3CX extension so journaled calls can be attributed to that technician.

Figure 1: The 3CX card sits beside Teams Phone under Telephony. The CRM template and key come from here; the PBX API section below unlocks the Enterprise and AI edition features.

  1. Go to Settings > Data & Integration > Integrations > Communication > Telephony and find the 3CX card.
  2. Click Enable. Copy the generated API key while it is shown in full. Afterward, the card displays only the masked key.
  3. Click Download template. The downloaded XML already contains your AlgaPSA endpoint and tenant information. The card also displays the Endpoint base URL for reference.
  4. In the 3CX Admin Console, open Settings > CRM > Server side, upload the downloaded AlgaPSA template, and enter the key in its API key parameter.
  5. Use the 3CX Test button with a known contact's phone number. Confirm that the returned contact is the person you expect.
  6. Place a test call and end it. Check that the finished call appears in AlgaPSA with the correct contact, client, direction, and duration.

Use Rotate on the 3CX card when replacing the key, then update the template's API key in 3CX. Rotation invalidates the previous key immediately. When the card reports that a newer template is available, download it again and re-upload it in the 3CX console.

How a call becomes a Call interaction

The CRM template looks up the caller when 3CX needs contact information. After a call ends, 3CX sends the call details to AlgaPSA, which records inbound, outbound, and missed calls. Repeated reports of the same call do not create duplicate interactions.

AlgaPSA uses the contact identified by the template when available, otherwise it matches the number against contact phone numbers and then client-location phone numbers. A matched call appears on the relevant contact or client timeline as a Call interaction, with its direction, number, time, and duration.

Create or link a ticket

Turn on Create a ticket automatically for matched calls on the 3CX card when recognized calls should enter the service desk's ticket queue. Automatic creation requires a matched client and usable ticket defaults for board, status, and priority. A call already linked to a ticket does not create another ticket.

In Recent calls, use Link to ticket when an existing ticket owns the issue, or Create ticket for new work. Give auto-created tickets a triage owner so a GreenLeaf callback does not become a second unresolved ticket for the same backup failure.

Resolve unmatched or ambiguous callers

In the same Telephony settings area, review Calls needing attribution. This queue contains unknown numbers and numbers shared by more than one contact. Choose the correct contact or client to file the call on the right timeline. An ambiguous caller is not automatically assigned to whichever contact happens to appear first.

This is the same queue and ticket workflow used by 20.13. Capture Microsoft Teams Phone Calls as Ticket Interactions.

Put a follow-up call on the calendar

When manually logging a call with a start time, turn on Add to schedule to place it on your AlgaPSA calendar. Users with user_schedule:update can use Schedule for to book it onto a colleague's calendar. The linked schedule entry follows edits and deletions of the interaction.

Use this for a promised callback after triage. See 8.4. Log Phone Calls, Emails, and Meetings as Contact Interactions.

Connect the PBX APIs

For 3CX Enterprise or AI editions with an 8SC+ license, configure API access on the same 3CX card to support live call context, dialing, history import, and phonebook sync.

  1. In the 3CX Admin Console, go to Integrations > API and create an API app. Grant both Call Control and Configuration API access, and list every extension you want to monitor.
  2. In AlgaPSA, find PBX API (3CX Enterprise/AI) on the 3CX card. Enter PBX address, Client id (API app extension), and Client secret.
  3. Click Save credentials, then Test connection. Confirm Connected, and check that Call control and Configuration API report granted.
  4. Under Extensions, click Sync from PBX. AlgaPSA matches extensions to users by email. Review the AlgaPSA user mapping and select a user for any extension marked Not mapped.

The PBX API credentials are separate from the CRM template's API key. The extension mapping identifies which technician receives the incoming-call card and which extension places that technician's outbound calls.

Handle incoming and outbound calls

Incoming-call card

When a mapped extension rings, its technician sees an incoming-call card in the MSP app with the caller, client, open tickets, and recent interactions. Use Open contact, Open client, or New ticket to continue the support workflow. An unknown caller offers Create contact.

Figure 2: A ringing mapped extension pops the caller, their client, open tickets, and recent interactions before the call connects.

For example, the technician answering GreenLeaf can open the existing backup ticket while the phone rings and review the last interaction before repeating troubleshooting steps. The card closes when the call connects or ends, or when dismissed.

Click-to-dial

Open a phone number's call menu and choose Call via 3CX. AlgaPSA places the call through the PBX from your own mapped extension. When you dial from a ticket, the finished call is journaled against that ticket.

Figure 3: Call via 3CX beside any phone number places the call from your own mapped extension.

This action requires a connected PBX API, a mapped extension, and permission to create interactions. Verify the ticket association after your first outbound test call.

Import call history

Turn on Call history import and set Days of history on the first run. AlgaPSA reads the PBX call log every hour and journals external calls that have not already been captured, including calls that predate setup or were missed while AlgaPSA was unreachable.

Review Last run and Records added to confirm the import is running. Calls already reported by the CRM template are checked before import to avoid duplicate records.

Sync the company phonebook

Turn on Phonebook sync and choose Daily or Hourly under Reconcile schedule. Use Push now or Import now for an immediate check.

DirectionWhat changes
AlgaPSA to 3CXActive contacts with phone numbers are created or updated in the company phonebook. Archiving or deleting a synced AlgaPSA contact removes its mapped PBX phonebook entry.
3CX to AlgaPSAPBX entries not already mapped or tagged as AlgaPSA-managed are matched to existing contacts by email, or by a unique full-name match. Missing phone numbers are added to those contacts. Import does not create AlgaPSA contacts or remove their existing numbers.

Review Last push, Last import, and the counts after a run. Check one known contact in both systems before relying on the phonebook for the whole service desk.

Review transcripts and summaries

When 3CX supplies a transcript and summary, AlgaPSA attaches them to the call interaction. The CRM template can deliver these with the call report, and the Configuration API can retrieve available artifacts after the PBX finishes processing them.

Open the call interaction and review the summary in its notes. In Call recording and transcript, click View transcript to open the transcript in the side drawer. This lets a technician taking over the ticket review the conversation without leaving the service record.

Troubleshooting

ProblemWhat to check
Lookup or journaling stops after a key changeConfirm the 3CX provider is active and update the template's API key with the newly generated key. The previous key stops working immediately after rotation.
Calls need attributionCheck contact phone numbers and review Calls needing attribution, especially for shared switchboard numbers.
A matched call does not create a ticketConfirm Create a ticket automatically for matched calls is on, the call has a matched client, ticket defaults are available, and the call is not already linked to a ticket.
No incoming-call card or Call via 3CX actionCheck Test connection, the required API capability, and the technician's extension mapping. For incoming calls, confirm the API app monitors that extension.
No transcript appearsConfirm 3CX produced a transcript for the call. Re-upload the current CRM template, and check Configuration API access if artifacts are being retrieved from the PBX.