CRM integration & inbound problems

Status
Not open for further replies.

SimoneB

Customer
Joined
Mar 16, 2020
Messages
10
Reaction score
0
Good morning,
I'm following a customer during the integration of 3CX with a management software.
Using the template we have generated the interface API and speaks correctly with the management software providing all the necessary info.
The problem appears with incoming calls. We have tried a certified trunk (messagenet) and an unofficial one. At the exit the switchboard sends the marks to the CRM, at the entrance no.
I attach the generated XML model to the thread, does anyone have any kind of idea to solve it?
We've been banging our heads for a week ...

3CX professional version 16.0.4.504
Thank you all.
 

Attachments

3CX will do a contact lookup when the call is received, using the URL specified in the loopup scenario. This might be skipped if the contact is already in cache. This happens when you receive 2 calls from the same number in less than 10 minutes. In that case, the contact details are taken from cache, and the lookup is not executed.

Then, when the call ends, it will execute the ReportCall scenario, providing all the details of the finalized call to the CRM. This is never skipped, as long as there is a matched contact.

Can you describe in which case you're not receiving the information from 3CX?
 
They have a management system that creates for each call a sort of ticket for the customer (whether or not in the address book). A ticket is generated for each call to the CRM. If I make the call from the inside I have no problem, the management answers and creates a correspondence. If I receive the call, the management system does not recognize the command. I thought it was a format error in the number, but I tried in several ways without success. I don't understand, more than anything else, how it works in one direction.
 
If you need to do this for every call, then you should not do this in the contact lookup scenario, because it might be skipped if you received another call from the same number in the past 10 minutes.

Then, you should do this in the Call Journaling scenario, however you need to keep in mind 2 details:
1) This is invoked when the call ends, and not when it starts.
2) This is only invoked when the contact lookup scenario matched a contact. So, if you need to do this also for unknown contacts, you should implement the contact creation scenario, so you always return a valid contact.

If any of these is not working, you need to enable verbose logs from the 3CX Console > Dashboard > Activity Log > Settings, make a test call to reproduce the issue, and then check the 3cxSystemService.log file.
 
You may have already addressed this issue, but one possibility is how your phone numbers are represented in the CRM vs how the numbers are presented to 3CX. If, for example, you use a PRI, the PRI may only present 4 digits to 3CX on an inbound call.

Also, make sure when phone numbers are entered into your CRM that you always enter only digits and always the same number of digits with no non-digit characters or spaces. For example, if you enter into your CRM phone numbers in multiple formats ( (801) 642-4655 or 8016424655 or 6424655 or 801-642-4655 Ex 1234) the integrations will not be able to match the phone number presented to the PBX with a value in the CRM.
 
You may have already addressed this issue, but one possibility is how your phone numbers are represented in the CRM vs how the numbers are presented to 3CX. If, for example, you use a PRI, the PRI may only present 4 digits to 3CX on an inbound call.

Also, make sure when phone numbers are entered into your CRM that you always enter only digits and always the same number of digits with no non-digit characters or spaces. For example, if you enter into your CRM phone numbers in multiple formats ( (801) 642-4655 or 8016424655 or 6424655 or 801-642-4655 Ex 1234) the integrations will not be able to match the phone number presented to the PBX with a value in the CRM.


This was my first idea. I also thought it could be the IVR responder and did several tests, but without success.
 
If you need to do this for every call, then you should not do this in the contact lookup scenario, because it might be skipped if you received another call from the same number in the past 10 minutes.

Then, you should do this in the Call Journaling scenario, however you need to keep in mind 2 details:
1) This is invoked when the call ends, and not when it starts.
2) This is only invoked when the contact lookup scenario matched a contact. So, if you need to do this also for unknown contacts, you should implement the contact creation scenario, so you always return a valid contact.

If any of these is not working, you need to enable verbose logs from the 3CX Console > Dashboard > Activity Log > Settings, make a test call to reproduce the issue, and then check the 3cxSystemService.log file.
I'll try in the afternoon, thank you
 
