Импорт свойств пользователя из CSV

Асинхронно импортирует базу пользователей из CSV-файла.

URL

POST https://api.carrotquest.io/users/import

Параметры аутентификации.

Параметр Тип Описание
app ID ID вашего приложения в Carrot quest. Можно подставить $self_app, чтобы использовать данные из токена
file Файл CSV файл, размером до 30 Мбайт в кодировке utf-8
merge_field Optional[строка] Может принимать занчения $user_id (по умолчанию) или $email
delimiter Optional[строка] Разделитель столбцов в CSV. Допустимы ,, |, ;, \t (табуляция, по умолчанию), (пробел)
tags Optional[Array[строка]] Массив имен тэгов, которые будут добавлены каждому импортированному пользователю. Каждое имя должно быть JSON-кодировано

Замечания

Имена свойств пользователей берутся из первой строки CSV-файла.
Системные свойства при этом должны задаваться их ключом в нашей системе (ключи системных свойств начинаются с символа $). Ключи можно посмотреть в нашей базе знаний.

Файл должен быть в кодировке UTF-8 и не должен превышать 30 Мбайт по размеру.

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

  • User ID пользователя в вашей системе
    При импорте по User ID в CSV файле обязательно должен присутствовать столбец $user_id. User ID - это тот же ключ, который используется при склейке пользователей методом carrotquest.auth.

  • Свойство пользователя Email
    При импорте по Email, в CSV файле обязательно должен присутствовать столбец $email. Если несколько пользователей имеют одинаковый email, то данные будут записаны в пользователя, который обновлялся последним (имеет наибольшую дату в свойстве Последняя активность).

Когда импорт будет завершен, в секции уведомлений панели администратора появится сообщение с результатами.

Важно! Будьте внимательны при заполнении CSV файла. Не допускайте лишних пробелов и невидимых символов в именах столбцов и значениях свойств, особенно тех, которые являются ключевыми.

Ответ

{
  "meta": {
    "status": 200
  },
  "data": {
    "row_errors": {1: "Error in string 1", 33: "Error in string 33", ...},
    "updates_planned": 123
  }
}
  • row_errors - Вернет словарь ошибок, найденных при валидации файла. Ключ словаря - номер строки. Значение - текст ошибки.
  • updates_planned - Количество записей, которые запланированы на импорт. В ходе импорта также могут возникнуть ошибки, тогда количество реально импортированных записей не будет совпадать.

Ошибки

Стандартные ошибки Web API.

Примеры

Пример файла для импорта, ищет в базе лидов двух пользователя по User ID и обновляет им системное свойство "Имя" ($name) и кастомное свойство "Действие".

"$user_id";"$name";"Действие"
135;"Аннушка";"пролила масло"
666;"Воланд";"посетил Патриаршие пруды"

Пример запроса. Обратите внимание, что тэги обрамлены в символы " - это результат JSON-кодирования.

curl -X POST \
  --data "file=@/path/to/database.csv" \
  --data-urlencode "app={ID}" \
  -H "Authorization: Token XXX" \
  --data-urlencode "merge_field=$user_id" \
  --data-urlencode "delimiter=;" \
  --data-urlencode 'tags="super_tag","import_tag_2"' \
  https://api.carrotquest.io/users/import