AI Agents Become Active Call Handlers with Agentic Tools

Kevin Attard Compagno

Staff member
3CX Support
Joined
Nov 23, 2006
Messages
577
Reaction score
604

Use prompts, live PBX context and role-based actions to guide every conversation.​

3CX AI Agents can do more than answer questions. With agentic tools, they can use live PBX information and take supported actions during a conversation. This means an AI Agent can understand what a caller needs, find the right destination, search a Knowledge...
Continue reading the Original Blog Post.
 
One question, does the following applies to queues ?
find_contact_by_extension(extension)

If so, what are the keywords to detect that a queue is open, closed, on break or on holidays ?

I tried to modify the AI Receptionist prompt like this :
- If routing returns one clear destination, call find_contact_by_extension(extension) and proceed if contact is open.

But does not work.
if contact is available does not give good / consistent results either.

Thank you !

Edit : running 3CX v20u9.
 
A queue, as any other system extension, is in general always available. My solution would be to have two agents, one for normal office hours and one four outside, with different destinations as needed, and pass the call to them accordingly.
 
  • Like
Reactions: Evolute IT
Thank you @KyriacosS_3CX for your reply.

A queue, as any other system extension, is in general always available.
What is strange is that if I use if contact is available wording, and if queue in on holiday, then it works. Other statuses give strange results though. So seems like queue may not be available in some circumstances.

My solution would be to have two agents, one for normal office hours and one four outside, with different destinations as needed, and pass the call to them accordingly.
Think about an AI Receptionist in front of about 10 queues, each one with different office hours.
Hence the goal to be able to retrieve a queue status directly from the AI agent.

Thank you again !

Additional note : 3CX is built in a way / with the idea that a department would contain all queues of a company, leading to all queues having same office hours. We have customers with as many different office hours as queues... We then create here a so called "queue department" for every queue we create, so that we can give every queue its own office hours, and the Receptionist can open / close each queue independently. Having some installations with about 400 queues...
 
I would say that if you have the opportunity to try your current setup on a U10 "lab" environment, all elements of the AI Agents operations are much enhanced there.
 
  • Like
Reactions: Evolute IT
Thank you @KyriacosS_3CX, I'll have to see how this could be possible.
Does it however mean that find_contact_by_extension(extension) could return consistent results for queues in u10 ?
Would be nice if it could be the case :)
Thank you again !
 
  • Like
Reactions: KyriacosS_3CX
I just gave u10 Build 1694 Beta a try, and the issue is still present.

In the AI Receptionist prompt, we have :
## Routing
(...)
- If routing returns one clear destination: available=true -> transfer immediately; available=false -> see Unreachable Destinations.


A queue, depending on its department hours, can be available, in break-hours, closed or on holidays.
Unfortunately, the AI agent is not aware of the queue availibility.
Works properly for extensions, but does not work for queues.
Leading to unexpected behavior, where agent can then transfer the call in a "closed" queue...

Even explicitly using find_contact_by_extension does not help :
- If routing returns one clear destination, call find_contact_by_extension(extension): available=true -> transfer immediately; available=false -> see Unreachable Destinations.

Could you then please make the routing algorithm aware of queue availability ?
Would really be useful.

Many thanks !
 
Ive started developing some AI-call scripts with a lot of custom functions. Work very good - great update.
 
  • Like
Reactions: KyriacosS_3CX
I have been testing Gemini Live and wow this is an awesome feature 3cx lets you integrate to. 3cx to Gemini Live and then if Gemini Live needs data it sends function request to 3cx where then 3cx can hit a backend web service to get the data (from backend CRM, vertex search, etc). I like the architecture because Gemini is not directly accessing backend. They have specific functions you have defined and allowed and those requests are sent to 3cx to run and return. Kudos to the 3cx team for being forward thinking on this and having this capability. I have tested others and it was very clunky. 3cx flow is pretty straightforward and then you can just replicate for the different departments with their specific information.
 

Forum statistics

Threads
112,203
Messages
591,270
Members
165,263
Latest member
SandervdMeij