Уникальный идентификатор, который задается во внешней системе, например, внешней CRM или сайте. Однозначно идентифицирует клиента, поэтому всегда должен быть уникальным.
Каждый контакт в сервисе должен иметь по крайней мере один идентификатор. Самый простой пример - адреса электронной почты. Custom Id является одним из таких идентификаторов, при этом он не может меняться во времени, как, например, емейл или телефон. Если в какой-то системе вы храните базу контактов, каждому из которых присвоен уникальный айди, то именно по нему вы можете жестко связать свой источник с enKod.
Функционал в данный момент находится в разработке, но основная часть доступных действий над контактами вы уже можете производить через Custom Id.
По умолчанию отображение custom id в интерфейсе отключено. Это сделано для вашего удобства и не влияет на возможность работы с custom id: их по-прежнему можно передавать. Отображение custom id в интерфейсе можно включить через Настройки → Аккаунт → Общие настройки. Чтобы изменения применились, не забудьте нажать на кнопку «Сохранить».
При активации отображения custom id в интерфейсе он появится:
в карточке контакта
в списке контактов
в списке в сегментах
в сценариях
в деталях сообщений
в отчетах
В данный момент передать в enKod Id возможно по API с помощью методов:
или через ручной импорт контактов в интерфейсе enKod: Данные → Импорты → Создать импорт → Ручной → Импорт контактов
Изменить id по другому идентификатору или id по id можно с помощью метода:
Получить id контакта с помощью метода:
Отправить сообщения по API на Id:
При передаче id в запросах на создание/обновление контакта действуют следующие правила:
создаем контакт, если он не существует
обновляем, если он существует
присваиваем значения полей данных, если они переданы
присваиваем теги, если они переданы
если находим контакт с таким id в удаленных: восстанавливаем с сохранением истории и со значениями полей данных, переданные поля данных перезаписываем на те, что переданы в запросе, непереданные не изменяем, но восстанавливаем их значения
если переданы группы рассылок с id нового контакта (при этом, емейл/телефон не переданы) - не подписываем на группы рассылок
если переданы группы рассылок с id существующего контакта (у которого есть емейл/телефон) - подписываем на те группы рассылок, каналы которых у контакта заполнены, на остальные не подписываем
если передан контакт с id И емейлом/телефоном и такой id есть в базе - обновляем контакту емейл/телефон на новые из запроса, историю сохраняем
если передан контакт с id И емейлом/телефоном и такого id нет в базе, но есть емейл/телефон - добавляем id существующему контакту с емейлом/телефоном
если передан контакт с id, емейлом И телефоном, то параметр mainChannel игнорируем, т.к. id всегда является главным идентификатором
если передан контакт с id, емейлом, телефоном, и все три идентификатора существуют у трех разных контактов - забираем емейл/телефон у существующих контактов и записываем их переданному контакту с id
если мы забрали у контакта все ее идентификаторы, то контакт удаляется
если у контакта забрали идентификаторы, по которым он был подписан на группы рассылок, то он будет отписан
При передаче id в запросах на изменение идентификатора контакта действуют следующие правила:
можно изменить емейл по id, телефон по id, id по id
при изменении для удаленного контакта - не восстанавливаем контакт, но изменяем то, что передано в запросе
допустимо изменение на пустоту, если останется хотя бы один идентификатор
при изменении идентификатора существующего контакта на идентификатор удаленного, емейл/телефон/id у удаленного контакта будет очищен
недопустимо изменение телефона/емейла/id на тот, который уже привязан к существующему контакту
Во всех случаях, когда у контакта будет очищен или перезаписан идентификатор, вы сможете найти соответствующее событие в карточке.