Как получить внешний ID клиента в аналитических экспортах
В аналитических экспортах все данные привязаны к внутреннему идентификатору клиента mindboxId. Чтобы использовать в аналитике на своей стороне внешний идентификатор (externalId), свяжите mindboxId с externalId и присоедините результат к нужным аналитическим таблицам.
Перед началом
Убедитесь, что у вас есть:
- настроенная интеграция «Данные для аналитики» и доступ к аналитическим экспортам (delta-sharing);
- ключ шифрования — находится в разделе Интеграции → Точка интеграции «Данные для аналитики» → Ключ шифрования.
Шаг 1. Выберите тип идентификатора
Внешние идентификаторы — это дополнительные поля с типом TechnicalIdentity или SocialNetworkIdentity. Список типов и их internalId доступны в таблице справочника дополнительных полей:
Code
Выберите нужный тип и запомните его internalId — это значение для фильтра customfieldKindInternalId в следующих шагах. Определить нужный тип можно по полям systemName или name, проверив их в интерфейсе Mindbox.
Шаг 2. Получите актуальную связку mindboxId → externalId
Таблица exports.CDP.ExternalCustomerIdsHistory хранит версии изменений внешних идентификаторов клиентов. Чтобы получить актуальное состояние, возьмите последнюю версию каждой записи и отбросьте удаленные:
Code
В результате:
unmergedCustomerId—mindboxIdклиента;value— внешний идентификатор клиента (зашифрован, расшифровка — в шаге 4).
customfieldKindInternalId — это тип идентификатора (ссылка на дополнительное поле), а не идентификатор клиента. Идентификатор клиента — unmergedCustomerId, внешний идентификатор — value.
Шаг 3. Учтите объединение клиентов
В Mindbox клиенты с одинаковыми контактными данными могут объединяться. После объединения в истории остаются записи по всем исходным клиентам (каждая со своим value), но с одним итоговым unmergedCustomerId. Из-за этого на один mindboxId может приходиться несколько значений value.
Для корректной связки:
- исходный
mindboxIdкаждого клиента до объединения хранится вhistoricalCustomerIdв таблицеexports.CDP.ExternalCustomerIdsHistory; - полную карту объединений
unmergedCustomerId → mergedCustomerIdможно получить с помощью экспорта объединений клиентов.
Если нужен ровно один последний внешний ID на клиента, после среза по версии возьмите последнюю запись по дате создания исходного слепка:
Code
Количество уникальных unmergedCustomerId и уникальных value может не совпадать — это нормальное поведение при объединении клиентов.
Шаг 4. Расшифруйте значение value
Значение внешнего идентификатора в поле value зашифровано. Для расшифровки используйте ключ шифрования из интерфейса Mindbox: Интеграции → Точка интеграции «Данные для аналитики» → Ключ шифрования.
Алгоритм и готовый пример на Python описаны в разделе «Зашифрованные данные».
Пример: внешний ID рядом со статусом рассылки
Задача: к каждой записи статуса рассылки добавить внешний идентификатор клиента.
Логика запроса:
- Получите статусы рассылок.
- Приведите
unmergedCustomerIdк актуальномуmergedCustomerIdчерез экспорт объединений клиентов. - Присоедините актуальный срез внешних идентификаторов по актуальному ID клиента.
Code
Пример построен на сырых данных аналитических экспортов (прямое чтение таблиц delta-sharing). Если на вашей стороне есть промежуточные преобразования перед записью в DWH, адаптируйте запрос под вашу модель данных. Описания полей и типов всех таблиц — в "Описании схемы данных".
Связанные материалы
- Описание схемы данных — единый справочник полей всех таблиц экспорта.
- Как прочитать данные — delta-sharing, шифрование, Python-коннектор.
- Как периодически обновлять данные — витрины с актуальным состоянием.
- Экспорт данных для аналитики — настройка интеграции.