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:
- Email:
- SMS
- WhatsApp
Логика работы Id
При передаче id в запросах на создание/обновление контакта действуют следующие правила:
- создаем контакт, если он не существует
- обновляем, если он существует
- присваиваем значения полей данных, если они переданы
- присваиваем теги, если они переданы
- если находим контакт с таким id в удаленных: восстанавливаем с сохранением истории и со значениями полей данных, переданные поля данных перезаписываем на те, что переданы в запросе, непереданные не изменяем, но восстанавливаем их значения
- если переданы группы рассылок с id нового контакта (при этом, емейл/телефон не переданы) - не подписываем на группы рассылок
- если переданы группы рассылок с id существующего контакта (у которого есть емейл/телефон) - подписываем на те группы рассылок, каналы которых у контакта заполнены, на остальные не подписываем
- если передан контакт с id И емейлом/телефоном и такой id есть в базе - обновляем контакту емейл/телефон на новые из запроса, историю сохраняем
- если передан контакт с id И емейлом/телефоном и такого id нет в базе, но есть емейл/телефон - добавляем id существующему контакту с емейлом/телефоном
- если передан контакт с id, емейлом И телефоном, то параметр mainChannel игнорируем, т.к. id всегда является главным идентификатором
- если передан контакт с id, емейлом, телефоном, и все три идентификатора существуют у трех разных контактов - забираем емейл/телефон у существующих контактов и записываем их переданному контакту с id
- если мы забрали у контакта все ее идентификаторы, то контакт удаляется
- если у контакта забрали идентификаторы, по которым он был подписан на группы рассылок, то он будет отписан
При передаче id в запросах на изменение идентификатора контакта действуют следующие правила:
- можно изменить емейл по id, телефон по id, id по id
- при изменении для удаленного контакта - не восстанавливаем контакт, но изменяем то, что передано в запросе
- допустимо изменение на пустоту, если останется хотя бы один идентификатор
- при изменении идентификатора существующего контакта на идентификатор удаленного, емейл/телефон/id у удаленного контакта будет очищен
- недопустимо изменение телефона/емейла/id на тот, который уже привязан к существующему контакту
Во всех случаях, когда у контакта будет очищен или перезаписан идентификатор, вы сможете найти соответствующее событие в карточке.