PROScript — встроенный язык персонализации рассылок в Sendsay. С его помощью в шаблон письма можно:
— подставлять разные данные: имя, текст, картинки;
— задавать условия, при которых должно меняться содержимое письма;
— изменять формат даты, управлять регистрами;
— выводить данные для сценариев «Брошенная корзина» и «Брошенный просмотр».
Каждое поле в базе Sendsay имеет свой уникальный код, написанный на PROScript. Он состоит из кода анкеты и кода поля. В блочном редакторе их можно достать через поле «Персонализация».
Получается, вы выгружаете данные о пользователях в созданные вам поля, за которыми автоматически закреплен код. И эти коды можно использовать для персонализации рассылок. Таким образом в письмах появляются, например, обращение к пользователю по имени, индивидуальные промокоды и т.д.
Условия «если» и «иначе»: что это такое, зачем нужно и как его задать
Условие «если»
Только в идеальном мире все анкеты ваших подписчиков заполнены одинаково. В реальности же получается так, что чье-то имя, пол и месторасположение вы знаете, а чьи-то — нет. Поэтому кому-то вы сможете написать «Добрый вечер, Иван!», а с кем-то придется ограничиться лаконичным «Добрый вечер!».
Для таких случаев и существует команда «если». Она помогает задать условия, при которых какие-то элементы письма будут включаться или, наоборот, отключаться.
Как это работает — объясняем на примере выше. Участок кода с фразой «Добрый вечер, Иван!» в шаблоне письма будет выглядеть следующим образом: Добрый вечер, [% anketa.base.firstName %]! Если письмо с таким участком кода попадет к получателю, который не указал свое имя при подписке на рассылку, у него фраза будет отображаться как: «Добрый вечер, !»
Не очень красиво — лучше убрать эту фразу для безымянных пользователей. И сделать это можно как раз с помощью команды «если». С ней участок кода будет выглядеть так: [%IF anketa.base.firstName %] Добрый вечер, [% anketa.base.firstName %][% END %]. И в таком случае у пользователя без имени ничего не отобразится.
Команду [% IF %] можно использовать и в других переменных: высылать промокод только подписчикам с определенным средним чеком, предлагать подборку товаров в зависимости от указанного пола и/или географии. Здесь уже все зависит только от ваших потребностей и возможностей.
Условие «иначе»
Есть и другая команда — [% ELSE %]. Она помогает задать другой сценарий поведения шаблона.
Как это работает на примере с уже знакомым нам Иваном: [% IF anketa.base.firstName %] Добрый вечер, [% anketa.base.firstName %][% ELSE %] Добрый вечер![% END %].
То есть: если в поле с именем есть информация, выведи ее в письме, в ином случае напиши «Добрый вечер!»
Или разберем другой пример. Представим, что вы делаете автоматизированную рассылку с бонусными баллами за заказ. Если человек покупает у вас товаров на 5000 рублей, вы присылаете ему письмо с информацией о том, что на его бонусный счет начислилось 500 рублей за покупку. Сделать это можно с помощью команды «если», которую мы разобрали выше. [% IF anketa.a789.q790 >= 5000%]Вам начислено 500 бонусных рублей за покупку![% END %]
Но что делать с теми клиентами, которые сделали заказ на 3000 или 4500 рублей?
Было бы здорово подсказать им, что для получения бонусных баллов им нужно совершить еще одну покупку в течение, например, недели. Чтобы в письме отобразилась эта информация, нужна команда «иначе». С ней уже существующий фрагмент кода будет выглядеть так: [% IF anketa.a789.q790 >= 5000]Вам начислено 500 бонусных рублей за покупку![ % ELSE %] Вам чуть-чуть не хватило до получения бонусов :( Сделайте заказ на 500 рублей или больше в течение недели, чтобы их получить! [% 5000 - anketa.a789.q790][% END %]
При этом заметьте, что финальный участок кода [% 5000 - 4500 anketa.a789.q790] отвечает за калькуляцию скидки. Если человек сделает покупку на 3000 рублей, он будет выглядеть как [% 5000 - 3000 anketa.a789.r790]. Соответственно, изменится и текст письма: пользователю предложат совершить покупку не на 500, а на 2000 рублей.
Условие «иначе если»
Еще есть команда [% ELSIF %] .
ELSIF используется в тех случаях, когда нам надо задать сразу несколько условий. ELSE, например, работает только как альтернатива IF — первая команда не сработала, переходим ко второй. А ELSIF можно использовать бесконечное количество раз, усложняя условия.
Пример употребления оператора [% ELSIF %] можно посмотреть чуть ниже.
Что такое переменная и почему с ней надо подружиться
В программировании переменная — это поименованная область памяти, адрес которой можно использовать, чтобы получать доступ к данным. Поименнованная — то есть буквально названная.
Более простым языком: переменная — это коробка, в которой хранятся данные. А значение переменной — предметы, которые мы туда можем положить. Знакомый нам [% anketa.base.firstName %] — это и есть переменная. Она подсказывает коду, из какого именно поля нужно брать информацию: не из географического положения, не из среднего чека — из имени. А конкретные имена — Иван, Антонина, Вася и Маша — это уже значения переменной.
Переменную можно использовать для самых разных задач: чтобы менять имена от пользователя к пользователю, чтобы правильно склонять существительные, стоящие рядом с числительными (255 рублей, но 254 рубля) или, например, чтобы предлагать прогрессирующую скидку, зависящую от суммы заказа.
Как это работает: допустим, вы хотите простимулировать своих клиентов на повторную покупку, предложив своим клиентам скидку на следующий заказ. Условия такие: если пользователь делает покупку от 1000 до 2000 рублей, он получает скидку 5%. Если от 2000 до 4000 — 10%. От 5000 рублей и дальше — 15%.
Соответственно, если сумма покупки составила менее 1000 рублей, скидки не будет. Если более 10 000 — скидка все равно составит 15%, это наш максимум. Разберем, как задать переменную и ее значение таким образом, чтобы размер скидки рассчитывался атвоматически. Для этого нам понадобятся уже знакомые нам команды [% IF %] и [% ELSE %].
Для начала объявляем переменную: [% number = anketa.a789.q790 %]. Переменная — это коробка, помните? Значит там, в переменной, лежит сумма заказа. Для каждого пользователя ее значение будет индивидуально, но поле в котором хранится эта информация, одно.
Дальше нам надо задать условия, при которых будет или не будет выполняться участок кода. Здесь нам важно ввести еще один термин: истинное и ложное значение выражение. Чтобы понять его, достаточно начальных математических знаний. Все просто: 2x2 = 4, правда? Правда, значит это истинное выражение. А 2x2 = 5, это правда? Нет, значит это ложное. 0, null и отсутствие значения также считаются ложными в разных языках программирования.
Если программа вычисляет, что значение выражения истинное — она выполняет строчку кода. Если нет — идет дальше. Вернемся к нашему примеру и посмотрим, как это работает в реальности.
Нам надо записать условие, при котором пользователь получит скидку в 5%. Это будет выглядеть следующим образом: [%IF number >= 1000 %] Поздравляем! Вам скидка 5% на следующую покупку [% END %]. Number в этом конкретном случае — то же самое, что и поле с суммой заказа. Фактически мы написали: если number (сумма заказа) больше или равно 1000, в письме должна появиться фраза: Поздравляем! Вам скидка 5% на следующую покупку.
Таким образом, если пользователь делает покупку на 1200 рублей, программа сравнивает: 1200 больше или равно 1000 — значит, значение выражения истинное. Код выполняется. Но если сумма покупки равна 800 рублям — ситуация меняется. 800 больше или равно 1000? Нет — значит, значение выражения ложное, строчка кода не выполняется и в письме не появляется предложение со скидкой на следующую покупку.
Однако в примере выше мы не учли, что под диапазон больше 1000 подходит и 2000, и 3000, 5000 — нам же нужно сделать так, чтобы скидка росла в зависимости от суммы заказа. Сделать это можно следующим образом.
[% IF number < 1000 %]
[% ELSIF number >= 1000 and number <= 2000 %] Поздравляем! Вам скидка 5% на следующую покупку.
[% ELSIF number >= 2000 and <= 4000 %] Поздравляем! Вам скидка 10% на следующую покупку.
[% ELSE %] Поздравляем! Вам скидка 15% на следующую покупку.
[% END %]
Здесь мы описали полный сценарий: если сумма покупки меньше 1000 рублей, мы ничего не пишем. Если между 1000 и 2000 — предлагаем скидку в 5%, между 2000 и 4000 — скидку в 10%. Если же больше 5000 — максимальные 15%. На этом ветка команд заканчивается.
Другие возможности PROScript
То, что мы описали выше, — лишь малая часть того, что умеет PROScript. У него есть также фильтры-модификаторы, которые позволяют менять строчные буквы на прописные и наоборот, удалять лишние символы и пробелы.
Подробнее почитать про язык и его возможности можно в нашей базе знаний. Там много интересного и полезного — обязательно туда заглядывайте и по другим вопросам, связанным с email-маркетингом.
А закрепить тему поможет наш видеоурок, посвященный персонализации и PROScript. 18 насыщенных минут, которые окончательно уложат информацию в голове — очень советуем посмотреть.
И, конечно, применяйте полученные знания в Sendsay — мы ждем!