Створення додаткових полів
Додаткові поля в картках контактів призначені для зберігання специфічних даних про контакти: персональних промокодів, важливих дат, локації тощо. Ці дані можна використовувати для розширеної сегментації та глибшої персоналізації комунікації.
Вкладка «Додаткові поля»
Списки додаткових полів доступні в налаштуваннях акаунту на вкладці Додаткові поля. За замовчуванням доступний лише список Personal із полями День народження та Стать.

У списку додаткових полів відображаються:
- Тип поля (текстове поле, дата тощо).
- Назва поля.
- Змінна для автоматичного підставляння значення поля в повідомлення.
- ID поля.
- Кнопка редагування поля.
- Кнопка видалення поля.

Зверніть увагуЗмінні полів мають формат
${list.name}— той самий, що використовується в редакторах повідомлень. Якщо ключ персоналізації списку або поля містить кирилицю чи складається лише з цифр, змінна відображається у резервному форматі${data.get('КЛЮЧ')}— наприклад,${data.get('ОСОБИСТІ_ДАНІ.БОНУС')}.
Ви можете створювати списки та додавати до них поля.
Створення списку
Списки допомагають групувати поля за призначенням, наприклад особисті дані або товарні вподобання. Щоб створити список полів:
- Натисніть Новий список полів.

- Введіть назву списку.

- За потреби змініть ключ персоналізації, автоматично згенерований на основі назви. Ключ використовується для формування змінних полів цього списку, тому краще вибрати короткий і зрозумілий варіант.

- Натисніть Зберегти.

Примітка
- Список буде неактивним, доки до нього не буде додано перше поле.
- Перш ніж видалити список із полями, видаліть усі поля, які він містить.
Додавання полів
- Натисніть плюс, щоб створити поле у списку.

- Вкажіть назву поля та за потреби відредагуйте автоматично згенерований ключ персоналізації.

- Виберіть тип поля. За замовчуванням вибрано Текстове поле.
Що не можна змінити пізнішеТип поля не можна змінити після створення — наприклад, не можна перевести наявне поле з типу Дата з часом на Дата. Набір варіантів для поля типу Чекбокс так само фіксується під час створення: додати чи видалити варіанти пізніше неможливо. Перемістити поле до іншого списку теж не можна. У всіх цих випадках створіть нове поле. Значення зі старого поля в нове не переносяться, а після видалення старого поля його значення буде втрачено.
Перейменування поля безпечне: система звертається до полів за внутрішнім ID, а не за назвою, тож раніше зібрані дані не втрачаються.
Типи полів
Залежно від типу контактних даних у системі доступні такі типи полів:
- Текстове поле може містити до тисячі символів, зокрема літери й цілі числа. Спеціальні символи не підтримуються. Цей тип можна використовувати, наприклад, для зберігання імені або адреси контакту.
- Текстова область може містити до п’яти тисяч символів, зокрема літери й цілі числа. Спеціальні символи не підтримуються. Цей тип можна використовувати, наприклад, для зберігання відповідей на розгорнуті запитання.
- Число може містити лише цілочисельні значення від -2147483647 до 2147483647, наприклад ID замовлення або кількість бонусів.
- Дробове число може містити цілі та дробові значення, наприклад суму замовлень.
- Дата — значення потрібно передавати у форматі ISO 8601:
YYYY-MM-DD. Параметр Регулярна дата використовується для створення умовних груп для комунікації, пов’язаної з повторюваними подіями, наприклад річницею або днем народження.

- Дата з часом — прийнятні формати:
YYYY-MM-DDTHH:mm:ssZдля UTC абоYYYY-MM-DDTHH:mm:ss±HH:mmзі зміщенням від UTC. Час у форматі Unix не приймається: перетворіть значення в один із цих форматів. Значення зберігається таким, як ви його передали: система не приводить його до єдиного часового поясу, тож передане зміщення зберігається. Використовуйте цей тип для значень дати й часу, наприклад періоду дії промокоду. - Випадаючий список містить заздалегідь визначені значення, наприклад стать, статус або мову контакту.
Якщо значення не відповідає типу поля, наприклад, дробове число передано в поле типу Число, запит на оновлення контакту відхиляється повністю: інші поля з цього запиту теж не зберігаються.
ВажливоНе використовуйте крапку в назві поля. Наприклад, замість
Marital.statusвикористовуйтеMarital statusабоMarital_status.

