СОЗДАНИЕ И РАБОТА С ДОПОЛНИТЕЛЬНЫМИ ПОЛЯМИ
В BOTMECHANIC

Что такое дополнительные поля?

Дополнительное поле
– любое поле подписчика, где можно хранить информацию о нём, его выборе в чат-картах, ответах в боте, заказах и другое.

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

Как можно использовать доп. поля:

1) Как сегментировать по доп. полям?

Вы можете создавать сегменты на основе данных с дополнительных полей.
Например, отправить массовую рассылку только тем, кто проходил тест, у кого указано в дополнительном поле "Пол" = женский и т. д. Для этого в разделе "Сегменты"

2) Как использовать доп. поля в тексте сообщений

Вы можете использовать данные с дополнительных полей в сообщениях, тексте меню.
Например, вы создали поле "Имя", спросили у подписчика в поле "Ввод данных" и следующим сообщением хотите отправить обращение "Приятно познакомиться, Имя!".
Для этого вам нужно:
1. Создать доп. поле для хранения имени с типом строка, например "Имя клиента", служебное имя поля – name1
2. В чат-карте использовать блок "Ввод данных", где собираем ответ для поля "Имя клиента":

После записи данных в это поле вы можете обратиться по имени, используя такую конструкцию:
{{profile.data.ВАША_ПЕРЕМЕННАЯ}}
В нашем примере системное имя при создании поля было name1, а значит использовать значение из этого поля можно так: {{profile.data.name1}}

Кроме этого можно использовать конструкции с IF ELSE.
Чтобы показать какой-то текст в сообщении, если в доп. поле определенное значение.

Например:
{% profile.data.СИСТЕМНОЕ_ИМЯ_ПЕРЕМЕННОЙ== 'ЗНАЧЕНИЕ' %}Текст, который нужно добавить в сообщение, если ваша переменная соответствует заданному значению{% endif %}

Пример: если переменная Пол с системным именем "gender" заполнена как "ж", то вывести в текст сообщения "Новая коллекция женских купальников!

{% profile.data.gender== 'ж' %}Новая коллекция женских купальников! {% endif %}

Мы используем в качестве шаблонизатора Jinja.
По ссылке вы можете ознакомиться с примерами синтаксиса для него.
Если это не о чем вам не говорит и сложно разобраться – напишите в поддержку, мы поможем решить вашу задачу.
3) Использование в условных блоках для разделения логики чат-карты

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


  1. Перейдите в раздел "Доп. поля":
  2. Убедитесь, что такого поля нет в списке стандартных. Со стандартными доп. полями вы можете ознакомиться на этой же вкладке Доп. поля
  3. На этой же вкладке можно создать новое поле. Назовите доп. поле так, чтобы было понятно вам и остальному персоналу
  4. Придумайте служебное имя (латиницей) – оно будет использоваться для изменения поля по API или в шаблонах

5. Выберите нужный тип поля.
6. Сохраните доп. поле.
Теперь оно может использоваться в создании сегментов или фильтрах в условных блоках.

Кроме этого, ваш разработчик может самостоятельно при необходимости создавать дополнительные поля, не заходя в сервис, используя API
Типы дополнительных полей

У нас в Botmechanic есть несколько типов полей. В зависимости от типа у полей может быть разные возможности фильтрации. Например, если вам нужно проверять больше или меньше ли какого-то количество заказов у клиента, то тип поля "Количество заказов" должен быть число.


1) Булевое – может содержать значения True/False, вводить можно 1/0 или да/нет или yes/no. По сути это поле-галочка состояния.
Пример булевого поля:
доп. поле "Является клиентом?" и значения да/нет.


2) Число – любое целое число
Примеры поля типа "число":
"Номер последнего заказа", "Индекс", "Возраст", "Сумма всех заказов", "Количество заказов"

3) Строка – любой кусок текста, включая пробелы, цифры, спецсимволы. Поле используется чаще всего.
Примеры поля типа "строка":
"Имя", "Адрес", "Комментарий клиента", "Комментарий менеджера".
Если вам не нужна никакая валидация ввода данных в поле, то используйте этот тип поля, у него нет валидации.

4) Дата/время – дата и время в формате iso datetime.
Пример значения для поля: 2020-08-29T18:44:35+00:00
Используется только для записи в четком формате, поэтому не рекомендуем использовать для "Поля ввода", т. к. имеет непривычный для ввода формат.
Если вам нужно записывать вводимые даты, то рекомендуем использовать поле типа "строка"

5) Email – специальное поле для записи только емейлов, имеют внутреннюю валидацию для поля ввода. Мы используем валидацию от Jinja.

6) Телефон – специальное поле для записи только номеров телефонов, имеют внутреннюю валидацию для поля ввода. Мы используем валидацию от Jinja.
Стандартные дополнительные поля

У нас в Botmechanic есть несколько полей, которые созданы для аккаунта зараннее, по умолчанию.

Список доп полей по умолчанию в таблице ниже:
Как заполнять дополнительные поля?

1) Вручную оператором с раздела "Мои чаты"
Так, например, можно дополнить поле "Комментарий менеджера".
Для этого в разделе "Мои чаты" нажмите на нужный контакт – Иконку Info – Иконку редактирования – Внесите изменения:

2) С чат-карты с помощью блоков "Ввод данных" и "Запись поля"

Блок "Ввод данных" – если нужно дать подписчику самостоятельно ввести какой-то текст и записать его значение в доп. поле:

Блок "Запись поля" – если нужно при определенном выборе в меню или в любом месте чат-карты сделать пометку о подписчике:
Как записать в доп. поле через блок "Запись поля" данные с API-запроса
Иногда блок "Запись поля" также используется, чтобы записать в него значение какой-либо переменной с ответа в API-запросе.
Например, мы делаем запрос во внутреннюю базу данных, чтобы понять, из тех данных, которые у нас есть по клиенту с данным номером телефона, сколько у него было заказов.
И хотим записать результаты запроса в поле "Количество заказов". Для этого в ответе по API нам нужно передавать переменную со значением, например, number_orders = 5

А для того, чтобы данные после этого сохранить это значение в доп. поле контакта нужно создать доп. поле, создать сразу после блока с API-запросом блок "Запись поля" и в поле "Присваемое значение" ввести такую конструкцию:
{{last_api_response.НАЗВАНИЕ_ПЕРЕМЕННОЙ}}

То есть, в нашем примере это будет {{last_api_response.number_orders}} и в эту переменную подставится число 5, которое пришло в последнем API запросе об этом пользователе.

Last api response парсит JSON, который ответил сервер, например:
Если сервер ответил { data: [1, 2, 3], name: 'User' }, то будут доступны такие переменные:
last_api_response.data[0]
last_api_response.data[1]
last_api_response.data[2]
last_api_response.name
3) Изменение доп. поля клиента по API
Например, нам нужно отправлять массовые рассылки только тем, у кого это количество больше 100.
Для этого нам нужно поддерживать актуальными данные в доп. поле "Количество бонусных баллов".
Проще всего это делать по API, то есть, попросив своих разработчиков отправлять в момент изменения количества бонусных баллов у клиента запрос в Botmechanic, чтобы в дополнительном поле "Количество бонусных баллов" в этот момент тоже менялось значение.
Для этого у нас есть API-документация и метод /update_fields/
Отправьте разработчикам, если непонятно, что с этим делать :)
Вам была полезна эта статья?