identify

Установка свойств пользователя (идентификация). В одном запросе можно установить до 250 свойств.

Аргумент Описание
data Обязательный. Описание выполняемой операции. См. примеры.
options JS-объект. Дополнительные параметры запроса установки свойств.
contact_source JS-объект. Идентифицирует источник контакта - попап, чат, форму и т. п.
// Упрощенный формат:
carrotquest.identify({'$name': 'Maks', myProp: 'myValue'});

// Сложный формат:
carrotquest.identify([
  {op: 'add', key: 'segment1', value: 1},
  {op: 'update_or_create', key: 'segment2', value: 1},
]);

// Использование дополнительных параметров:
carrotquest.identify([
    {op: 'update_or_create', key: '$email', value: 'mail@example.com'},
    {op: 'add', key: 'segment1', value: '65535'}
  ], {
    doubleSubscribe: true,
    parseCustomPropsType: false
  });

//Передача данных об источнике контакта
carrotquest.identify([
    {op: 'update_or_create', key: '$phone', value: '9888888898'}
  ],
  undefined,
  {
    id:'123123', type:'run_script'
  });

Простой формат данных

Простой формат следует использовать, когда нужно записать свойство, если оно не существует, либо перезаписать, если оно уже существует (update_or_create - наиболее часто используемый вариант). Тогда параметр data - это JS-объект, представляющий собой набор имен и значений изменяемых свойств.

Сложный формат данных

Позволяет выполнять разлиные операции над данными, а не только update_or_create. Так можно устанавливать свойство только один раз (без перезаписи существующего), удалять и т.д.
Здесь data будет массивом, состоящим из набора операций. Описание сложного формата.

Дополнительные параметры

Во второй аргумент метода можно передавать объект с дополнительными параметрами:

  • doubleSubscribe Позволяет переподписать пользователя на рассылки писем. Этот параметр имеет смысл указывать, если в этом же вызове carrotquest.identify изменяется системное свойство $email. Если в запросе на установку свойств пользователю, чей email находится в статусе "Отписан", передать дополнительный параметр doubleSubscribe: true, то email пользователя перейдёт в статус "Подписан" (в случае включенного Double Opt-in пользователю отправится письмо для подтверждения email, а статус изменится на "Ожидает подтверждения").

  • parseCustomPropsType отвечает за отключение автоматического определения типа у свойств. По умолчанию сервис пытается определить тип свойства, исходя из значения, которое в него записывается. Например, если без использования этого параметра передать строку "123", то система запишет в свойство число 123. Чтобы отключить это поведение и записать свойство в том же виде, в котором оно передаётся (строку "123"), нужно в запросе передать этот параметр со значением false (parseCustomPropsType: false)

Источник сбора данных

В третий аргумент также можно передать объект, идентифицирующий источник сбора данных для событий "Имя изменено", "Email изменен", "Телефон изменен" с полями:

  • id идентификатор триггерного сообщения, либо какой-то другой идентификатор, помогающий определить источник получения контакта
  • type тип сообщения, в котором получен контакт ("popup_small", "popup_big", "block_popup_small", "block_popup_big", "run_script", "auto_reply", "lead_bot", "routing_bot").

Свойства и склейка пользователей

Если вы записываете свойства, полученные в результате авторизации или регистрации пользователя и используете механизм склейки пользователей, то вызывать установку свойств пользователя методом carrotquest.identify необходимо после carrotquest.auth. Если сделать наоборот, свойства могут записаться не в того пользователя, который авторизовался.