Перейти к основному содержимому

Импорт профилей клиентов и обновление данных

Начало работы

В платформе Altcraft перейти в окно импорта данных можно несколькими способами:

1. В разделе Данные выберите Базы профилей. Нажмите на "Импорт профилей клиентов" напротив нужной вам базы профилей и выберите подходящий способ загрузки данных:

2. Выберите нужную вам Базу профилей и нажмите на Просмотр:

Нажмите на значок импорта в верхней части экрана и выберите подходящий вам способ импорта:

3. Из главного меню перейдите в раздел Данные → Импорт. В открывшемся окне выберите базу для импорта.

Способы импорта

Импорт и обновление данных клиентов в базах профилей Altcraft можно организовать различными способами в зависимости от объема клиентской базы, источников новых подписчиков (например, напрямую или через CRM), а также технических возможностей вашей компании. Доступно 4 способа загрузки данных:

  • Вручную — создание и редактирование профилей по одному.

  • Из файла — загрузка данных клиентов из файла-таблицы (например, CSV, Excel или TXT).

  • Через API — настраиваемый импорт одного или нескольких профилей с помощью API.

  • Расписание — автоматический импорт данных клиентов из внешней SQL базы данных по заданному расписанию.

подсказка

Помимо перечисленных способов получения клиентских данных, в Altcraft Platform есть готовые интеграции с внешними сервисами:

  • Tilda — интеграция с формами сбора данных конструктора сайтов Tilda.
  • LPGenerator — интеграция с формами сбора данных конструктора лэндингов LPGenerator.
  • Yandex AppMetrica — интеграция с метрикой приложений от Яндекса.

Создание профиля клиента вручную

Выберите способ импорта — "Создать профиль вручную":

Откроется форма создания и редактирования профиля. На этапе создания профиля вы можете добавить личные, контактные, регистрационные и отслеженные данные. Эти данные записываются в стандартные поля базы.

Значение дополнительных (кастомных) полей указываются на вкладке "Доп. поля". Обязательные поля отмечены красной звёздочкой. Создать дополнительные поля, а также установить обязательные вы можете на странице редактирования базы данных.

Ниже на вкладке Подписки вы можете сразу при создании подписать клиента на тот или иной ресурс.

предупреждение

Поля Email и Телефоны на вкладке Профиль не используются для коммуникации с клиентом. В них вы можете записать базовые контакты, чтобы использовать их потом в подписках на ресурсы. Или можете оставить поля пустыми, а контактные данные записать напрямую в подписки.

Поле Email используется по умолчанию для идентификации профиля наряду с profile_id. Если при импорте профиля не передать адрес электронной почты в это поле, будет создана системная запись в виде profile_id@localhost.

При сохранении нового профиля можно отключить отправку для него триггерных оповещений, а также включить автоматическое определение геолокации клиента по данным в полях Reg IP (IP адрес регистрации) и IP (последний известный IP адрес):

Импорт из файла

Для загрузки большого количества профилей, а также для обновления существующих данных используется импорт из файла. Это могут быть .csv таблицы и .txt файлы в CSV формате, .xls и .xlsx таблицы данных. Файл может быть помещён в архив .zip или .tar.gz.

Загрузка файла

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

Поставьте галочку в окне "Первая строка содержит название колонок", если первая строка в вашем файле с профилями служит для обозначения колонок.

Выберите режим чтения файла. Доступно два режима: автоматический и ручной.

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

  • Текстовый квалификатор — это символ, который используется для обозначения начала и конца текстовых данных внутри ячейки таблицы. Квалификаторы необходимы, когда данные внутри ячейки содержат символы, которые могут быть восприняты как разделители или другие специальные символы.
  • Разделитель — это символ, который используется для разделения данных на отдельные поля (ячейки) в строке таблицы. Разделители применяются для указания границ между столбцами в таблице.

Если вы изменили настройки в ручном режиме, нажмите кнопку "Предпросмотр", чтобы проверить, что платформа корректно прочитает файл.

Идентификация профилей

Выберите способ импорта — он будет зависеть от того, добавляете вы новые записи или обновляете уже существующие в базах профилей Altcraft:

  • Добавить новых и обновить существующих
  • Только добавить новых, не обновлять существующих
  • Только обновлять существующих, не добавлять новых

