Менеджеры пожаловались: при входящем звонке Odoo «через раз» не узнаёт клиента и пишет «контакт не найден», хотя клиент точно есть в базе. Незадолго до этого переносили телефонную станцию, и первым подозревали именно её. Оказалось, что станция ни при чём.
Как искали
Всплывающее окно открывает отдельный процесс: он слушает события АТС и по номеру звонящего ищет контакт в Odoo. За три дня из 81 всплывающего окна 48 написали «контакт не найден». Мы взяли 15 таких номеров и вручную поискали их в базе — 8 из них нашлись. Значит, контакты есть, а поиск их не видит. Процесс прослушивания АТС за эти дни прерывался всего один раз, на 39 минут, — на такую долю промахов это не тянет.
В чём причина
Поиск сравнивал последние цифры номера с полем телефона, из которого убирались только пробелы. Но номер, введённый через стандартный виджет, сохраняется с дефисами: «+7 913 464-39-27». После удаления пробелов дефисы остаются, и совпадения нет. Таких контактов в базе было 629, и их число росло с каждым новым клиентом. «Через раз» объяснялся просто: контакты, записанные без дефисов, находились, а записанные через виджет — нет.
Нашлась и вторая мелочь: мусорный контакт с именем «-» и чужим номером перехватывал совпадения у настоящих клиентов.
Что исправили
- Номера сравниваются только по цифрам: пробелы, дефисы и скобки больше не мешают.
- Если номер нашёлся у нескольких контактов, побеждает самый старый — именно он обычно и есть настоящий клиент.
- Проверили поиск на реальных номерах, которые раньше не находились.
Окно, которое мешало работать
Вторая жалоба была от самих менеджеров: при каждом звонке Odoo принудительно открывал карточку клиента. Человек заполнял заказ или писал письмо — и терял экран, а после разговора вспоминал, на чём остановился. Теперь в углу экрана появляется уведомление «Входящий звонок» с именем и номером. Оно висит 30 секунд и исчезает само, а карточка открывается только по кнопке «Открыть». Для незнакомого номера та же кнопка открывает создание контакта. Кому и уведомление мешает, может выключить его в своём профиле.
Итог
Звонящий определяется независимо от того, как записан его номер. А звонок больше не вырывает менеджера из текущей задачи. Вывод для любых интеграций с телефонией: сравнивать номера нужно только по цифрам — форматирование в карточках рано или поздно окажется любым.