- Чекбокс дозволяє зберігати кілька вибраних значень.

Зверніть увагуЧерез API не можна створити додаткове поле. API дозволяє лише отримати перелік наявних полів (методом Get additional fields) і оновити значення одного з них для контакту — для цього передайте числовий ID поля та нове значення в масиві
fieldsметоду Add/update contacts, як показано нижче. Жоден із цих запитів не створює нове поле. Створити поле можна двома способами: через цей інтерфейс, або імпортувавши файл з окремою колонкою для нього — незіставлені колонки автоматично створюються як нові поля під час зіставлення полів. Імпорт файлу підтримує лише типи Текстове поле, Текстова область, Число, Дробове число, Дата та Дата з часом — поля типу Випадаючий список і Чекбокс усе одно потрібно створювати вручну, оскільки їхні заздалегідь визначені варіанти не задаються під час імпорту.Щоб відтворити однаковий набір полів у кількох акаунтах, скористайтеся методом Get additional fields, щоб отримати назви, типи та допустимі значення полів з одного акаунту, а потім відтворіть їх у кожному іншому акаунті — вручну або, для підтримуваних типів, імпортувавши невеликий файл (наприклад, один тестовий контакт із колонкою для кожного поля). Визначення полів залишаються навіть після видалення контакту, який їх створив. Не завантажуйте реальні дані клієнтів в інший акаунт лише для відтворення полів — використовуйте тестові дані.
Як побачити фактичні значення поля перед побудовою умови
Перелік значень, які реально записані в кастомне поле, видно в картці контакту та на вкладці додаткових полів контакту — відкрийте кілька контактів і подивіться, у якому вигляді значення зберігаються.
Коли будуєте умову сегмента за кількома значеннями одного поля, використовуйте оператор один з і додавайте кожне значення окремим пунктом. Перелічення кількох значень через кому в одному полі не працює — таке значення сприймається як один суцільний рядок.
Унікальність значень додаткових полів
Для додаткового поля не можна встановити вимогу унікальності. Однакове значення може бути записано в кількох контактах, і система не позначає такі збіги як дублікати.
В інтерфейсі немає окремого пошуку дублікатів за додатковими полями. Щоб знайти однакові значення, експортуйте контакти у CSV і порівняйте їх на своєму боці. Не вмикайте перемикач Експортувати тільки Email, щоб у файл потрапили всі поля — див. Робота з контактами: вкладка «Усі контакти».
Робота з додатковими полями через API
Створення полів
Спершу створіть поле в інтерфейсі, потім отримайте його ID методом Get additional fields і передавайте цей ID разом із даними контакту. Через API записуються значення в наявні поля, а самі поля не створюються.
Врахуйте це, коли налаштовуєте кілька акаунтів: структуру полів відтворюють у кожному окремо через інтерфейс. Що ще не переноситься, описано в статті Перенесення контенту між акаунтами.
Отримання списку полів
Щоб отримати списки додаткових полів, їхні ID, ключі, типи та допустимі значення, використовуйте метод Get additional fields:
GET /api/v1/additionalfields
ID із параметра additionalFields[].id у відповіді можна передавати в fields[].id під час додавання або оновлення контактів.
Після створення додаткового поля системі може знадобитися до години на синхронізацію. До її завершення поле може бути недоступним через API.
Оновлення поля типу «Чекбокс»
Щоб записати або оновити значення поля типу Чекбокс за допомогою API-методу Add/update contacts, передайте числовий ID поля в масиві fields. Кілька значень у параметрі value розділяйте комами:
{
"contacts": [
{
"channels": [
{
"type": "email",
"value": "[email protected]"
}
],
"fields": [
{
"id": 87166,
"value": "Chinese,Italian"
}
]
}
],
"dedupeOn": "email",
"customFieldsIDs": [
87166
]
}У масиві customFieldsIDs вкажіть ID додаткових полів, які потрібно оновити. Під час оновлення наявного контакту цей параметр є обов’язковим. Система оновить лише поля, перелічені в масиві.
Значення поза переліком допустимих для поля запит відхиляє з кодом 400 і повідомленням '<field name>[<id>]' does not support value '<value>', де в лапках стоїть назва поля, а не його тип. Порожнє значення помилки не викликає: воно очищає поле, і в наступній відповіді контакт повертається вже без нього.
Масове очищення значення поля
Окремої дії, щоб очистити додаткове поле одразу в багатьох контактів, немає. Скористайтеся одним із двох способів:
- Повторно імпортуйте контакти з порожньою колонкою цього поля, увімкнувши імпорт порожніх значень.
- Надішліть запит Add/update contacts, указавши ID поля в
customFieldsIDsі порожнє значення.
Оновлення додаткових полів через SDK
Щоб оновити додаткові поля через SDK, передавайте ключ персоналізації поля — пару СПИСОК.ПОЛЕ, наприклад TRAININGAPP.GOAL.
Ключ персоналізації показано у вікні редагування поля. Змінна в списку полів — це формат для підставляння в повідомлення: вона відображається у фігурних дужках і малими літерами. Для SDK копіюйте значення поля Ключ персоналізації.
Зверніть увагуSDK не перевіряє додаткові поля на боці застосунку — дані передаються на сервер як є. Якщо переданого поля в акаунті немає, запит завершується помилкою й оновлення не застосовується, включно з полями, які існують. Створіть поле в акаунті, перш ніж передавати його із застосунку.
Застосунок цієї помилки не отримує, тож виклик може виглядати успішним, хоча нічого не записалося. Щоб побачити логи запитів і відповідей SDK, увімкніть режим налагодження.
Ознака такої проблеми — нові значення не з'являються в картці контакту: після додавання поля в застосунок перевірте картку тестового контакту. Після того як ви створите поле в акаунті, SDK повторно не надішле ті самі значення, доки вони не зміняться. Щоб значення потрапило в акаунт після створення поля, змініть його в застосунку.

