• V20: 3CX Re-engineered. Get V20 for increased security, better call management, a new admin console and Windows softphone. Learn More.

Outbound Dialer CRM Integration

Status
Not open for further replies.
You need to create an inbound callflow, and there you can use a Menu component or User Input component to ask for some DTMF input. If you don't receive anything, that might be a signal that you don't have a real user on the other side of the call...
 
You need to create an inbound callflow, and there you can use a Menu component or User Input component to ask for some DTMF input. If you don't receive anything, that might be a signal that you don't have a real user on the other side of the call...

To do this would I need to set it up as another Voice App? or would I need the Make call function to go to another Voice App to process the user input?
 
A CFD project can have 1 dialer and 1 callflow. You can create your project like that. Then you deploy a single app to a CFD queue, and you configure the dialer to make calls between the external number and the project queue extension. This way, the call to the external number will be connected to the CFD inbound callflow, which can ask for DTMF input.
 
A CFD project can have 1 dialer and 1 callflow. You can create your project like that. Then you deploy a single app to a CFD queue, and you configure the dialer to make calls between the external number and the project queue extension. This way, the call to the external number will be connected to the CFD inbound callflow, which can ask for DTMF input.

So on make call, I set 'Make call from' to the queue number of the CFD Project?

I've setup a inbound call flow in the same project to just play a main menu, if option 1 and 2 are selected it sets the status to 2 (Represents contacted), if no input is detected it will increment the counter from 0 to 1 if it then tries again and no input is detected it will increment from 1 to 2. Before making each call it checks status<2, so maximum amount of attempts will never be more than 2.

When I'm updating the database in the inbound callflow will I still be able to use the result I returned from the database access in the outbound dialer? I have set it up as below. Or do I need to get the number a different way:

UPDATE NumbersToCall SET status= 2 WHERE number_to_call='{0}'

Parameter: number_to_call getNextNumber.ScalarResult
 
So on make call, I set 'Make call from' to the queue number of the CFD Project?
Actually, you need to set "Make call from" to the external number you're calling, and the Destination to the internal queue extension where you deployed the CFD project. This way, the call is made to the external number first, and only when it is answered it will connect the call to the CFD callflow. Also, this way you receive the external number in the callflow, which you will need in the next step.

When I'm updating the database in the inbound callflow will I still be able to use the result I returned from the database access in the outbound dialer? I have set it up as below. Or do I need to get the number a different way:

UPDATE NumbersToCall SET status= 2 WHERE number_to_call='{0}'

Parameter: number_to_call getNextNumber.ScalarResult
No, the callflow and the dialer are independent and don't share any data. You need to take the number from the session.ani variable, which contains the number of the external party. This variable will only contain the external number when 3CX makes the call to that external number first, and then to the internal queue. Otherwise you will see "MakeCall" as the call origin (session.ani).

Kind regards.
 
Actually, you need to set "Make call from" to the external number you're calling, and the Destination to the internal queue extension where you deployed the CFD project. This way, the call is made to the external number first, and only when it is answered it will connect the call to the CFD callflow. Also, this way you receive the external number in the callflow, which you will need in the next step.

Is the attached correct for this? If the CDF has the extension "800"?


No, the callflow and the dialer are independent and don't share any data. You need to take the number from the session.ani variable, which contains the number of the external party. This variable will only contain the external number when 3CX makes the call to that external number first, and then to the internal queue. Otherwise you will see "MakeCall" as the call origin (session.ani).

Kind regards.

How do I get the call origin from the session.ani? is it just the parameter, value I need to change from the attached (Capture1.)?
 

Attachments

  • Capture.JPG
    Capture.JPG
    18.7 KB · Views: 24
  • Capture1.JPG
    Capture1.JPG
    49.7 KB · Views: 32
Is the attached correct for this? If the CDF has the extension "800"?
Yes, that is correct.

How do I get the call origin from the session.ani? is it just the parameter, value I need to change from the attached (Capture1.)?
Exactly, you need to change the parameter value from "getNextNumber.ScalarResult" to "session.ani".

Kind regards.
 
All working so far.

They have requested that the automated message is personalised, so it could include the balance or customer name. For example: 'This is a message from ... to confirm this is MR SMITH please press 1.'

Is there anyway to insert any kind of text to speech in the message?
 
I have found an article regarding the text to speech functionality
 
Hi

I've got to the stage of testing now and have a few questions.

