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

В процессе импорта платформа сравнивает эти данные с теми, что уже есть в базе. Если она находит профиль с такими же данными, то обновляет его. Если не находит — создаёт новый профиль.
Обратите внимание, данные, которые вы собираетесь использовать для поиска, должны быть в источнике. Например, если вы импортируете данные из файла и выбираете режим поиска по email, убедитесь, что у вас есть колонка с email-адресами в вашем файле.
Режимы поиска
Доступны следующие режимы поиска:
- По email-адресу из профиля или подписок — по полю профиля Email или по email-адресам из подписок.
- По email-адресу из профиля — только по полю профиля Email.
- По email-адресу из подписок
- По телефону из полей данных или подписок — по полю профиля Телефоны или по телефонам из SMS подписок.
- По телефону из SMS подписок
- По Push-данным из подписок — по идентификатору Push-подписки (токену устройства).
- По идентификатору устройства (
device_id) из подписки на In-App-канал - По идентификатору профиля — по системному идентификатору profile_id.
- По пользовательскому полю — по пользовательскому полю базы данных. Например, ID клиента в CRM компании.
- По пользовательскому полю из подписок
- Мультиматчинг — по Email или телефону из профиля и подписок (email_phone), или по email или телефону из подписок (email_phone_sub).
Особенности работы матчинга
Есть несколько важных нюансов, связанных с матчингом:
- Поле, по которому осуществляется поиск, должно быть уникальным для каждого профиля. Значение этого поля не должно совпадать у разных профилей в одной базе данных.
- Не рекомендуется использовать разные типы матчинга в одной базе данных, чтобы избежать дублирования профилей.
- Если при импорте или обновлении профилей через API не передавать режим поиска в поле matching, платформа будет искать профиль по email-адресу по умолчанию.
Если вы собираетесь пользоваться матчингом по пользовательскому полю, вам нужно обратиться к администратору платформы для создания индекса этого поля. Благодаря индексу поиск профиля в базе будет занимать значительно меньше времени.
Механизм обработки профиля
Получив данные о клиенте (из файла, через API или из внешней SQL таблицы), платформа обрабатывает их в следующем порядке:
1. Поиск профиля. Платформа ищет в базе профиль, у которого значение поля поиска совпадает с данными из источника.
- Профиль найден — он обновляется.
- Профиль не найден — создаётся новый профиль.
- Если в API-запросе не передать способ поиска профиля, платформа ищет по email-адресу.
2. Режим импорта. В зависимости от выбранного способа импорта платформа может по-разному отреагировать на найденный или ненайденный профиль:
- Добавить новых и обновить существующих — найденный профиль обновляется, ненайденный создаётся.
- Только добавить новых — если профиль с такими данными уже есть в базе, запись пропускается: существующий профиль не обновляется, новый не создаётся.
- Только обновл ять существующих — если профиль не найден, новый не создаётся: запись пропускается.
3. Обновление полей. Обновляются только те поля, которые переданы в данных. Значения остальных полей профиля не изменяются.
- По умолчанию пустое значение в источнике перезаписывает текущее значение поля в базе.
- Если активирована опция «Игнорировать пустые значения», пустые значения не обновляют поля — в них остаётся прежний контент.
4. Теги. Переданные в данных теги добавляются к уже имеющимся у профиля: существующие теги при этом не удаляются.
5. Подписки. Подписки на ресурсы добавляются и обновляются в соответствии с настройками подписок. При выборе небезопасного режима обновляются и подписки профилей со статусами Отписан, Жалобщик, Hardbounced и Не валиден.
Если при создании нового профиля email не передан, в поле Email записывается системная запись в виде profile_id@localhost.