Режим поиска профиля определяет, по каким данным из вашего файла Altcraft будет искать существующие профили. Это необходимо для обновления данных клиентов и избежания дублирующихся записей. Доступны следующие режимы:

  • По email адресу из профиля или подписок — по полю профиля Email или по email адресам из подписок.
  • По email адресу из профиля — только по полю профиля Email.
  • По телефону из полей данных или подписок — по полю профиля Телефоны или по телефонам из SMS подписок.
  • По дополнительному полю — по пользовательскому полю базы данных. Например, ID клиента в CRM компании.
  • По подписке — по данным подписки.
  • По идентификатору профиля — по уникальному ID профиля (только при обновлении данных).
подсказка

Необходимо учитывать следующие особенности матчинга:

  • Значение поля для поиска должно быть уникально для каждого профиля в базе, в ином случае платформа не сможет однозначно определить искомый профиль
  • Для одной базы профилей следует использовать только один режим поиска. Это необходимо для того, чтобы избежать создания дублирующихся профилей в базе.
  • Если вы собираетесь пользоваться матчингом по дополнительному полю, вам нужно обратиться к администратору платформы для создания индекса этого поля. Благодаря индексу поиск профиля в базе будет занимать значительно меньше времени.

Настройка полей

подсказка

Для рассылок платформа использует контактные данные, указанные в подписках профиля на ресурсы. Вы можете также записать email-адрес и номер телефона клиента в основные поля профиля, но эти данные будут использоваться только для поиска профиля в базе. Если идентификация клиентов в вашей базе настроена по данным CRM или другим уникальным идентификаторам, то Email и Телефоны в полях профиля можно не указывать.

Перейдите к определению соответствия колонок в базе профилей Altcraft с колонками данных в вашем файле-таблице. Altcraft определит колонки автоматически, если их названия подойдут под системные, однако, если ваши колонки не соответствуют системным, вы можете настроить их вручную. Для этого перейдите в столбец "Не определено":

  • Колонка источника — выберите колонку вашего файла для получения данных. По каждой колонке будет отображаться первая запись — так вы можете точнее определить тип данных.
  • Соответствует полю в базе — выберите поле профиля, в которое нужно записать данные клиента. Можно выбрать стандартные и кастомные (дополнительные) поля базы профилей.

После того как вы выберите соответствие для неопределившейся колонки, она автоматически будут перенесена в столбец "Определено". Если вы установили неправильное соответствие, то нажмите на крестик справа от нужного вам поля, тогда оно снова окажется в столбце "Не определено".

Данные из неопределенных колонок не будут импортированы в базу.

Дополнительные настройки полей:

  • Игнорировать пустые значения во всех колонках. Опция используется при обновлении данных профилей, которые уже есть в базе. Например, в поле профиля "vendor" уже записано значение "test.com", но сейчас вы импортируете файл, где поле "vendor" у этого клиента пустое. Платформа перезапишет поле, подставив пустое значение. Чтобы избежать этого, включите опцию "Игнорировать пустые" для соответствующей колонки. Тогда значение в поле профиля "vendor" останется прежним.

  • Воспринимать нулевые значения как пустые во всех колонках. Если в вашем файле-источнике неизвестные о клиенте данные записаны с помощью таких значений, как null, nil, none или undefined, платформа также может обработать эти значения как пустые. Для этого вам необходимо одновременно актировать поля "Воспринимать нулевые значения как пустые" и "Игнорировать пустые значения" рядом с той колонкой, где указано неизвестное значение. В таком случае платформа не обновит поле. При этом регистр null, nil, none и undefined неважен. Значения "0001-01-01 00:00:00 +0000 UTC" и "0001-01-01T00:00:00Z" тоже могут быть обработаны как пустые.

Опции

При настройке импорта данных из файла для каждого типа поля доступны определённые опции, которые определяют, как данные будут обрабатываться и сохраняться в системе:

