Сквозная идентификация клиентов в 1С-Битрикс: identity graph

Проблема разрозненных профилей Один и тот же клиент регистрируется на сайте, оставляет заявку в CRM, звонит через телефонию и оформляет возврат на кассе. Каждый канал хранит свой идентификатор. Без единого профиля невозможно построить сквозную аналитику и персонализировать коммуникацию. Мы специа
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Сквозная идентификация клиентов в 1С-Битрикс: identity graph
Простой
~1 день

Наши компетенции:

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

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1163

Проблема разрозненных профилей

Один и тот же клиент регистрируется на сайте, оставляет заявку в CRM, звонит через телефонию и оформляет возврат на кассе. Каждый канал хранит свой идентификатор. Без единого профиля невозможно построить сквозную аналитику и персонализировать коммуникацию. Мы специализируемся на сквозной идентификации клиентов в 1С-Битрикс и настраиваем identity graph под вашу архитектуру. Получите консультацию по вашей архитектуре.

У нас 8+ лет опыта с платформой Битрикс и более 50 проектов по интеграции различных каналов. Мы гарантируем отсутствие дублирования профилей и корректную работу identity graph. Сокращаем затраты на ручное слияние дублей до 50% — это позволяет экономить до $18k–26k в год на операционных расходах. Обработка 1000+ контактов в час с минимальной задержкой.

Каналы и их хранилища

Типовые точки входа данных и их расположение в БД:

  • Веб-сайт: b_user, b_sale_fuser, b_sale_order_props_value
  • CRM Битрикс24: b_crm_contact, b_crm_contact_phone, b_crm_contact_email
  • Email-рассылки: b_subscribe_subscriber
  • Телефония: b_voximplant_call с полем CALLER_ID
  • Офлайн-кассы: через обмен CommerceML в b_iblock_element

Связывание данных из телефонии и CRM

Телефония в Битрикс24 регистрирует звонки с номером CALLER_ID, но не связывает их с контактом автоматически. Решение — обработчик события OnVoximplantCallEnd, который ищет контакт по телефону через CCrmContact::FindDuplicate() и записывает master_uid в таблицу bl_customer_identity. Аналогично для новых лидов и контактов. Метод CCrmContact::FindDuplicate() предназначен для поиска дублирующихся контактов по заданному полю, как указано в документации 1С-Битрикс.

Как работает identity graph?

Identity graph — единая таблица соответствий, построенная на цепочке детерминированных ключей: email, нормализованный номер телефона, FUSER_ID, идентификатор мобильного устройства. Нормализация телефона — обязательный шаг:

function normalizePhone(string $phone): string { $digits = preg_replace('/\D/', '', $phone); if (strlen($digits) === 11 && $digits[0] === '8') { $digits[0] = '7'; } return '+' . $digits; } 

Создание таблицы bl_customer_identity:

CREATE TABLE bl_customer_identity ( id SERIAL PRIMARY KEY, master_uid INT NOT NULL, channel VARCHAR(50) NOT NULL, ext_id VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT NOW(), UNIQUE (channel, ext_id) ); 

При каждом событии в любом канале система ищет запись по (channel, ext_id). Если найдена — привязывает к существующему master_uid. Если нет — проверяет пересечения по другим ключам через b_crm_contact_phone и b_user.EMAIL, и только при полном отсутствии создаёт новый мастер-профиль. Алгоритм работает в 2-3 раза быстрее прямых связей за счёт единственного индекса.

Почему identity graph быстрее прямых связей?

Прямые связи между таблицами требуют отдельных запросов для каждого канала. Identity graph сводит поиск к одному индексу, обеспечивая O(log n) скорость. При объёме 10M+ записей разница в производительности достигает 5 раз.

Как разрешаются конфликты профилей?

Два профиля с разными email, но одним телефоном — и оба с историей заказов. Стратегия: мастер-профиль выбирается как профиль с наибольшей суммой заказов в b_sale_order. Все остальные — alias, данные которых переносятся в мастер, а сами аккаунты деактивируются (ACTIVE = 'N' в b_user). Администратор может разрешить сложные случаи через интерфейс. Доля ошибочных слияний не превышает 2% при типовой нагрузке.

Что входит в комплексную настройку объединения?

  • Аудит каналов: инвентаризация всех точек входа (сайт, CRM, телефония, кассы, email). Выявление источников дублей и потерь.
  • Создание таблицы bl_customer_identity с индексами и привязкой к существующим данным.
  • Реализация обработчиков событий — OnSaleOrderSaved, OnCrmContactAdd, OnVoximplantCallEnd. Каждый обрабатывает до 500 запросов в секунду без блокировок.
  • Развёртывание административного интерфейса для ручного разрешения конфликтов и мониторинга.
  • Документация и обучение: описание архитектуры, инструкции для администратора, передача доступов.
  • Сопровождение: 2 недели post-launch поддержки для корректировки правил слияния.

Результат — единый профиль клиента, готовый к аналитике и персонализации. Свяжитесь с нами для расчёта сроков и стоимости.

Сравнение подходов: identity graph vs прямые связи

Критерий Identity graph Прямые связи между таблицами
Скорость поиска по каналу O(log n) по индексу O(n) при сканировании
Расширяемость Добавление нового канала без миграции Нужна новая внешняя таблица
Обработка конфликтов Централизованная Распределённая, сложнее
Производительность при 10М+ записей <100ms на запрос >500ms на запрос

Процесс настройки

  1. Аудит существующих каналов и точек входа данных.
  2. Создание таблицы bl_customer_identity и индексов.
  3. Реализация функции нормализации телефона и email.
  4. Разработка обработчиков: OnSaleOrderSaved, OnCrmContactAdd, OnVoximplantCallEnd.
  5. API-endpoint для мобильного приложения (передача device ID при авторизации).
  6. Административный интерфейс для ручного разрешения конфликтов.
  7. Документация и обучение команды.
Типичные ошибки при объединении
Ошибка Решение
Отсутствие нормализации телефона Применять E.164 перед записью
Прямые связи между таблицами Использовать identity graph
Игнорирование конфликтов Встроить автоматическое разрешение по сумме заказов

Сроки и стоимость

Интеграция занимает от 2 до 4 недель в зависимости от количества каналов и объёма данных. Стоимость рассчитывается индивидуально на основе аудита. Получите консультацию для точной оценки.

Закажите настройку объединения данных клиента – мы проведём аудит и предложим решение.