Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Пользователям iconПользователям
Разработчикам iconРазработчикам
Администраторам iconАдминистраторам
Русский
  • Русский
  • English
Войти
    Документация пользователяС чего начатьFAQТермины
      Обновления платформыarrow
    • v2026.1.76v2025.4.75v2025.4.74v2025.3.73v2025.2.72v2025.1.71v2024.4.70v2024.3.69v2024.2.68.2v2024.1.68
      Хранение и сбор данныхarrow
    • Ресурсы подписокРабота с базами данныхПрофиль подписчикаИмпорт профилей клиентов и обновление данныхИмпорт данных по расписаниюАвтоматизация сбора данных о профилеМассовое обновление профилей клиентовDouble opt-in подпискаСтоп-спискиСвязи между профилямиЭкспорт истории профилейЭкспорт профилейАвтоматическое создание статического сегмента при импортеКак открыть CSV-файлМатчингТипы полей в базе данныхГлобальные контрольные группыМенеджер подписок
      Каналы коммуникацииarrow
      • Email-каналarrow
      • Рекомендации по взаимодействию с ISPНастройка собственного from-доменаНастройка и использование постмастеровБыстрый старт
        Push-каналarrow
        • Mobile Pusharrow
        • Настройка и подключение
            Интеграция приложения с Altcraftarrow
          • Провайдеры: структура push сообщенияОбработка и добавление подпискиРегистрация событий
          Web Pusharrow
        • Предварительные настройки
            Настройка для различных браузеровarrow
          • Apple SafariMozilla ServicesFirebase Cloud Messaging
          Подключение Web Push на сайтПередача данных в платформуМетоды Web Push SDK
            Миграция и перенос подписокarrow
          • Перенос push-подписок из стороннего сервисаКак перенести push-подписки, настроенные для SafariМиграция с OneSignal
      SMS-канал
        Создание рассылки с нуляarrow
      • EmailSMSWeb PushMobile PushWhatsAppViber™Руководство: SMS-рассылка через VK NotifyMAX BotMAX GroupNotifyTelegram BotTelegram Group
      Схема работы каналов коммуникацииРуководство: SMS-рассылка через УТШРуководство: push-рассылка через сервис от "Согласие"
      Сегментацияarrow
    • Статические сегментыДинамические сегментыОбновляемые сегменты
        Условия сегментацииarrow
      • Сегментация по данным профиляСегментация по взаимодействиям с сущностямиСегментация по активности в каналах коммуникацииСегментация по внешним даннымСегментация по внешним SQL-таблицамСегментация по структуре профиля
      Лучшее время отправки (BST)Логические операторы "И" и "ИЛИ"Рекомендации по работе с сегментами
      Шаблоны сообщенийarrow
      • Работа с шаблонами сообщенийarrow
      • Работа в редактореEmail-шаблонSMS-шаблонPush-шаблонMAX-шаблонTelegram-шаблонWhatsApp-шаблонViber™-шаблонNotify-шаблон
        Визуальный редактор для email-шаблонаarrow
      • Интерфейс редактораДобавление элементовЭлементы и их настройкиПользовательские блокиСтили элементаСтруктура элементов
      Блочный редактор для email-шаблонаФрагменты шаблоновИзображения в сообщенияхПерсонализация контента в сообщенияхФормирование таблиц на основе элементов массива
        Переменные и функции Altcraftarrow
      • Использование логических выражений в сообщенияхИспользование циклов в сообщенияхИспользование переменных маркета в сообщенияхИспользование функционала JSONPath
        Динамический контент сообщенийarrow
      • Использование API-контента в сообщенияхИспользование HTML-контента в сообщенияхИспользование JSON-контента в сообщенияхИспользование контента из SQL базы данных в сообщениях
      Импорт и экспорт шаблона сообщенияЭкспорт шаблона из PixcraftИмпорт шаблона из стороннего сервиса
      Рассылкиarrow
    • Календарь рассылокБроадкаст рассылкаРегулярная рассылкаТриггерная рассылкаМультивариантный тест (A/B/n)Тестирование расылокРасписание рассылокРазмещения
      Кампанииarrow
    • Работа с КампаниямиЛокальные контрольные группы (ЛКГ)Ошибка нарушения стратификации при достижении лимитаРасширение аудитории в кампанииРазметка аудитории в кампаниях
      Сценарии автоматизацииarrow
    • Работа со Сценариями автоматизацииУзлы сценарияКлассические сценарии автоматизации маркетингаПриветственный сценарий: пошаговая настройкаАвтоматическое оповещение менеджера через сценарийСценарий брошенной корзины
      Маркетarrow
    • Настройки маркета
        Продуктыarrow
      • Создание продукта вручнуюИмпорт продукта из файлаИмпорт по расписаниюСегменты продуктов и SKUПодготовка YML-файла
      ЗаказыПеременные маркета в шаблонахРуководство: как отправить письмо подтверждения заказа
      Лояльностьarrow
    • Создание и настройка программы лояльностиИнтеграция лояльности с внешними системамиБыстрый стартБазовые кейсы использования программы лояльностиСегменты заказовПромокоды
      Веб-слойarrow
      • Формыarrow
      • Создание формыКонструктор формыОформление формыДействия при активации формыАналитика данныхСвязывание данных канала и формыУсловная постраничная логика в формах и опросахNPS-тестирование
        Пикселиarrow
      • Целевые действия клиентов и скоринг
        Попапыarrow
      • Создание и публикация попапаНастройка попапа в редакторе кодаУправление попапами вручную через скриптАналитика попаповРуководство: попап для подписки на pushБазовые кейсы размещения попапа через Менеджер теговКейс: Создание попапа с виджетом "Колесо фортуны"
        Менеджер теговarrow
      • Настройка и установка Менеджера теговТипы триггеровТипы переменныхСвязывание пикселя и Менеджера тегов
      Отчеты и аналитикаarrow
    • Отчет по каналамОтчёт по трафику
        Сводный отчётarrow
      • Все показатели сводного отчета
      Когортный отчётВремя жизниВоронка конверсииЦелиПрирост аудиторииКарта кликов (Email)Отчет по программам лояльностиОтчёт о возвратахОтчёт о недоставкахОтчет по глобальным контрольным группам
      Интеграцииarrow
    • Синхронизация статических сегментовMAXЯндекс.Аудитории™Аудитории Google AdsFacebook Ads Manager™Область видимости интеграцииWhatsAppViber™Tilda™Yandex AppMetrica™Lpgenerator™VK Реклама™Передаваемые при синхронизации данные
        Интеграция сторонних сервисов с Altcraft через Albatoarrow
      • Подключение Altcraft к AlbatoЗапуск приветственного сценария через AlbatoПередача данных о событииОтправка триггерной рассылкиРегистрация событийИмпорт данных из Google Sheets через AlbatoПередача данных из Altcraft
      Notify
        Захват событийarrow
      • Захват событий AltcraftТипы событий для захватаСтруктуры сообщений захвата событийОтправить JSON-запрос батчемОтправить сообщение в очередь RabbitMQОтправить сообщение в exchange RabbitMQОтправить сообщение в Kafka brokerПредварительное тестирование события
      Настройкиarrow
    • Настройки аккаунтаНастройки атрибутовПоисковые теги: создание и применениеПользовательские ссылкиВиртуальные сендерыПолитики отправки
        Пользователи и разграничение доступаarrow
      • Двухфакторная аутентификация (2FA)
        Подключенияarrow
      • Подключение к Facebook AdsПодключение к Google AdsПодключение к Яндекс.Аудиториям™Подключение к 360dialogПодключение к EdnaПодключение к Devino TelecomПодключение к SMS TrafficПодключение к VK Рекламе™Подключение к MTS OmniChannelПодключение через OAuth2Подключение через Basic AuthenticationПодключение через Token AuthenticationПодключение через Custom AuthenticationПодключение к MAXПодключение к NotifyПодключение к Rapporto
      Журнал аудита
      API-запросы: с чего начатьarrow
    • Импорт и обновление профиляЗапуск триггерной рассылкиОтправка профиля клиента в сценарий
    Архив документацииБиблиотека email-маркетолога
  • Шаблоны сообщений
  • Переменные и функции Altcraft
  • Использование функционала JSONPath

