Сервис воронок умеет работать не только с системными событиями. Их также можно генерировать и вызывать самостоятельно или сторонними сервисами.
Для этого нужно использовать блок "Событие":
Существует несколько способов активировать такое событие.
Ключевой настройкой для этого блока является идентификатор события.
По этому идентификатору система понимает, какой именно блок вы хотите активировать. Обратите внимание! Этот идентификатор не привязан к воронке/сценарию и если вы используете такой же идентификатор в других воронках, то они все будут активироваться одновременно.
Теперь о каждом способе вызова отдельно.
Чтобы вызвать событие из формы на странице, вам нужно использовать обработчик "Добавить действие ReFunnels". И указать код из настроек блока.
Этот обработчик рекомендуется размещать после ключевых действий с пользователем, до редиректа.
Когда форма будет отправлена, будут автоматически выполнены действия, настроенные после этого события
Для того, чтобы вызвать событие обычной кнопкой (без формы), выберите обработчик "действие расширений", а затем "Отправить событие ReFunnels". Работает также, как форма - создает событие, которое будет тригггерить настроенные действия.
Этот вариант бывает очень полезен, когда нужно протестировать действие для конкретного объекта.
Перейдите в режим "отладка", выберите объект и его внешний идентификатор. По умолчанию указан ваш id пользователя. После этого нажмите "Создать". Важно! Не забудьте сохранить сценарий перед запуском события.
После такого запуска, можно быстро повторить запуск из контекстного меню блока "событие". Событие будет повторно создано для последнего сохраненного объекта.
Используя этот вариант можно произвести интеграцию с внешним сервисом. При этом есть 2 варианта развития событий:
Для того, чтобы событие было возможно активировать по ссылке, перейдите на вкладку "Внешний вызов" и установите чек-бокс "Разрешить вызов внешней системой"
После этого система выдаст уникальную ссылку для вызова события и будет фиксировать входящие запросы.
В данном случае внешняя система должна передать один или несколько идентификаторов (по 1 для каждого типа объекта) по ссылке, указанной в настройке.
Тело запроса может содержать следующие параметры:
userId?: string
dealId?: string
sessionId?: string
uid?: string // id сессии из объекта window.clrtUid
chatId?: string
botId?: string
email?: string
createUser?: boolean
createUserParams?: {
firstName?: string
lastName?: string
}
customData?: Record<string, string>
Формат ответа:
{
success: boolean
message: string
}
Обязательно нужно передать один из следующих параметров: sessionId, userId, dealId, email, chatId
. Если параметра не будет, сформируется случайный идентификатор сессии и событие зафиксируется для объекта "сессия".
Если будет передан идентификатор объекта, которого нет в аккаунте, будет возвращена ошибка.
Если вы передаете email, которого нет в аккаунте и хотите зарегистрировать нового пользователя, необходимо передать параметр createUser: true
.
При создании нового пользователя, опционально можно передать имя (firstName
) и фамилию (lastName
).
Значение customData
будет доступно в переменной события event.params.
Существует 2 способа передать chatId
.
botId
, чтобы не замешались идентификаторы из разных соц сетей. Чтобы получить id бота, перейдите в настройки этого бота (в /chtm/app/sender) и скопируйте идентификатор из адресной строки.
Как подставить переменные можно узнать из этой инструкции.
Готово! Теперь, когда процесс выполнит блок "вызвать url", в воронке добавится событие по заказу. Это значит, что в следующем блоке действия можно отправить письмо по заказу.
В информации о задаче видно, что вызов сработал корректно:
В воронке видно, что действие выполнилось успешно
Если вы хотите построить автоматизацию с событиями от внешней системы с фиксированным телом запроса, понадобится настройка "Вычислить ID объектов из параметров запроса".
Выберите тип объекта и путь, по которому передан его идентификатор в параметрах входящего события. В качестве универсального агента можно использовать сессию - передавая в неё идентификатор объекта из интегрируемой системы (например id заявки) - таким образом можно построить логику обработки разных событий по одному и тому же объекту внешней системы.
Дополнительно, вы можете сразу задать значения переменных нового объекта. Для этого используйте настройку "Преобразовать объекты из параметров запроса":
Например, запрос из внешней системы может выглядеть так:
{
gcUserId: 111222,
ticket: {
id: 111444,
title: 'Билет #376'
}
}
Тогда, чтобы сразу сохранить в переменную пользователя данные билета, можно написать так:
user.ticketId = body.ticket.id
user.ticket = body.ticket.title
После чего в воронке можно использовать user.ticket
и user.ticketId
.
Посмотрите пример интеграции с AMOcrm. В данном случае в качестве сессии представлена заявка. Благодаря этому есть возможность использовать логику красных стрелок, задержек и реакций, если статус заявки не поменялся в ожидаемый.
Если вы хотите узнать, какой объект отправляет внешняя система в body, установите чек-бокс "Логировать все входящие данные"
После этого отправьте тестовый запрос из источника. Данные входящего запроса будут отображены в отладке.
В воронках можно "поймать" любые действия пользователя на странице. Для настройки вам понадобится понимание JavaScript.
Чтобы сформировать такое событие на странице:
В функции обработки события страницы, вызовите функцию rfnl("<ваш_код_события_из_настроек_блока_в_refunnels>")
.
Если ваша страница находится не на GetCourse, то сначала нужно установить счетчик refunnels на свою страницу. Код счетчика выглядит так
<!-- refunnels counter start-->
<script src="https://<домен вашей школы>/chtm/s/metric/clarity.js"></script>
<!-- refunnels counter end-->
Если на странице находился авторизованный пользователь, то событие будет вызвано для пользователя. Если нет - для его сессии.
P.s. Это актуально также для вызова события при заполнении формы на сторонней CMS. Вам нужно в настройках формы настроить "вызов javascript" и в параметрах указать
rfnl("<ваш_код_события_из_настроек_блока_в_refunnels>")