Нормализация телефонных номеров до формата E.164 в BigQuery для проверки
Для нормализации номеров до E.164 в BigQuery сохраните исходные данные, удалите разделители в рабочей колонке и добавьте код страны только при наличии надежных данных.

Для нормализации телефонных номеров до формата E.164 в BigQuery перед использованием Определение исходного оператора сохраните исходный столбец, удалите символы форматирования в рабочей колонке и добавляйте код страны только в том случае, если это подтверждается достоверным полем страны. Для запросов в реальном времени в CarrierLookup сохраняйте ведущий знак «плюс». Для пакетной обработки файлов по одной стране экспортируйте цифры с кодом страны и сопоставляйте полученный CSV-файл, используя стабильный ключ.
Сохранение исходного номера и данных о стране
Не перезаписывайте единственную копию телефонного номера в процессе очистки. Создайте отдельные столбцы для исходного значения, кода страны, нормализованного кандидата и причины отклонения или необходимости ручной проверки. Источник может содержать национальный префикс набора, локальный формат или непоследовательно записанный код страны. Регулярные выражения позволяют удалить пунктуацию, но не могут определить, к какой стране относится номер. Это решение требует наличия надежного поля страны или других подтвержденных данных.
ITU E.164 recommendation определяет структуру международной нумерации. Запросы в реальном времени в CarrierLookup требуют наличия ведущего символа +, кода страны и номера абонента без пробелов и разделителей. Кандидат, состоящий только из цифр, не является автоматически действительным номером. Исключайте неопределенные значения из набора для проверки, пока они не будут разрешены вручную или с помощью проверенного правила нумерации.
Планируйте структуру экспорта заранее. Запросы в реальном времени для нескольких номеров могут включать номера из разных стран и возвращать результаты в порядке ввода. Пакетная обработка файлов в CarrierLookup принимает номера из одной выбранной страны. Разделяйте набор данных с номерами разных стран на основе надежных данных о стране перед подготовкой файлов; не выбирайте страну только на основе первых нескольких цифр.
Использование функций BigQuery для технической очистки
В справочнике строковых функций BigQuery описаны REGEXP_REPLACE, REGEXP_CONTAINS и связанные с ними функции. Используйте их для технических преобразований, таких как удаление пробелов, скобок и дефисов из копии исходного значения. Простое выражение, например REGEXP_REPLACE(raw_phone, r'[^0-9+]', ''), может создать кандидата для проверки, но оно также может сохранить неожиданный внутренний знак «плюс». После этого выполните проверку формата и направьте данные в карантин, вместо того чтобы отправлять каждый результат в API.
Для данных, которые уже хранятся с надежным ведущим знаком «плюс» и кодом страны, выражение-кандидат может удалять разделители, сохраняя этот знак. Для локальных номеров используйте правило нормализации для конкретной страны, проверенное в соответствии с текущими рекомендациями по нумерации. Общее правило «добавить код страны из CRM» рискованно, если исходное значение уже включает код страны или магистральный префикс. Документируйте конкретное преобразование, примененное к каждому типу источника, и проверяйте выборку результатов перед экспортом.
Практичная промежуточная таблица содержит raw_phone, country_source, normalized_e164, normalization_rule и review_status. Формируйте входные данные для проверки только из строк, помеченных как готовые. Это предотвращает ошибочное принятие отклоненного формата за результат «оператор не определен» и делает исправления обратимыми.
Подготовка пути для запросов в реальном времени
Для небольшого набора готовых данных экспортируйте строки E.164, такие как + с последующими цифрами кода страны, в рабочий процесс REST. Конечная точка POST /api/v1/batch-check принимает от 1 до 100 номеров и возвращает упорядоченный синхронный результат. Сохраните позиционное сопоставление элемента запроса с ключом исходной строки перед отправкой вызова. Не полагайтесь только на идентичные значения телефонов, если в CRM есть дубликаты.
Считывайте identifier и статус exists каждого возвращенного элемента. exists=false означает, что для элемента нет нормального результата; это не утверждение о том, что номер отключен. Успешный результат может содержать оператора, базового оператора, тип номера, код страны, регион и город, при этом необязательные поля могут быть пустыми. Сохраняйте время проверки и связь с входными данными для каждого результата в промежуточной таблице.
Одиночная проверка использует ту же форму E.164, когда оператору нужно проверить одну запись. Выполняйте аутентификацию с доверенного сервера, используя заголовок X-API-Key. Этот рабочий процесс дает командам по работе с данными возможность протестировать нормализацию на выборке перед отправкой гораздо большего подготовленного списка.
Подготовка пакетных задач по одной стране
Для большого списка создайте TXT или CSV с одним столбцом, содержащим по одному номеру с кодом страны в каждой строке, и выберите соответствующую страну ISO для пакетной задачи. Документированные входные данные должны принадлежать этой выбранной стране. При многокомпонентной отправке поле страны должно предшествовать файлу. Пакетная подготовка удаляет недействительные строки, дубликаты, строки без кода страны и номера вне выбранной страны. Проверяйте количество подготовленных данных, прежде чем считать исходный экспорт полностью обработанным.
Пакетная задача является асинхронной: отправьте ее с помощью POST /api/v1/bulk-tasks, сохраните ID задачи и запрашивайте GET /api/v1/bulk-tasks/{id} не чаще, чем раз в 30 секунд. Успешная задача предоставляет один CSV-файл. В нем идентификатор отображается как обычные цифры с кодом страны без знака «плюс». Это отличается от формы запроса в реальном времени, поэтому не объединяйте результат с полем исходного телефона путем прямого сравнения строк.
Создайте нормализованный ключ объединения, состоящий только из цифр, из каждого принятого кандидата E.164 и отдельно сохраните ключ исходной строки. Если входные данные содержат дубликаты номеров, пакетная подготовка может их объединить; решите, должен ли один результат быть связан с несколькими исходными записями. Сопоставляйте несоответствующие, недействительные и дублирующиеся исходные строки вне результирующего CSV-файла.
Проверка объединенных данных перед обновлением CRM
Полученный оператор описывает исходное распределение, а не текущего обслуживающего оператора после переноса номера. Регион и город — это география распределения, а не текущее местоположение. Внесите эти описания в словарь данных, чтобы аналитики не принимали название поля за доказательство того, где человек находится сейчас. Завершенный результат в реальном времени с code=0 может иметь пустые необязательные поля оператора; оставляйте пустые значения как «недоступно» вместо создания отрицательной метки.
Выполняйте выборку объединенных строк из нескольких исходных систем и стран. Проверяйте, что исходный номер, нормализованная форма E.164, ключ из цифр и идентификатор результата относятся к одним и тем же входным данным. Исследуйте несоответствия в промежуточной таблице перед записью значений в CRM. Сохраняйте временную метку проверки, так как контекст распределения может быть пересмотрен позже, а сама исходная запись может измениться.
Этот конвейер разделяет три задачи: BigQuery очищает известное представление, CarrierLookup предоставляет документированные поля распределения, а команда CRM решает, обновлять ли контакт и как именно. Такое разделение делает ошибки заметными и сохраняет результат оператора в рамках его надлежащего значения.
Часто задаваемые вопросы
Как команды могут удалить разделители номеров в BigQuery?
Используйте рабочую копию и документированные строковые функции, такие как REGEXP_REPLACE, а затем проверьте кандидата на соответствие ожидаемой форме E.164.
Как команды могут назначить код страны локальному номеру?
Используйте надежное поле страны и проверенное правило для конкретной страны. Помещайте в карантин строки, страна или форма набора которых неоднозначны.
Как команды могут объединить пакетный CSV с входными данными E.164?
Создайте стабильный ключ, состоящий только из цифр, из принятых кандидатов E.164 и сопоставьте его с идентификатором пакетного CSV, сохраняя при этом ID исходных строк.
Как команды могут обрабатывать список с номерами разных стран?
Используйте запросы в реальном времени для небольшого набора номеров из разных стран или разделяйте большие файлы по подтвержденному назначению страны перед пакетной отправкой.
Узнайте больше
Выберите информацию о продукте, которая соответствует следующему шагу в вашем рабочем процессе.