Использование функционала JSONPath

Платформа Altcraft поддерживает функционал языка запросов JSONPath при работе с JSON-контентом. Синтаксис JSONPath позволяет быстро и просто выбирать объекты внутри кода и использовать их в шаблонах сообщений. Его можно использовать при работе с API-контентом и с внешним JSON-контентом.

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

Для подключения внешнего JSON, перейдите в раздел "Опции" во время создания или редактирования шаблона и укажите ссылку на источник динамического JSON-контента. Платформа самостоятельно определит поля внешнего JSON-файла. Более подробную информацию об использовании JSON при работе с шаблонами сообщений вы можете найти здесь.

Аргументы функции​

Переменная JSONPath на платформе Altcraft указывается в следующем виде:

{jsonpath(json.<корневой_объект> "<путь_к_объекту>" "<формат вывода>")}

АргументОписание
Корневой объектОбращение к JSON-объекту, в котором находится нужный параметр или объект
Путь к объектуПуть к искомому объекту; может состоять из разделённых точками сегментов, логических операторов, фильтров или функций
Формат выводаКонечная переменная может быть представлена в двух вариантах: item (объект) или array (массив).

Item выведет первый найденный по запросу результат, а если результата нет, то вернёт пустую строку.

Array возвращает массив всех найденных результатов. Этот режим всегда выводит результат в виде массива, даже если результат один или отсутствует.