The call is showing as 'No caller ID' for the recipent of the outbound call, how do I get this to show the office number?

When the call is answered, it briefly plays the on hold music for a split second and then there is a 4-5 second delay before the prompt starts playing. Can this be reduced?
 
The call is showing as 'No caller ID' for the recipent of the outbound call, how do I get this to show the office number?
This is controlled from your outbound rules, and SIP trunk configuration. Please note that the call is originated from "MakeCall", and not from an extension, so if you're using the OutboundCallerId from the extension, then you will get this behaviour.

When the call is answered, it briefly plays the on hold music for a split second and then there is a 4-5 second delay before the prompt starts playing. Can this be reduced?
You might experience a small delay for the first call only, while the audio files are cached, but it should be smooth for subsequent calls. Also, please check if your audio files have any silence at the beginning.
 
This is controlled from your outbound rules, and SIP trunk configuration. Please note that the call is originated from "MakeCall", and not from an extension, so if you're using the OutboundCallerId from the extension, then you will get this behaviour.

I haven't specified anywhere in the CFD an outboundCallerID, it is specified on the SIP Trunk for a caller ID but it just ignores this.

My make call is as followed:

Make call from: TRIM(getNextNumber.ScalarResult)

To: "900"

Where 900 is the extension of the CFD.

You might experience a small delay for the first call only, while the audio files are cached, but it should be smooth for subsequent calls. Also, please check if your audio files have any silence at the beginning.

There is no silence at the beginning of the audio file, but I'm only testing it on one number at the minute. Is there a reason I hear on hold music for a split second?
 
RE Caller ID, you need to check the SIP Trunk settings. There is nothing you can do from the CFD app. The CFD app doesn't specify it, the information will be taken from the SIP Trunk configuration...

RE silence and music on hold, when you use the MakeCall component, you request the call to 3CX. Then 3CX will make the call to the number returned by the database. When that call is connected, it is put on hold until the second call to extension 900 is made. This is what you hear. But usually this is so fast that you don't even hear it, as the CFD app picks up the call very fast. Please note that this might be a bit slower for the first call, as there is some loading that needs to be done (audio file caching, etc.). But subsequent calls should work fast.
 
RE Caller ID, you need to check the SIP Trunk settings. There is nothing you can do from the CFD app. The CFD app doesn't specify it, the information will be taken from the SIP Trunk configuration...

I have set the outbound caller ID on the SIP Trunk but it is still coming up as No Caller ID, any ideas?

RE silence and music on hold, when you use the MakeCall component, you request the call to 3CX. Then 3CX will make the call to the number returned by the database. When that call is connected, it is put on hold until the second call to extension 900 is made. This is what you hear. But usually this is so fast that you don't even hear it, as the CFD app picks up the call very fast. Please note that this might be a bit slower for the first call, as there is some loading that needs to be done (audio file caching, etc.). But subsequent calls should work fast.

I will try a few different numbers to see about the delay.


Is there a way of using the database access to return more than 1 field? For Example, I need to access 'Title' & 'Surname' fields, at the minute I've set 2 database access modules to get them, can this be done with one?
 
I have set the outbound caller ID on the SIP Trunk but it is still coming up as No Caller ID, any ideas?
That's a question to ask in the General forum...

Is there a way of using the database access to return more than 1 field? For Example, I need to access 'Title' & 'Surname' fields, at the minute I've set 2 database access modules to get them, can this be done with one?
Yes, of course, you can return any number of fields and rows. You need to change the query type to "Query" and then you need to use the GET_TABLE_CELL_VALUE function to get each value.

Here you have the Database Access component documentation:
https://www.3cx.com/docs/manual/cfd-components/#h.2yz6u5lugiza

Kind regards.
 
I'm still having an issue with a 4-5 second delay before any audio is heard. Is there anyway I can diagnose this?
 
Another feature I'd quite like the dialler to do, once it has transferred the call to the queue, can I get it so the Caller ID will show as their name instead of their phone number. So the agent can see that it is 'Mr Smith' for example
 
To show the name, you need to create a CRM template:
https://www.3cx.com/docs/crm-integration/

Regarding the delay, you need to check the 3CXQueueManager.log file to understand where it is happening....
 
Could I possible private message you the logs from the Queue Manager, I have found the call but can't see anything that looks as to why there is such a long delay.
 
Status
Not open for further replies.
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.