If you need to do this for every call, then you should not do this in the contact lookup scenario, because it might be skipped if you received another call from the same number in the past 10 minutes.

Then, you should do this in the Call Journaling scenario, however you need to keep in mind 2 details:
1) This is invoked when the call ends, and not when it starts.
2) This is only invoked when the contact lookup scenario matched a contact. So, if you need to do this also for unknown contacts, you should implement the contact creation scenario, so you always return a valid contact.

If any of these is not working, you need to enable verbose logs from the 3CX Console > Dashboard > Activity Log > Settings, make a test call to reproduce the issue, and then check the 3cxSystemService.log file.

Good morning, I did some testing. On exit, the control panel generates the log, makes it work correctly with answer / no answer etc.
In the input if I do the test directly from the settings I can communicate with the CRM.
Why when a call does not communicate then?
Besides, in the test, I see that it only holds 5 digits of the number, where can I change this parameter?
I've made a complete log, but I can't find the mistake.

Thank you
 
In the input if I do the test directly from the settings I can communicate with the CRM.
Why when a call does not communicate then?
To understand what's going on here, you need to enable verbose logs in 3CX, then make a test call reproducing the issue, and check the 3cxSystemService.log file.

Besides, in the test, I see that it only holds 5 digits of the number, where can I change this parameter?
You can control this from the 3CX Console > Advanced > Contacts > Options.
 
Thank you Ernesto,
I'm searching throug the log file, but I don't find anything.
Is there any particular node that I need to control?

Many thank
To understand what's going on here, you need to enable verbose logs in 3CX, then make a test call reproducing the issue, and check the 3cxSystemService.log file.

I'll attach an extract of log.

You can control this from the 3CX Console > Advanced > Contacts > Options.
Thank you I've found this in another thread.
 

Attachments

Thank you Ernesto,
I'm searching throug the log file, but I don't find anything.
Is there any particular node that I need to control?

Many thank
You're checking the wrong log file. You sent the management console log, and you need to check the 3cxSystemService.log file.
 
Sorry Ernesto,
I've checked the right file now, but I don't find error
 

Attachments

What's the problem in this case? I see a contact being matched in the log? What's not working as expected?
 
What's the problem in this case? I see a contact being matched in the log? What's not working as expected?
THIS IS THE PROBLEM:D:D:D!!!
As you said the incoming call has get one match, but the CRM don't get the information from PBX.
In my head the problem is NOT in the PBX, but in the CRM System that don't get the information correctly.
I'm not a program builder, and I need a confirmation from somone else (as you) more skilled that can confirm that. The CRM Programmer is saing that is an our problem.
Thank you
 
So to get this clear, the problem is that you're not getting the call journaling entry, correct?

From the log I can see that the call is received from a number that you already have in 3CX Contacts. This is visible in this line:
2020/03/17 17:50:35.524|19422|0011|Verb|CRM: LocalMatches=16. Number=0438408203, connection=971, state=Dialing

LocalMatches=16 means that there is a contact in 3CX Contacts, with ID 16, which has the number 0438408203. After this, the contact lookup is performed anyway, but the matching contact is still the previous one. This is why the call journaling is not being triggered, because from the 3CX perspective, the call comes from a normal 3CX contact, and not a CRM contact.

In order to get this working, you need to delete the existing contact from 3CX Contacts having the caller number of your test. This way, when you receive the call, the contact will be synchronized from the CRM to 3CX Contacts, and call journaling should be triggered at the end of the call.
 
Thank you Ernersto. For information, where can I find the log for the call? I'll explain clearly. If I want to trace the request of communication between PBX & CRM, is there any place where i find this?
 
Thank you Ernersto. For information, where can I find the log for the call? I'll explain clearly. If I want to trace the request of communication between PBX & CRM, is there any place where i find this?
The 3cxSystemService.log file is the one that has all the interactions between 3CX and the CRM.
 
Thank you Ernesto. Very clear and. Now, is a programmer's problem.
Have a nice day.
 
Status
Not open for further replies.

Forum statistics

Threads
112,326
Messages
591,900
Members
165,479
Latest member
Senergia