Custom Id

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

Каждый контакт в сервисе должен иметь по крайней мере один идентификатор. Самый простой пример - адреса электронной почты. Custom Id является одним из таких идентификаторов, при этом он не может меняться во времени, как, например, емейл или телефон. Если в какой-то системе вы храните базу контактов, каждому из которых присвоен уникальный айди, то именно по нему вы можете жестко связать свой источник с enKod.

Функционал в данный момент находится в разработке, но основная часть доступных действий над контактами вы уже можете производить через Custom Id.

По умолчанию отображение custom id в интерфейсе отключено. Это сделано для вашего удобства и не влияет на возможность работы с custom id: их по-прежнему можно передавать. Отображение custom id в интерфейсе можно включить через Настройки → Аккаунт → Общие настройки. Чтобы изменения применились, не забудьте нажать на кнопку «Сохранить».

При активации отображения custom id в интерфейсе он появится:

  • в карточке контакта
  • в списке контактов
  • в списке в сегментах
  • в сценариях
  • в деталях сообщений
  • в отчетах

Работа с Id

В данный момент передать в enKod Id возможно по API с помощью методов:

или через ручной импорт контактов в интерфейсе enKod: Данные → Импорты → Создать импорт → Ручной → Импорт контактов

Изменить id по другому идентификатору или id по id можно с помощью метода:

Получить id контакта с помощью метода:

Отправить сообщения по API на Id:

Логика работы Id

При передаче id в запросах на создание/обновление контакта действуют следующие правила:

  • создаем контакт, если он не существует
  • обновляем, если он существует
  • присваиваем значения полей данных, если они переданы
  • присваиваем теги, если они переданы
  • если находим контакт с таким id в удаленных: восстанавливаем с сохранением истории и со значениями полей данных, переданные поля данных перезаписываем на те, что переданы в запросе, непереданные не изменяем, но восстанавливаем их значения
  • если переданы группы рассылок с id нового контакта (при этом, емейл/телефон не переданы) - не подписываем на группы рассылок
  • если переданы группы рассылок с id существующего контакта (у которого есть емейл/телефон) - подписываем на те группы рассылок, каналы которых у контакта заполнены, на остальные не подписываем
  • если передан контакт с id И емейлом/телефоном и такой id есть в базе - обновляем контакту емейл/телефон на новые из запроса, историю сохраняем
  • если передан контакт с id И емейлом/телефоном и такого id нет в базе, но есть емейл/телефон - добавляем id существующему контакту с емейлом/телефоном
  • если передан контакт с id, емейлом И телефоном, то параметр mainChannel игнорируем, т.к. id всегда является главным идентификатором
  • если передан контакт с id, емейлом, телефоном, и все три идентификатора существуют у трех разных контактов - забираем емейл/телефон у существующих контактов и записываем их переданному контакту с id
  • если мы забрали у контакта все ее идентификаторы, то контакт удаляется
  • если у контакта забрали идентификаторы, по которым он был подписан на группы рассылок, то он будет отписан

При передаче id в запросах на изменение идентификатора контакта действуют следующие правила:

  • можно изменить емейл по id, телефон по id, id по id
  • при изменении для удаленного контакта - не восстанавливаем контакт, но изменяем то, что передано в запросе
  • допустимо изменение на пустоту, если останется хотя бы один идентификатор
  • при изменении идентификатора существующего контакта на идентификатор удаленного, емейл/телефон/id у удаленного контакта будет очищен
  • недопустимо изменение телефона/емейла/id на тот, который уже привязан к существующему контакту

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

Последнее изменение: 2024.11.01 07:52 — Elizaveta Ivannikova