Артём Колисниченко: Сегодня в рубрике «Рассказ от первого лица» основатель студии «Контентим» Владимир Калякин. Он пользуется системой уже 6 лет и, по его словам, любит ПланФикс за то, что на его базе можно реализовать почти любые «хотелки» и автоматизацию. В этой заметке Владимир расскажет, как собирать UTM-данные клиента внутри его карточки, если основная масса заявок приходит через бота в Telegram. Передаю слово Владимиру.
Владимир Калякин: Всем привет! Мы в студии «Контентим» реализовываем некое подобие сквозной аналитики внутри нашей любимой CRM ПланФикс, на данном этапе собирая все UTM-данные по клиентам внутри карточки клиента.
С обращениями, приходящими через заполнение формы на сайте, вопрос решился достаточно просто: сайт на WordPress, плагин «Easy UTM tracking with contact form 7» позволяет передавать в письме все метки, которые мы с помощью функционала парсинга писем раскладываем по полям в карточке клиента.
В последнее время 90% обращений приходит через бота в Telegram. На данный момент это самый удобный канал коммуникации – как для нас, так и для клиента. Проблема только в том, что мы теряем все метки при переходе из сайта в мессенджер, и соответственно, в CRM тоже.
Делимся своим решением проблемы
В Telegram есть технология «внешнего связывания», или deep linking, описанная тут. Её мы и будем использовать для переноса меток UTM в CRM.
Для начала мы реализовали скрипт для подмены ссылок. На сайте он подставляет всем ссылкам на бота (с определенным классом) конструкцию, сформированную из значений UTM, разделенных разрешенными знаками «_». Сами значения при этом мы берем из PHP-сессии. Получается, когда пользователь проходит на сайт по ссылке с utm-метками, данные прописываются в сессию.
Затем скрипт в коде дописывает ссылкам на телеграм-бота deep-link команду:
&start=_{utmsource}__{utmmedium}___{utmcompaign}
Получается что то вроде:
https://t.me/contenteambot/&start=_fb__cpc___test
Пользователь кликает по этой ссылке, переходит в мессенджер и стартует бота. В созданной в ПланФиксе задаче образуется описание вида:
/start _fb__cpc___test
Дальше остается лишь распарсить это описание. Можно конечно подождать, пока команда ПланФикса реализует обещанный функционал 😉 , а можно воспользоваться сторонним сервисом, типа Zappier.
Мы создали сценарий:
При появлении задачи из Telegram он отправляет письмо в сервис Zapier в таком виде:
Шаблон письма содержит описание задачи и идентификатор клиента, по которому будем возвращать данные обратно в ПланФикс.
Теперь остается настроить сервис Zappier на два шага (доступно в бесплатном тарифе):
- Шаг первый – парсинг письма – выделение ID клиента и полей аналитики.
Тут надо заметить, что парсер у них весьма капризный в настройке, поэтому мы и ввели в UTM разделение данных разным количеством “_”. Как говориться, чтобы наверняка.
- Шаг второй – Update Contact.
Обновляем данные контакта с указанным идентификатором.
В итоге данные из UTM-меток через Telegram попадают ровно в поля клиента в ПланФиксе.
И напоследок отмечу: скрипт, который динамически меняет ссылки в коде сайта, написан сторонним программистом с трудозатратами примерно 2 часа. Если возникнут сложности – обращайтесь, поделимся!
Артём Колисниченко: Спасибо Владимиру за интересное решение. А мне остаётся только напомнить, что свои рассказы вы можете присылать нам не только в текстовом, но и в видео формате. Мы такие материалы публикуем не только в блоге, но и на нашем YouTube-канале в рубрике «А у вас». Таким образом, большее количество людей сможет перенять бесценный опыт и узнать о ваших успехах.
Класс, Владимир. В последнее время все больше смотрим на возможности integromat как альтернативы zapier.
Данный пример тоже решается в два шага:
– ПланФикс шлет POST запрос на web-hook интегормата;
– Интегромат получает POST запрос, по API заполняет поле в карточке контакта.
В рамках бесплатного тарифа получится за месяц обработать 500 таких запросов.
Один из плюсов не нужно использовать почту, для получения данных на входе (хотя возможно что и zapier позволяет настраивать webhooks).
Добрый день, Илья! Видел в чате вроде что-то про этот сервис. Не успели потестить, но надо, да) Пока запир уже как-то привычен..
Кстати говоря, позволит ли integromat разобрать массив _xxx__yyy___zzz ? Ведь в Планфиксе мы можем получить только его, deeplink команды ограничены на использование символов типа =, чтобы явно разметить данные для вебхука.
Я думаю что позволит. Но я пока не понял как выглядит этот массив.
В webhook данные можно передавать в формате JSON, он автоматом парсится на выходе из webhook все уже разложено по полям.
Далее уже можно делать разбор конкретного поля.
Вариантов разложить данную строку на три элемента массива или на переменные несколько.
Вариант 1. Самый “простой”. Выделение подстроки текста начиная с метки и отсечением лишних подчеркиваний. Данные формулы сразу используем для подстановки в API запрос в XML-код.
Например:
{{replace(substring(1.Text; indexOf(1.Text; “_”); indexOf(1.Text; “__”)); “_”; emptystring)}} – выдаст fb
{{replace(substring(1.Text; indexOf(1.Text; “__”); indexOf(1.Text; “___”)); “__”; emptystring)}} – выдаст cpc
{{replace(substring(1.Text; indexOf(1.Text; “___”); length(1.Text)); “___”; emptystring)}} – выдаст test
Вариант 2. Сначала разбираем по переменным (аналогичными “формулами”), а потом используем переменные для подстановки в подстановки в API запрос в XML-код.
Минус этой схемы лишний шаг на разбор по переменным. Вполне возможно что разбор каждой переменной интегромат посчитает как отдельное выполнение, и на один запрос уйдет 4 вызова модулей.
Клево!
А почему вы встроенным в ПФ парсером не разбираете эту ссылку?
Инфоблок 1 от метки start_ до метки __
Инфоблок 2 от метки __ до метки ___
и так далее?
Я так понимаю что канал добавления телеграмм, а не почта. А для телеграмм “правил почты” – нет.
Но теоретически можно же сделать вычисляемое поле задачи, которое из описания или из комментария вытащит метку и значение вычисляемого поля подставит в контакт.
Именно так, телеграм-обращения не обрабатываются парсером пока.
Точно! Это же не почта)