Примеры использования​

Рассмотрим примеры использования JSONPath. Предположим, что мы имеем JSON-файл со следующим содержанием:

{
"store": {
"book": [
{
"category": "справочная литература",
"author": "Найджел Риз",
"title": "Высказывания Века",
"price": 8.95,
"images": ["AbeLincoln.png","Churchill.jpg","Thatcher.png"]
},
{
"category": "художественная литература",
"author": "Ивлин Во",
"title": "Меч почёта",
"price": 12.99,
"images": ["MenAtArms.png","Gentlemen.jpg","Officers.png"]
},
{
"category": "художественная литература",
"author": "Герман Мелвилл",
"title": "Моби Дик",
"isbn": "0-553-21311-3",
"price": 8.99,
"images": ["Ahab.png","Ishmael.jpg","whale.png"]

},
{
"category": "художественная литература",
"author": "Дж.Р.Р. Толкин",
"title": "Властелин Колец",
"isbn": "0-395-19395-8",
"price": 22.99
}
]
}
}

Благодаря функционалу JSONPath небольшое выражение может вернуть массив, содержащий всех авторов книг:

{jsonpath(json.store "$.book[*].author" "array")}

Другая функция вернёт один объект — автора первой книги:

{jsonpath(json.store "$.book[*].author" "item")}

Можно построить выраженее посложнее, например, для того, чтобы узнать название книги, цена которой выше 10, мы составим следующий код:

{jsonpath(json.store "$.book[?(@.price > 10)].title" "item")}

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

{jsonpath(json.store "$.book[*].price.avg()" "item")}

Переменные JSONPath также могут работать в циклах:

{for $index $imgs = jsonpath(json.store "$.book[*].images" "array")}
<li>{$imgs}</li>
{else}
<p>Empty array!</p>
{end}

Полный функционал JSONPath в платформе Altcraft Marketing указан в таблице ниже:

АргументОписаниеПример использованияРезультат
$Корневой элемент{jsonpath(json.store "$.book[0].title" "item")}Высказывания Века
@Текущий элемент{jsonpath(json.store "$.book[?(@.price > 10)].title" "item")}Меч почёта
..Рекурсивный спуск{jsonpath(json.store "$..title" "array")}[Высказывания Века Меч почёта Моби Дик Властелин Колец]
*Соответствие всем объектам{jsonPath(json.store "$.book[*].price" "array")}[8.95 12.99 8.99 22.99]
?()Фильтр{jsonpath(json.store "$.book[?(@.category == 'справочная литература')].title" "item")}Высказывания Века
Логический оператор для фильтрацииОписаниеПример использованияРезультат
==Равно {jsonpath(json.store "$.book[?(@.category == 'справочная литература')].title" "item")}Высказывания Века
!=Не равно {jsonpath(json.store "$.book[?(@.category != 'справочная литература')].title" "array")}[Меч почёта Моби Дик Властелин Колец]
<Меньше {jsonpath(json.store "$.book[?(@.price < 10)].title" "array")}[Высказывания Века Моби Дик]
>Больше {jsonpath(json.store "$.book[?(@.price > 10)].title" "array")}[Меч почёта Властелин Колец]
<=Меньше или равно {jsonpath(json.store "$.book[?(@.price >= 12.99)].title" "array")}[Меч почёта Властелин Колец]
>=Больше или равно {jsonpath(json.store "$.book[?(@.price <= 12.99)].title" "array")}[Высказывания Века Меч почёта Моби Дик]
ФункцияОписаниеПример использованияРезультат
maxМаксимальное значение в массиве{jsonPath(json.store "$.book[*].price.max()" "item")}22.99
minМинимальное значение в массиве{jsonPath(json.store "$.book[*].price.min()" "item")}8.95
firstПервый элемент массива{jsonPath(json.store "$.book[*].title.first()" "item")}Высказывания Века
lastПоследний элемент массива{jsonPath(json.store "$.book[*].title.last()" "item")}Властелин Колец
sumСумма чисел в массиве{jsonPath(json.store "$.book[*].price.sum()" "item")}53.92
avgСреднее значение из чисел в массиве{jsonPath(json.store "$.book[*].price.avg()" "item")}13.48
lengthКоличество элементов в массиве{jsonPath(json.store "$.book.length()" "item")}4
Последнее обновление 13 мая 2024 г.
Предыдущая страница
Использование переменных маркета в сообщениях
Следующая страница
Динамический контент сообщений
  • Аргументы функции
  • Примеры использования
© 2015 - 2026 Altcraft. Все права защищены.