Приклад для Android:
val userAttributes = UserAttributes(
email = user.email,
fields = listOf(
UserCustomField(
key = "TRAININGAPP.GOAL",
value = "lose weight"
)
)
)
val user = User(userAttributes = userAttributes)
application.getRetenoInstance().setUserAttributes(
"USER_ID",
user
)Приклад для iOS:
let userAttributes = UserAttributes(
email: user.email,
fields: [
UserCustomField(
key: "TRAININGAPP.GOAL",
value: "lose weight"
)
]
)
Reteno.updateUserAttributes(
externalUserId: "USER_ID",
userAttributes: userAttributes
)Докладніше про мобільний SDK →
Додаткові поля в інтеграціях віджетів
Усі інтеграції, доступні в конструкторі віджетів, підтримують передавання даних віджета в додаткові поля на стороні інтеграції. Для більшості інтеграцій конструктор віджетів може отримати список наявних додаткових полів безпосередньо з інтеграції, щоб ви могли вибрати потрібне поле. Для деяких інтеграцій цей список отримати не можна — потрібно знати ключ цільового поля. Частина з цих інтеграцій усе одно дозволяє створити нове поле безпосередньо в момент підписки, навіть якщо отримати наявний список неможливо.
| Інтеграція | Отримання списку наявних полів | Створення нового поля під час підписки |
|---|---|---|
| Klaviyo | Не підтримується | Не підтримується |
| Omnisend | Не підтримується | Підтримується |
| Pipedrive | Не підтримується | Не підтримується |
| SalesDrive | Не підтримується | Підтримується |
| Shopify | Не підтримується | Не підтримується |
| Userlist | Не підтримується | Підтримується |
Updated 19 days ago