
Connect 3CX to Xcellerate OPS and every incoming call shows who is calling, both in OPS and in the 3CX client. Each finished call lands on the customer's CRM timeline, so your team knows the history before picking up. This guide is for admins of IT MSPs and service businesses that run 3CX.
TL;DR
- OPS generates a 3CX CRM template for your workspace. You upload it in 3CX, and nothing needs opening on your firewall.
- Incoming calls show the matching contact in OPS and in the 3CX client. Every finished call, answered or missed, is logged on the CRM timeline.
- Calling from OPS hands the number to your 3CX app. OPS then lets you note how the call went.
Before you start
- You are an admin of the OPS workspace, or your role may manage telephony settings.
- A 3CX admin who can upload a CRM template in the 3CX Admin Console.
- No API key and no 3CX Call Control licence are needed.
- A list of your extensions and who uses them.
Telephony is a base feature and is included in every plan.
Set up 3CX step by step
1. Add 3CX in OPS
In OPS, go to Settings → Data and security → Telephony. Click Add a phone system, choose 3CX, give the connection a name and confirm.
The Telephony page with a phone-system dropdown, a name field and the message that no phone system is connected yet.
2. Download the template
On the card of your new connection, click Download the 3CX template. You get an XML file with everything 3CX needs to reach your workspace, including a secret key that belongs to your workspace only. Don't edit the file by hand.
3. Upload the template in 3CX
Open the 3CX Admin Console and go to the CRM integration settings (the OPS hint says Settings › CRM Integration; the exact menu can differ between 3CX versions). Upload the template there.
4. Map extensions to people
3CX extensions are not imported. Type each extension and choose who it Belongs to. For a ring or hunt group, click Add person for each member: everyone gets the call card, and it collapses to whoever answers. An extension without a person does not pop. AI colleagues cannot be mapped to an extension.
5. Enable and test
Click Enable. While the connection is off, OPS refuses calls from 3CX. Make one test call, then click Test connection. Expect "A template and API key are ready to download." and "3CX last called OPS …".
What happens after you connect
- While the phone rings, 3CX asks OPS who is calling. OPS returns the name, company, e-mail, phone number and a contact link that the 3CX client can open.
- In OPS, the Calls dock at the bottom right shows the caller, with Open contact, Open company, New ticket (pre-filled with the number) and Add as contact. When the match is uncertain, the card says "Best guess — check before you use the name."
- After the call, 3CX sends the details (direction, extension, duration, times). OPS logs the call on the contact's and company's CRM timeline and links it to the most recent open deal, which you can change. Calls are not attached to tickets automatically.
- Missed calls trigger a "Missed call from " notification for the person whose phone rang, or else the deal owner.
- Unknown numbers go to Unknown callers. OPS never creates a contact on its own, except when someone presses create contact in the 3CX client.
Good to know
- Calling from OPS: the call button hands the number to your 3CX app, which places the call. That's why the card says "Cannot place calls": OPS itself does not dial. After the call, OPS still asks "How did the call go?" so you keep the outcome and a note.
- Call details only arrive once the call has ended.
- Call recordings from 3CX are not fetched into OPS yet.
- There is no nightly reconciliation for 3CX: OPS logs what 3CX sends at the end of each call.
- New key breaks the uploaded template immediately. Download and upload it again afterwards.
- The secret is per workspace and OPS never stores 3CX credentials. Deleting the connection keeps the call history.
Troubleshooting
- "No API key has been generated yet." Download the template from the card; that creates the key.
- "3CX has not called OPS yet." Check that the template is uploaded in 3CX and make a test call. Nothing needs opening on your firewall.
- No calls show up in OPS. Check that the connection is enabled.
- It worked before. Someone may have clicked New key. Download and upload the template again.
Get started
Want to see who is calling before you pick up, with the full customer history next to it? Get started for free and connect 3CX in a few minutes. Read more about the EU integrations in OPS and the service desk.