ОпцияОписаниеТип поля
Игнорировать пустые значенияПредотвращает перезапись данных профиля пустыми значениями при импорте, сохраняя существующую информацию, если в импортируемом файле соответствующие поля пусты.Все
Считать нулевые значения пустымиПлатформа будет обрабатывать значения типа null, nil, none или undefined как пустые, если активировать данную опцию.Все
Автоматическая коррекция регистраПреобразовывает буквы в выбранный регистр. Например: Все буквы строчные, Каждое слово начинается с заглавной буквы или Все буквы заглавные.Имя, Фамилия, Подписки (тип поля - Строка)
Добавить телефонный код ко всем значениямПозволяет добавить международный код в начало всех импортируемых номеров (например, +7). Платформа обрабатывает телефоны только в международном формате, поэтому используйте эту опцию, если в вашем файле телефоны записаны в другом формате.Телефон
Преобразовать локальный телефонный кодПозволяет заменить часть номера (например, преобразовать код 8 в +7)Телефон
Выберите формат даты из файлаПозволяет выбрать формат даты, который представлен в импортируемом файле.Дата
Значение по умолчаниюПредустановленное значение, которое автоматически записывается в поле, если в загружаемом файле для данного поля отсутствуют данные.Дата
Установить соответствие значений колонок и полейЕсли значения в вашей колонке не соответствуют системным значениям платформы, вы можете уточнить их соответствие.Пол (тип поля - Список)
Увеличить значение поля на значение из колонкиДобавляет значение из импортируемого файла к уже существующему значению в указанном поле базы данных, вместо его замены.Целое число, Число с точкой
Уменьшить значение поля на значение из колонкиВычитает значение, указанное в импортируемом файле, из текущего значения в выбранном поле базы, вместо его замены.Целое число, Число с точкой
Округлить число до указанного количества десятичных знаковАвтоматически сокращает числовое значение до заданного количества знаков после запятой во время загрузки данных, чтобы обеспечить точность или соответствие формату. Округление применяется к данным из файла, а не к итоговому значению, которое запишется в поле профиля. Это может привести к погрешностям при использовании опций "Уменьшить на значение из файла" и "Увеличить на значение из файла".

Например, если значение в файле составляет 123.124, то после округления до двух знаков оно будет 123.12. При вычитании или сложении этих данных с числом из профиля может возникнуть небольшая погрешность, например, при сложении 0.1 и 0.2 вместо ожидаемого 0.3 может получиться значение 0.3000000001.
Число с точкой
Разделитель теговСимвол или набор символов, используемый для разделения нескольких тегов (меток) в одном поле файла, чтобы платформа могла правильно распознать и импортировать их как отдельные значения.Теги
Добавить или обновить данные по полю объектаОпция, которая либо создает новое значение для указанного поля объекта, если оно отсутствует, либо обновляет уже существующее значение в базе на основе данных из импортируемого файла.Массив объектов
Удалить данные по полю объектаОпция, которая удаляет объекты с одинаковым значением в указанном поле.Массив объектов
Импортировать в свойствоЗаписывает значение из колонки файла в указанное свойство объекта.Объект

Особенности импорта полей

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

