Если CRM не находит существующий контакт по телефону, хотя он точно есть в базе, почти всегда виновата разница в формате хранения номера, а не сама логика поиска.
Разные форматы — разные строки для компьютера
«+79181234567», «89181234567», «9181234567», «+7 (918) 123-45-67» — для человека это один номер, а для точного текстового поиска в базе данных — четыре разные строки. Поиск найдёт совпадение, только если формат запроса совпадает с форматом хранения.
Решение — нормализация перед поиском и сохранением
Приводите номер к единому формату (например, только цифры с кодом страны — 79181234567) и на этапе сохранения контакта, и на этапе поиска перед созданием нового. Если это делается только в одном месте, часть номеров всё равно будет расходиться по формату.
Ведущий ноль и код страны — частая ловушка
Номер, введённый как «89181234567», после наивной нормализации может превратиться в «789181234567» вместо «79181234567», если просто убрать первую цифру не тем способом. Тестируйте нормализацию на реальных примерах с разными форматами ввода, а не только на одном ожидаемом случае.
Проверьте, где именно теряется совпадение
Выведите в лог нормализованный номер, который отправляется в запрос поиска, и сравните его напрямую со значением в базе — расхождение обычно видно сразу при таком прямом сравнении.



