Интервью с ProScript — встроенным языком программирования платформы Sendsay

Для начала расскажите немного о себе, не все читатели хорошо вас знают.

С удовольствием! Я – ProScript, встроенный язык программирования. Реализован в рамках платформы для мультиканального маркетинга Sendsay.

Какова ваша главная задача?

Я помогаю брендам персонализировать рассылки и выстраивать эффективную систему коммуникации с клиентами.

Звучит масштабно. А каков ваш уровень по сравнению с аналогами? Насколько сложный код можно написать с вашей помощью?

Я ничем не уступаю конкурентам, так что в теории можно написать код любой сложности. Все зависит только от специалиста, который со мной работает.

Какие из ваших функций наиболее популярны?

Чаще всего меня используют для простой подстановки данных, чтобы получить что-то вроде: «Добрый день, [имя]».

Иногда добавляют условие if. То есть если мы знаем имя клиента, то приветствие будет выглядеть так: «Добрый день, [имя]. Если имя неизвестно, я оставлю только «Добрый день» (не забыв убрать запятую, разумеется).

Обидно, что люди в большинстве своем используют только самый простой функционал. А ведь я способен на большее.

Например?

Ну, я могу проверить содержание того же поля «имя» на наличие цифр или символов вроде «$», «#» и тому подобных (очевидно, что это никакое не имя – пользователь просто ввел что попало) и вывести «уважаемый клиент». Для этого применяется метод match.

С помощью команды ucfirst я могу сделать так, чтобы имя было написано с большой буквы. Пользователь введет «вася », а я напишу ему «Привет, Вася».

Еще раз уточню этот момент: вы считаете себя языком программирования, правильно?

Все верно. Я поддерживаю операторы ветвления (if, else, switch), циклы for и foreaсh, операторы сравнения (больше, меньше, равенство, неравенство). Могу проводить математические операции (сложение, вычитание, умножение, деление, вычисление процента), позволяю объявить переменную и создать массив.

Расскажите чуть подробнее, зачем все это нужно?

Представьте, что в вашем распоряжении есть данные по суммам покупок клиентов. И вы хотите тем, у кого минимальная сумма покупки, сделать предложение «Купи 2 товара – получи 3-й в подарок». Тем, у кого средняя сумма покупки: «Купи 3 товара и получи 4-й в подарок». Здесь вам помогут операторы сравнения >, < (больше, меньше).

Тем, у кого крупная сумма покупки, вы решили пока не посылать письмо? Просто воспользуйтесь командой Cancel_Letter().

Конечно, все это можно сделать и с помощью сегментов, но со мной выйдет проще и быстрее.

А что-то уникальное, чего нельзя повторить с другим функционалом?

Ну, скажем, вы хотите подарить всем пользователям 1000 бонусных баллов. Конечно, можно просто сообщить подписчикам: «Дарим тысячу баллов». А можно вытащить в письмо информацию о текущем балансе клиента, прибавить тысячу баллов и указать новый баланс, для каждого пользователя свой. Персонализация во всей ее красе.

Но ведь с тем же успехом можно выгрузить эти данные из CRM, посчитать все в Excel и загрузить в базу уже готовый результат.

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

Элементарный пример – работа с датами. Я вывожу текущую дату (день, месяц, год, день недели) в преобразованном виде: не «20181010», а «10 октября 2018» или даже «десятое октября 2018, среда». Меняться может любой контент: дата, текст, картинка. То есть,например, пока на дворе октябрь, будет использоваться формулировка «октябрьская распродажа». 1 ноября ей на смену автоматически придет надпись «ноябрьская распродажа».

Любопытно. Что-нибудь еще?

Я могу добавлять к выбранной дате определенное количество дней. Например, акция стартует сегодня (вы указываете дату) и закончится через два дня, вы добавляете значение «+2»):

[% today = date.format(datetime_now(),"%Y-%m-%d","en_EN.UTF-8") %]

[% tt = "+2" %]

Акция стартует: [% date.format(datetime(today),'%d.%m.%Y',"en_EN.UTF-8") %]

Акция заканчивается: [% date.format(datetime(today).add("days", tt), '%d.%m.%Y', 'en_EN.UTF-8') %]

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

Но использовать вас можно только в рассылке?

Вовсе нет! Я хорош также и в формах. Запросто могу экспортировать в форму данные, которые уже есть в базе. Пользователь приходит на страницу, а там некоторые поля уже заполнены. Имя, год рождения, родной город – любые данные, которые человек ранее уже сообщал.

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

Значит, email-рассылки и формы…

А еще SMS и web-push. Я ведь встроен в мультиканальную платформу, приходится соответствовать.

Как отличается ваш функционал в зависимости от канала (email, SMS, web-push)?

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

Каким вы видите свое будущее?

В ближайшее время планирую много и усердно работать.

Разумеется, будут какие-то доработки функционала – в современных условиях языку программирования нельзя стоять на месте.

В заключение хотелось бы спросить: есть ли у вас заветная мечта?

Будет круто, если когда-нибудь меня станут изучать в школах.

Присоединяйтесь к нам в соцсетях