Для полей типа Объект и Массив объектов платформа ожидает значение в виде строки, содержащей корректный JSON. Чтобы задать такое значение, необходимо сначала преобразовать JSON-объект в строку, а затем экранировать её по правилам CSV, описанным в RFC 4180 (двойные кавычки " заменяются на "").

Пример JSON-структуры:

[
{
"field1": 123,
"field2": {"subfield": false},
"field3": "abc"
}
]

Ожидаемое значение: "[{""field1"": 123, ""field2"": {""subfield"": false}, ""field3"": ""abc""}]"

В поле типа "Список" можно импортировать сами значения или их индексы. Например, если вы создали в базе список с вариантами "тариф_1", "тариф_2", "тариф_3", то в колонке источника можно указать эти же значения или использовать индексы: 1 — это "тариф_1", 2 — это "тариф_2", 3 — это "тариф_3", 0 — "Не выбрано" (значение по умолчанию).

Обратите внимание, что значения, которые состоят только из цифр, невозможно импортировать напрямую — платформа воспримет их как индексы. Например, если в списке указаны варианты 100 и 200, то при импорте нужно передать соответствующие им индексы: 1 — это 100, 2 — это 200.

Настройка подписок

При импорте из файла подпишите своих клиентов на необходимые ресурсы. Ресурс определяет возможность отправки сообщений профилям по различным каналам коммуникации. Без подписки на ресурс коммуникация невозможна. В блоке Настройте подписки нажмите кнопку + Добавить подписку.

Вам доступно два режима обновления статуса подписок: безопасный и небезопасный. При выборе небезопасного режима будут обновлены подписки профилей со статусами: Отписан, Жалобщик, Hardbounced, Не валиден. Если у профиля уже есть подписка на выбранный канал в ресурсе с одним из этих статусов, после импорта её статус изменится в соответствии с заданными настройками.

Для каждой подписки выберите ресурс и канал связи, после чего нажмите кнопку "Настроить". Во втором окне выберите статус и приоритет подписки, а также колонку в файле, где указаны контактные данные для рассылок по выбранному каналу:

Каждый профиль имеет ограничение — не более 20 подписок на один ресурс.

Для подписок на push-уведомления дополнительно требуется указать провайдер push-сервиса и push-токен:

После настройки подписки, вы можете отредактировать её, кликнув по ней, или удалить нажатием на значок с красным минусом.

Финал

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

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

Помимо этого в блоке Дополнительные настройки включаются добавочные опции:

  • Пропустить запуск триггеров — не запускать сценарии и триггерные кампании, настроенные на импорт в выбранную базу данных.
  • Определить геоданные по IP — при передаче данных в поля Reg IP или IP в формате IPv4 Altcraft автоматически определит геолокацию, а вы сможете выбрать такие поля профиля, как Координаты, Страна, Город — или Страна рег. и Город рег. для заполнения, также будет отмечено положение профиля на виджете карты.
  • Создать статический сегмент по результатам этого импорта — при импорте профилей платформа создаст статический сегмент, в который войдут все добавленные и обновленные профили.

  • Обновить сегмент по результатам этого импорта — при импорте профилей платформа автоматически пересчитает статический сегмент.

Передача статуса при импорте

При настройке полей и подписок можно передать глобальный статус профиля и статус его подписки, соответственно. Статус в колонке файла может быть указан как в текстовом, так и в числовом виде.

Возможные значения поля:

  • 0, "subscribed" — "Подписан" (доступен для коммуникации по всем каналам связи)
  • 1, "unsubscribed" — "Отписан" (отписался от получения сообщений по всем каналам)
  • 2, "complained" — "Жалобщик" (пожаловался на спам, коммуникация остановлена)
  • 3, "hardbounced" — "Hardbounced" (провайдер полность отказался принимать сообщения на этот адрес)
  • 4, "unconfirmed" — "Не подтвержден" (подписчик зарегистрировался, но не подтвердил согласие на получение рассылок)
  • 5, "suspended — "Приостановлен" (подписка приостановлена на некоторое время)
  • 6, "invalid" — "Не валиден" (исключен из маркетинговых кампаний по любым другим причинам)

API импорт

API используется для интеграции с внешними системами — сайтами, приложениями, сервисами управления клиентскими данными (CRM), формами сбора данных. В конструкторе API-запроса вы можете задать определённые параметры для импорта данных и передать пример запроса вашим разработчикам.

В "Поле для поиска" выберите данные, по которым будет производиться поиск уже существующих профилей:

  • Email — по полю профиля Email.
  • Телефон — по полю профиля Телефоны.
  • По кастомному полю — по пользовательскому полю базы данных. Например, ID клиента в CRM компании.
  • Идентификатор профиля — по уникальному ID профиля (только при обновлении данных).

Также выберите ресурс для подписки.

Поставьте галочку в окне Пропустить запуск триггеров, если не хотите запускать сценарии и триггерные кампании, настроенные на импорт в выбранную базу данных.

Поставьте галочку в окне Пропустить невалидные подписки, чтобы не добавлять подписку профиля, если в запросе присутствуют невалидные данные.

Ниже вы увидите шаблон API-запроса:

подсказка
  • Для импорта или обновления одного профиля используйте этот запрос.
  • Другие запросы к API импорта описаны в разделе Профили.
  • Управление подписками профиля описано в разделе Подписки.

Импорт из внешних SQL баз данных по расписанию

подсказка

Altcraft может автоматически забирать данные для импорта новых профилей клиентов и обновления существующих из внешней таблицы данных ClickHouse, MySQL, MSSQL, PostgreSQL или Oracle RDBMS.

Инструкция по настройке импорта по расписанию вынесена в отдельную статью.