Integration with 3CX

hboot

SMB User
Joined
Jun 7, 2025
Messages
2
Reaction score
0
Integrator here, new to 3CX, but not new to telecom and CRM. No doubt on the wrong section of the forum, as I just created an account here, and am not allowed to post anywhere else.

My needs are very basic inbound automation:
* Incoming call: route to the right queue in interaction with my CRM (Call Flow Designer looks like it can do that)
* Agent answers the call: inform the CRM of the creation of the link between agent and caller (I would need the same caller ID as the one I saw in CFD)
* Call ends: inform the CRM of the ending of the link between agent and caller (I would need the same caller ID as the one I saw in CFD)

My problems:
* CFD seems not to be able to detect the events "agent answers" and "call ends". At least, I haven't found it.
* Call API seems to use other caller IDs than CFD, so I cannot use that combination.
* the softphone scripting possibilities only allows calling an executable upon call answer, not call ending.
* CRM integration's journaling looks polling based. I am looking for push events.

Surely, my simple use case should be possible?

I'm missing some higher level integration guide with comparisons between the tools and collaboration methods between the tools. Where should I start? What tool would be the best for me?
 
https://www.3cx.com/docs/crm-integration/

https://www.3cx.com/docs/crm-template-xml-description/

CRM for call ended, and it's not polling. It's pushed by 3CX to your API endpoint upon the end of the call. If transcription/AI is enabled, the data is pushed after the processing so it can be included in it. (Transcription/Summary/RecordingUrl)

CFD for inbound routing. Very simple to do with even a simpler call script in C#.

For call answered, nothing you can do. There's no event for that that would include the agent.
 
Thanks for the feedback.

> For call answered, nothing you can do. There's no event for that that would include the agent.
Just to be clear, with "agent" I mean "extension number". That might make it a bit simpler.


So to resume <rant>, for this extremely common and entry level scenario, </rant>, I would need 3 different tools with each different configuration/programming styles:
* incoming call routing: CFD, in C#
* start of conversation/link agent to caller: via an external executable called from the softphone.
* end of conversation: CRM integration, in XML

Unfortunately for the CRM that I'm working with, for all three events, a common call identifier is mandatory.
That is not going to be easy.

Is there some documentation about the softphone executable calling capabilities? So far I've managed to detect `%CallerNumber%` and `%CallerDisplayName%` as potential parameters to the executable (I derive the agent's identity from the PC the softphone is on). But I'd need some common call identifier, either a unique number generated by CFD, or some "start of call timestamp" (not "start of conversation timestamp"). And would that call identifier be available to the CRM integration?
 
Just to be clear, with "agent" I mean "extension number". That might make it a bit simpler.
No it doesn't. That's what "agent" means.

And no there's nothing else built-in than what I mentioned. No other variables either.

Otherwise, use a third-party tool like @VoIPTools.
 
As mentioned by @ConceptsWeb, we offer a real-time events based API that your application can subscribe to in order to be notified when a call starts and end. We use Microsoft SignalR for our events API so C# is your best friend.
 
  • Like
Reactions: Evolute IT

Members Online Now

No members online now.

Forum statistics

Threads
111,831
Messages
589,277
Members
164,660
Latest member
RJenkinsROCK