CRM Lookup By Number Successful, but does not show if not Added to 3CX company phonebook

Status
Not open for further replies.

shak

Customer
Joined
Oct 3, 2020
Messages
19
Reaction score
2
Hi,

We wanted CRM Lookup By Numbers to always take place, and didn't want to store the results in the 3CX company phonebook.

When we switch off the "Add CRM contacts to 3CX company phonebook when a call or message is sent or received." setting, we can see a lookup occurring when a phone call comes in, but it doesn't get passed through to the client.

When it is switched on, it does.

In both cases, we can see a SQL lookup occurring and the same result being returned.

We had set Query CRM to Always.

Any idea if what we're trying to do is possible? i.e. not store the results, but still be able to pass the looked up Caller ID?

Currently on 18.0.

Thanks
 
The information retrieved from the CRM will be passed to the Web Client, no matter if the contact is in the phonebook or not. If you use desk phones, then the information is only passed if the contact is in the 3CX phonebook.
 
  • Like
Reactions: shak
Considering that you have version 18.0 installed, there may be some bug or limitation associated with this version. Consider upgrading to the latest version of 3CX where the issue may have been resolved or improved.
 
Considering that you have version 18.0 installed, there may be some bug or limitation associated with this version. Consider upgrading to the latest version of 3CX where the issue may have been resolved or improved.
There are no reported bugs related to this. The contact matching works and the contact details are passed to the Web Client. If this is not happening, most probably the configuration is wrong.
 
Hi,

Thank you for your answers.

Any tips on regularly cleaning up the database? Can we run some soft of command line tool / batch job to weed out the orphans?

Thanks
 
You have a Bulk delete button in the admin console, so you can delete all the CRM records for example.
 
You have a Bulk delete button in the admin console, so you can delete all the CRM records for example.

Yeah thats handy for doing it in person. Used it last time.

Here’s hoping that there is (or can be, one day), some way of doing it automatically, or programmatically.
 
Adding contacts to the phonebook is optional. Popup and such will work without enabling that.
 
  • Like
Reactions: edossantos
Adding contacts to the phonebook is optional. Popup and such will work without enabling that.

Not for us. The number must show on the desk phones. And so adding to the phone book is also a must.
 
  • Like
Reactions: Evolute IT
How is the CRM integration of 3CX intended?

The way it reads on the website and in the YouTube video linked there, the caller should be displayed even if the CRM contacts are not stored in the 3CX company phonebook! (see https://www.3cx.com/call-center/crm-integration/ and
)

We do manage our contacts in the CRM so we don't have to store them in other places and the CRM "integration" of 3CX should simply be able to access this location and display the caller information or how is it intended by 3CX?
In which clients should the caller data from the CRM be displayed when CRM integration is activated? (WebApp, 3CX Desktop App, Mobile App (Android/iOS)?)

Since the integration and query runs on the server side, could the information be displayed on all clients?
 
To elaborate further regarding CRM contacts, when the call comes to the PBX and the integration is configured, the PBX will take the caller id and sent it to the CRM to perform a contact lookup. If there is a valid match returned from the CRM you will be able to see this information. This will be displayed in the 3CX Dialer of the Web Client and if you have enabled a specific option in the CRM integration configuration this will also be synced in the 3CX Phonebook. This will also apply if still this is not a contact in the CRM but you do want to add it to the CRM or not.
Once there is valid match this also return a redirect url that is synced with the contact and this will pop-up the contact from the CRM page. Note that this apply to all users by default.
 
Thank you for your prompt reply @TheodorosG_3CX

The display of the caller name and company is not working for us even if the CRM integration test function in the backend can resolve the caller number - see below. Any idea what we are doing wrong?
And why is it only meant to be shown in the 3CX Dialer of the Web Client - why not in other clients like the smartphone apps or 3CX desktop app?

1712211322706.png
 
The information will be displayed in the clients however pop-up will not be possible for the mobile app.
Is this a supported CRM integration or a custom?
 
Dear @TheodorosG_3CX ,

this is a custom integration. We developed a REST API for the ERP system "Sage 100" which is widely used in SMEs in Germany.

We configured the integration with help of the 3CX Template Generator.
I have attached the anonymized XML file (deleted the URL) from the 3CX Template Generator for the 3CX CRM integration for your reference.

As you can see in the screenshot from my post above, the contact is correctly queried from the CRM system so I don't know why it is not working.
Do you have an idea on how we can debug this? Is there a specific log during an incoming call where we could see what the CRM integration is doing in regards to contact lookup?
 

Attachments

In order to check the behavior set the PBX in verbose and make some test call.
Be aware that the called number should not also be a mobile number of an extension configured in the PBX.
Once you make some test calls generate the support info files and check the system service log file. There you will be able to see all the information that you need to debug.
 
Dear @TheodorosG_3CX
Thank you we have tried to debug and looked into the files. We have found that in our XML file the path in the <Rule Type="Any">Kontakt.Nummer</Rule> was wrong (but exported like this by the 3CX Template Generator). We changed it to <Rule Type="Any">Nummer</Rule> and now the output of the "test" function in the 3CX backend shows that the variable of the contact lookup fields are filled correctly (see screenshot below, and XML file in the attachment):
example_contact_lookup.png

