Интеграция Автопилота с Senler

Важно!

Чтобы у вас в принципе была возможность подписывать на рассылку Senler, подписчик обязательно должен дать разрешение на отправку сообщений. Подробнее об этом в статье Азбука рассылок ВКонтакте.

Возможности

Благодаря интеграции вы сможете подписывать подписчиков рассылки (тех, кто разрешал сообщения от сообщества) на другие группы подписчиков (или отписывать) почти по любым событиям в сообществе: комментариям, репостам, сообщениям заявкам и т. д., а также их логическим комбинациям.

Это позволяет увеличить видимую активность пользователей (ваше сообщество станет живее) а также тонко сегментировать подписчиков по их действиям и отправлять более целевые письма. Что как правило увеличивает симпатию к вашей рассылке и, как следствие, общую прибыль сообщества. 🙂

Также вы можете реагировать на подписку/отписку в приложении сервиса (или даже на «действия» в разделе «подписчики»). Для этого нужно настроить интеграцию с WebHook API (← по ссылке подробнее).

Текстом и скриншотами для любителей читать

Для интеграции вам нужен секретный ключ Senler. Его можно получить в разделе «Управление» вашего сообщества ВКонтакте (1).

Интеграция Автопилота с Senler, image #1

Там нужно:

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

ВАЖНО! Не показывайте никому этот ключ! Иначе злоумышленники могут подделать запросы от вашего сообщества.

Ключ я спокойно спалил, так как у меня это случ. символы для примера.
Ключ я спокойно спалил, так как у меня это случ. символы для примера.

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

Интеграция Автопилота с Senler, image #3

Если сообщество там у вас еще не подключено, инструкция по подключению находится здесь.

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

Ключ я спалил, так как сразу после записи инструкции я его поменял.
Ключ я спалил, так как сразу после записи инструкции я его поменял.

Настройка WebHook API

Наглядный пример настройки интеграции с Вебхуками Senler (новая версия)

По сути все элементарно, достаточно скопировать и сохранить секретный ключ сообщества (это наглядно показываю выше и в обеих видео) и после этого ссылку из настроек интеграций в Автопилоте…

Важно! В видео выше при создании вебхуков выбирался метод JSON, а сейчас Senler сменили типы методов (выбирайте POST JSON):

Подробнее про методы:

POST JSON — данные передаются методом POST в формате JSON
FORM DATA — данные передаются методом POST
GET — данные передаются методом GET

Шаблоны тоже лучше не трогать, оставив поле пустым.

Где найти ссылку для WebHook API Senler
Где найти ссылку для WebHook API Senler

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

Интеграция Автопилота с Senler, image #6

После нажатия добавляем:

  • любое название для вебхука (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-запроса Senler
Важно! В случае если вы после 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 выбираем Вебхук и вставляем скопированную ссылку. Не забудьте сохранить.

Запрос Автопилотом данных подписчика из 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.

Вернуться на главную страницу инструкций
13159 views·274 shares