Интеграция Автопилота с Senler
Важно!
Чтобы у вас в принципе была возможность подписывать на рассылку Senler, подписчик обязательно должен дать разрешение на отправку сообщений. Подробнее об этом в статье Азбука рассылок ВКонтакте.
Возможности
Благодаря интеграции вы сможете подписывать подписчиков рассылки (тех, кто разрешал сообщения от сообщества) на другие группы подписчиков (или отписывать) почти по любым событиям в сообществе: комментариям, репостам, сообщениям заявкам и т. д., а также их логическим комбинациям.
Это позволяет увеличить видимую активность пользователей (ваше сообщество станет живее) а также тонко сегментировать подписчиков по их действиям и отправлять более целевые письма. Что как правило увеличивает симпатию к вашей рассылке и, как следствие, общую прибыль сообщества. 🙂
Также вы можете реагировать на подписку/отписку в приложении сервиса (или даже на «действия» в разделе «подписчики»). Для этого нужно настроить интеграцию с WebHook API (← по ссылке подробнее).
Текстом и скриншотами для любителей читать
Для интеграции вам нужен секретный ключ Senler. Его можно получить в разделе «Управление» вашего сообщества ВКонтакте (1).

Там нужно:
- Открыть раздел «Работа с API» (2).
- Переключиться на вкладку «Callback API» (3).
- В выпадающем списке серверов найти сервер «Senler» (4)
и переключиться на него. - Дальше найти поле «Секретный ключ» и скопировать его значение (5).
Только не путайте, пожалуйста «Секретный ключ» с «Ключами доступа»! Это совершенно разные вещи!
ВАЖНО! Не показывайте никому этот ключ! Иначе злоумышленники могут подделать запросы от вашего сообщества.

После этого откройте список сообществ в сервисе Автопилот. И нажмите на кнопку «Настройки» в карточке нужного сообщества:

Если сообщество там у вас еще не подключено, инструкция по подключению находится здесь.
Первая опция в поле «Секретный ключ Senler» как раз то, куда нужно вставить строку, которую вы скопировали в Senler-е. Все. Нажимайте «Сохранить» и интеграция завершена. Важно! Это должно быть одно и то же сообщество в обоих сервисах.

Настройка WebHook API
По сути все элементарно, достаточно скопировать и сохранить секретный ключ сообщества (это наглядно показываю выше и в обеих видео) и после этого ссылку из настроек интеграций в Автопилоте…
Важно! В видео выше при создании вебхуков выбирался метод JSON, а сейчас Senler сменили типы методов (выбирайте POST JSON):
Подробнее про методы:
POST JSON
— данные передаются методом POST в формате JSONFORM DATA
— данные передаются методом POSTGET
— данные передаются методом GET
Шаблоны тоже лучше не трогать, оставив поле пустым.

...перейти в «Настройки» (1), выбрать раздел «Webhook Api» и нажимаем на «Добавить».

После нажатия добавляем:
- любое название для вебхука (1)
- скопированный URL из Автопилота (2)
- Тип запроса:
POST_ JSON
(3) - События выставляем и на подписку и на отписку (4)
- Обязательно проверяем галочку Активный вебхук, иначе если галочка не установлена, то работать вебхук не будет (5)
- нажимаем на «Сохранить»

Если все сделали правильно, Senler вас об этом вежливо уведомит. А также ваше сообщество пришлет вам сообщение, что все хорошо.

Команды
После этого останется только добавлять команды с нужными блоками.

Подробнее о настройке события можете посмотреть в этой статье.

Подробнее о параметрах действия «Подписать на рассылку Senler» можете посмотреть в этой статье. Там есть об использовании параметра «ID метки»!
Также смотрите наглядный пример добавления команд на подписку и отписку в видео в начале статьи.
Реакция на POST-запрос из бота Senler
- Для этого вам нужно событие Входящий запрос (Упомянут в GET / POST запросе)
- В его параметрах пропишите:
&to=json&sid_param=object.vk_user_id
(ничего другого писать не нужно!) - Итоговую ссылку используйте в параметрах действий бота Senler. Скрин ниже.
- В действиях Автопилота все нужные данные можно достать с помощью переменной
%request%
.
%request%
— это уникальная переменная, которая поддерживает входящий запрос от сторонних сайтов (ВК, Senler и т. д.). Она поддерживает JSON PATH. То есть, можно внутри через точку прописывать путь к внутренним элементам. Подробнее о переменной можно прочесть здесь.
Ниже несколько примеров переменных:
Имя подписчика Senler: %request.input.object.first_name%
Фамилия подписчика: %request.input.object.last_name%
Пол подписчика: %request.input.object.sex% (2 - мужской, 1 - женский)
Дата рождения подписчика: %request.input.object.bdate%
Значение переменной бота Senler с именем тест test:
%request.input.object.variables.test%
Метка utm_source группы подписчиков №155:
%request.input.object.subscriptions.155.utm_source%
Весь json массив доступен в переменной:
%request%
Важно! В случае если вы после POST-запроса будете запрашивать, например, Email или номер телефона, то %request%
перезапишется (т.к. это запрос из ВК с «новыми» данными), чтобы этого избежать доставайте данные через функцию {senler}, пример ниже (переменные должны быть сохранены заранее):
Имя подписчика Senler: {senler}vars.first_name{/senler}
Фамилия подписчика: {senler}vars.last_name{/senler}
Пол подписчика: {senler}vars.sex (2 - мужской, 1 - женский){/senler}
Дата рождения подписчика: {senler}vars.bdate{/senler}
Значение переменной бота Senler с именем тест test:
{senler}vars.test{/senler}
Метка utm_source группы подписчиков №155:
{senler}vars.subscriptions.155.utm_source{/senler}
Весь json массив доступен в переменной:
%request%

