Зарегистрируйтесь и обратитесь в поддержку, чтобы получить 100 бесплатных проверок.Зарегистрироваться бесплатно
Иллюстрация процесса CarrierLookup к статье «Пустые результаты Определение исходного оператора: завершенные, отсутствующие и неопределенные исходы»
Наглядная схема процесса, рассматриваемого в этой статье CarrierLookup.

Руководство по принятию решений для сохранения корректного значения пустых и недоступных результатов Определение исходного оператора.

Пустой результат при поиске оператора не всегда означает одно и то же. Завершенный одиночный запрос может содержать пустые сведения об операторе, строка в синхронном пакетном запросе может не иметь нормального результата, а неопределенная проверка может вернуть ненулевой бизнес-код вместо завершенных данных. Эти случаи требуют раздельных состояний в базе данных приложения. Сохраняйте исходный номер и результат попытки вместе с любыми полями оператора, а недоступную информацию помечайте как недоступную. Ни один из этих исходов сам по себе не устанавливает, активен ли номер, может ли он получать сообщения или какая сеть обслуживает его в данный момент после переноса.

Классифицируйте пустой результат Определение исходного оператора перед его использованием

Начните с бизнес-результата, затем ознакомьтесь с доступными полями. Завершенный одиночный запрос может не содержать значений оператора, даже если сам поиск был выполнен успешно. Пустые значения оператора, базового оператора, региона или города означают, что эти фрагменты контекста распределения были недоступны в данном результате. Они не превращают завершенную попытку в определение номера как недействительного. Завершенный результат все равно может быть оплачиваемым завершенным запросом согласно контракту на продукт, поэтому биллинг и интерпретация данных должны оставаться отдельными задачами.

Синхронная пакетная проверка содержит упорядоченную строку для каждого отправленного номера. Если в строке нет нормального результата, пометьте обогащение данных как недоступное для этого ввода. Избегайте преобразования этого состояния в «не является номером», «нет оператора» или «отключен». Отдельный неопределенный бизнес-результат означает, что сервис не предоставил завершенный результат по оператору; его не следует сохранять как полностью пустую завершенную строку. Официальная документация API является источником актуальных кодов исходов и контракта интеграции.

Практическое различие заключается в отсутствии информации и фактическом отрицательном результате. Определение исходного оператора предоставляет контекст первоначального распределения, когда он доступен. Он не предлагает отрицательного заключения о статусе обслуживания, владении или возможности связи.

Разделяйте транспортные, бизнес-результаты и результаты обработки данных

Конвейер обработки данных обычно состоит из трех уровней для проверки. Во-первых, достиг ли HTTP-запрос сервиса и дал ли он пригодный для использования ответ? Во-вторых, сообщил ли сервис о завершенном поиске или другом бизнес-исходе? В-третьих, какие поля распределения были заполнены? Единое логическое значение «оператор найден» объединяет эти уровни и создает ошибки на последующих этапах. Тайм-аут HTTP может оставить приложение вообще без ответа. Бизнес-ответ может быть неопределенным. Завершенный ответ может содержать пустые необязательные детали.

Моделируйте эти различия в своем хранилище, не выдавая их за свойства ответа. Например, приложение может использовать внутренние метки completed_with_details, completed_empty, multi_unavailable, undetermined, input_rejected и transport_error. Сохраняйте временную метку и нормализованный ввод E.164 вместе с состоянием. Оставляйте необязательные поля оператора и распределения пустыми или со значением null, не заполняя их предполагаемыми значениями.

Сделайте состояние видимым для аналитиков. На панели мониторинга должно быть написано «информация о распределении недоступна для данной проверки», а не подразумеваться, что номер неактивен. Экспорт данных должен сохранять столбец состояния, чтобы пользователи электронных таблиц на последующих этапах не интерпретировали пустую ячейку как подтвержденный отрицательный результат. Если поле CRM принимает только текст, добавьте отдельное поле для источника или проверки вместо вставки вводящего в заблуждение названия оператора.

Установите правила повторных попыток и проверки для каждого исхода

Отклонение ввода требует исправления, а не слепой повторной попытки. Проверьте наличие знака «плюс», кода страны и номера абонента без пробелов или разделителей. Местный номер нельзя безопасно сделать международным, угадывая его страну. Руководство Twilio по ошибкам E.164 содержит полезное описание распространенных ошибок форматирования, но правила API регулируются собственной документацией CarrierLookup. Ставьте в очередь некорректные или неоднозначные исходные записи для нормализации и сохраняйте исходный текст для уполномоченного проверяющего.