However, it is still not working for us to show the caller name and company name when someone of our CRM contacts calls.
Our CRM system replies with the following JSON response - can you please check what is wrong with this output?

{

"$updated": "2024-04-08T14:20:44+02:00",

"$descriptor": "Kontakt",

"Nummer": 1xxx,

"Vorname": "Nxxx",

"Nachname": "Hxxx",

"Matchcode": "Sxxx K., Mannheim",

"EMail":

}
 

Attachments

Last edited:
Under Dashboard<<Advanced<<Contacts<<Options set the matching strategy to match exactly and make the test with the complete number as is it saved in your CRM, what is the results?
 
We had already set this option to "Match exactly".

I have added the XML file as an attachment to my post above. How does the output form my post above look? Any mistakes in the JSON response?
 
Have you checked the system service log file?
What is the answer from the CRM when making a call?
 
Below is an excerpt of the system log file with CRM relevant entries. Attached the full version.

2024/04/08 16:09:24.136|17504|0005|Verb|CRM: Not processed. Number=06xxx, connection=884, state=Dialing
2024/04/08 16:09:24.136|17504|0005|Verb|CRM: Add to processing. Number=06xxx, connection=884, state=Dialing
2024/04/08 16:09:24.136|17504|0005|Info|CRM: ProcessActiveConnections(). Attached entries to connection:
2024/04/08 16:09:24.136|17504|0005|Verb|CRM: LocalMatches=. Number=06xxx, connection=884, state=Dialing
2024/04/08 16:09:24.136|17504|0005|Info|CRM: Synchronize(...) called
2024/04/08 16:09:24.136|17504|0028|Info|CRM: maxConcurrency=2
2024/04/08 16:09:24.136|17504|0028|Info|CRM: making request to CRM. Number=06xxx
2024/04/08 16:09:24.136|17504|0028|Trac|CRM: Obtaining scenario entity order for entity ''
2024/04/08 16:09:24.136|17504|0028|Trac|CRM: Ordering configuration not found, using scenario entity order 0 for entity ''
2024/04/08 16:09:24.136|17504|0028|Verb|CRM: Processing scenario 'Default'.
2024/04/08 16:09:24.136|17504|0028|Verb|CRM: Creating new HttpClient for Basic authentication
2024/04/08 16:09:24.137|17504|0028|Verb|CRM: Performing GET request 'https://test.com:1234/sdata/ol/SDataContractProvider/Sage;1/Kontakt?nummer=06xxx'.
2024/04/08 16:09:24.137|17504|0028|Info|[System.Net.Http.HttpClient.Default.LogicalHandler] Start processing HTTP request GET https://test.com:1234/sdata/ol/SDataContractProvider/Sage;1/Kontakt?nummer=06xxx
2024/04/08 16:09:24.137|17504|0028|Info|[System.Net.Http.HttpClient.Default.ClientHandler] Sending HTTP request GET https://test.com:1234/sdata/ol/SDataContractProvider/Sage;1/Kontakt?nummer=06xxx
2024/04/08 16:09:24.306|17504|0028|Info|[System.Net.Http.HttpClient.Default.ClientHandler] Received HTTP response headers after 169.2968ms - 200
2024/04/08 16:09:24.306|17504|0028|Info|[System.Net.Http.HttpClient.Default.LogicalHandler] End processing HTTP request after 169.6164ms - 200
2024/04/08 16:09:24.306|17504|0028|Verb|CRM: The response is: '{"$updated":"2024-04-08T16:09:43+02:00","$descriptor":"Kontakt","Nummer":12167,"Vorname":"Nxxx","Nachname":"Hxxx","Matchcode":"SxxxK., Mannheim","EMail":""}'
2024/04/08 16:09:24.307|17504|0028|Verb|CRM: Filtered variables for matching:
2024/04/08 16:09:24.307|17504|0028|Verb|CRM: 'FirstName' = 'Nxxx'
2024/04/08 16:09:24.307|17504|0028|Verb|CRM: 'Email' = ''
2024/04/08 16:09:24.307|17504|0028|Verb|CRM: 'CompanyName' = 'SxxxK., Mannheim'
2024/04/08 16:09:24.307|17504|0028|Verb|CRM: 'LastName' = 'Hxxx'
2024/04/08 16:09:24.307|17504|0028|Verb|CRM: 'ContactID' = '1xxx'
2024/04/08 16:09:24.307|17504|0028|Verb|CRM: Removed from processing. Number=06xxx
2024/04/08 16:09:24.307|17504|0028|Info|CRM: processing of 06xxx has been finished
2024/04/08 16:09:42.410|17504|0005|Verb|CRM: call ended and contact lookup is complete, reporting call...
2024/04/08 16:09:42.411|17504|0031|Verb|CRM: Call Journaling event received, but CRM template doesn't implement the ReportCall scenario, discarding event.
 

Attachments

Status
Not open for further replies.