Запрос Автопилотом данных подписчика из Senler
При выполнении команды Автопилота можно обратиться к Senler и запросить данные подписчика в формате JSON-объекта. Для этого используется переменная {senler}vars{/senler}
. Будут получены данные того подписчика, для которого выполняется действие, содержащее эту переменную.
- Сначала можно получить JSON-объект, содержащий все переменные Senler. Для этого в команду Автопилота вставляем переменную
{senler}vars{/senler}
. Это может помочь получить точное название переменной. Хотя особого практичного смысла в этом нет. - Достаём переменную Senler по её названию. Если в Senler для подписчика такая переменная задана, то получим её значение. Если не была задана — получим «
… not found
» (где…
— название переменной).
Чтобы достать переменную по названию, просто пропишите её название после точки и vars
. То есть у {senler}
принцип аналогичный как для {get_var}
. Например, чтобы достать переменную с названием autopilot
нужна следующая конструкция: {senler}vars.autopilot{/senler}
где вместо autopilot
подставьте название вашей переменной(именно так, как она называется в боте Senler). Подробнее об этом в этом разделе.
Важно! Если вы в боте называли переменную autopilot
, а получаете ее значение {senler}vars.Autopilot{/senler}
то получите ошибку т.к. переменной Autopilot
в боте нет(с заглавной буквы). Пример работы с переменными дан ниже:
Синоним польз. перем.: {senler}autopilot|subscriber{/senler}
Для запроса или редактирования глобальной переменной нужно передать значение так:{senler}autopilot|global{/senler}
— где autopilot
— имя переменной, а global
— параметр который указывает на то, что идет запрос глобальной переменной.
Полезные переменные:
{senler}all{/senler}
— все данные. Пачкой в формате JSON. Вместоall
можно использовать путь к нужному свойству в формате JSON.PATH. Например:{senler}utms.0.utm_source{/senler}
— самая первая метка utm_source из всех меток подписчика.- Глобальные переменные:
{senler}all|global{/senler}
- Переменные подписчика:
{senler}all|subscriber{/senler}
{senler}vars.autopilot{/senler}
— получить значение переменной Senler с названием{%autopilot%}
. Словоautopilot
замените на название вашей собственной переменной.{senler}vars{/senler}
— достать ВСЕ переменные Senler{senler}subscriptions.123456{/senler}
— проверить подписку на группу подписчиков123456
(число меняйте на своё). Проверка возможна благодаря следующему факту: если игрок не подписан на группу, то Автопилот вернет значение:123456 not found
. Если результат работы функции НЕ возвращаетnot found
, значит игрок подписан на неё.{senler}subscriptions.123456.date{/senler}
— дата подписки на группу подписчиков Senler с № 123456 (число меняйте на своё).- Для проверки наличия нужной UTM-метки можно проверить содержит ли переменная
{senler}utms{/senler}
значение метки в кавычках:"vk"
- Также можно другие сохраненные в Senler данные получить аналогично:
—{senler}first_name{/senler}
— имя,
—{senler}last_name{/senler}
— фамилия,
—{senler}photo{/senler}
— сохраненный в Senler аватар,
—{senler}sex{/senler}
— пол,
—{senler}bots{/senler}
— массив ботов, на которые подписан игрок.
Пример настройки действий команды:

Пример выполнения команды:

ВАЖНО! При многоразовом использовании переменной {senler}___{/senler}
внутри одного запуска команды повторные запросы не выполняются = данные могут быть получены только один раз (сразу все).
То есть, если они были изменены во время выполнения команды, то новые значения берите из Автопилота (например из временной переменной), а не пытайтесь получить из Senler.
Вернуться на главную страницу инструкций