Иногда возникает задача использовать utm-метки, с которыми пользователь пришел в бота в дальнейшей воронке. Например, чтобы отправить их во внешнюю систему, чтобы проверить на переходах или записать в доп поля пользователя.
Для решения всех этих задач нужно добиться одного - сохранить utm-метки в локальную переменную агента. После этого вы уже можете использовать их в разных местах воронки.
Как сделать это для прямого запуска бота мы разобрали в этой статье (в разделе "Запуск бота по прямой ссылке"). В этой части разберем более сложную схему, когда хотим сохранить utm-метки со страницы.
Если у вас настроена передача сессии в бота (раздел статьи "запуск бота" -> "Переход с лендинга с сохранением рекламных источников"), то достаточно сохранить данные в сессию и после запуска бота переложить их в пользователя.
Для этого:
Далее используем переменные сессии или чата по пути воронки. Следите за тем, чтобы нужный агент был в событии. Например, в событии "добавлен в группу" есть только пользователь. Нет чата и сессии, поэтому в таком событии вы не сможете их проверить. Если такое нужно, выберите событие, в котором есть пользователь одновременно с чатом и переложите переменные в свойства пользователя, по аналогии с тем, как это было сделано для сессии и чата.
Если у вас происходит запуск бота с привязкой к пользователю, сессия может отличаться. Поэтому в данном случае лучше записать переменную в свойства пользователя. Однако, при заходе на страницу, его еще нет. Поэтому сначала мы также сохраняем переменную в сессию, а затем ищем/создаем такое событие, чтобы в нем были пользователь и данная сессия одновременно. Например, кастомное "событие", которое можно записать через обработчик формы в GC.
Тогда схема будет выглядеть так:
Далее эти переменные можно использовать в воронке. За счет того, что пользователь будет связан с чатом, в событиях чата всегда будет присутствовать агент-пользователь (не анонимный).
Если вы хотите сохранить метки в поля пользователя GC, воспользуйтесь этой инструкцией.
Если вам нужно записать метки в заказ, при создании его через воронку, воспользуйтесь нодой "создать заказ" и опцией "добавить доп.поле заказа".