Временная транспортная ошибка может быть повторена в соответствии с политикой приложения с использованием экспоненциальной задержки и ограничения. Не рассматривайте локальный тайм-аут как доказательство того, что удаленный сервис не выполнил работу. Неопределенный исход может потребовать ограниченной повторной попытки позже, если рабочему процессу нужно больше контекста, но он должен оставаться неопределенным до тех пор, пока не придет новый завершенный результат. Повторная проверка завершенного пустого результата — это отдельное редакционное или бизнес-решение: повторяющиеся запросы не являются гарантией того, что недоступные данные о распределении появятся. Отслеживайте повторяющиеся попытки, чтобы избежать скрытых циклов и ненужного использования общего баланса.

Для синхронного пакетного запроса сохраняйте весь контекст запроса, его упорядоченные входные данные и соответствующие исходы. Если пакетный запрос целиком завершается по тайм-ауту, не записывайте строки частичного успеха. Повторно поставьте группу в очередь в соответствии с вашей политикой или передайте ее на ручную проверку. Сохраняйте любую успешную последующую попытку как новое наблюдение, а не молча перезаписывайте исторический исход.

Используйте контекст первоначального распределения в контактных записях с осторожностью

Когда нормальный результат содержит оператора, название описывает оператора, которому изначально был выделен диапазон номеров. Перенос номера может изменить обслуживающую сеть, поэтому результат не является наблюдением за текущим оператором. Тип номера и регион распределения могут помочь команде отсортировать записи для проверки, в то время как регион и город относятся к диапазону номеров, а не к местоположению человека или устройства. Не используйте эти поля в качестве доказательства согласия, владения, идентичности, активности или возможности доставки сообщений.

Применяйте те же границы к пустым результатам. Пустой регион не следует заполнять на основе почтового адреса контакта; это разные концепции. Пустого оператора не следует выводить из кода зоны или сторонней таблицы префиксов без записи отдельного источника и метода. Если команде нужно получить ответ на другой вопрос, например, использует ли контакт все еще номер, требуется соответствующим образом определенный процесс и доказательства, а не переинтерпретация данных о распределении оператора.

Полезная проверка качества включает выборку записей из каждого класса исходов и проверку того, как они отображаются в CRM, экспорте CSV и отчетах аналитиков. Убедитесь, что завершенный пустой результат остается отличным от неудачной попытки после каждого преобразования. Также проверяйте объединения и дедупликацию: две строки контакта могут иметь общий входной номер, но разные ключи исходных записей, поэтому результат поиска не должен молча перезаписывать несвязанные доказательства контакта.

Часто задаваемые вопросы

Означает ли пустое поле оператора, что номер недействителен?

Нет. Завершенный поиск может вернуть пустые поля распределения, оставаясь при этом завершенным поиском. Сохраняйте состояние завершения отдельно от пустого поля и описывайте детали оператора как недоступные. Действительность номера, статус обслуживания и возможность связи — это разные вопросы. Если ввод был отклонен из-за формата, запишите это как проблему ввода, а не объединяйте с категорией «завершенный пустой».

Как командам следует обрабатывать пакетную строку без нормального результата?

Сохраните позицию ввода строки и соответствующий ключ исходной записи, затем пометьте исход обогащения как недоступный. Не помечайте номер как отключенный или не имеющий оператора. Синхронный пакетный ответ следует порядку ввода, поэтому позиционное сопоставление является надежным способом связать строку с отправленным номером. Последующая попытка, если она оправдана, должна быть сохранена как новое наблюдение.

Следует ли сохранять неопределенную проверку как завершенный пустой поиск?

Нет. Неопределенный бизнес-исход не вернул завершенный результат по оператору. Присвойте ему собственное состояние и сохраните время попытки и ввод для проверки. Ограниченная повторная попытка может быть разумной для рабочего процесса, которому нужны данные, но более раннее неопределенное состояние должно оставаться в журнале аудита. Оно не должно становиться фактом пустого оператора только потому, что значение недоступно.

Узнайте больше

Выберите информацию о продукте, которая соответствует следующему шагу в вашем рабочем процессе.

Источники