 Спасибо, здравствуйте еще раз и еще раз меня зовут Андрей. Я CTO в компании Karkablog. Наша компания занимается разработкой дополнений к популярному PageBuilder Elementor. В принципе там есть наш стенд, поэтому я больше особо на нас зацикливаться не буду. Если что всю информацию расскажем вам чуть-чуть подробнее после, а сейчас собственно сосредоточимся на презентации. Рассказать я вам хочу сегодня об онбординге. Кто поднимите пожалуйста руки, слышал это слово, сталкивается в повседневной работе. Я понял, спасибо, люди есть, значит в принципе понимают более-менее о чем сейчас пойдет речь. По сути эта презентация так логически совпала продолжение доклада предыдущего докладчика. Перед этим нам рассказали как что-либо продать. Сейчас мы поговорим с вами о том, что же делать дальше. Но начнем по порядку сначала, сначала поговорим о том, что же такое онбординг, само понятие онбординга. Это слово, этот термин пришел нам из управления персоналом, из менеджмента. И в классическом смысле, согласно Википедии, означает процесс интеграции сотрудника в новую организацию и ее культуру. Прямо дословно перевелся на английского языка, вроде старался. То есть вроде на первый взгляд тут IT нет, WordPress нет, где кодить, где что делать, где продукт, где темы, где плагины. Сейчас мы заменим буквально два слова в этом определении и в принципе оно уже станет более близко нам как людям, работающим с WordPress'ом. В этом определении мы заменим слово сотрудника на клиента, а слово организацию заменим на продукт. И получится у нас процент интеграции клиента в новый продукт и его культуру. Это уже более близко нам, то есть это более понятно. Мы что-то продаем клиенту на маркетплейсе, на собственном сайте, с помощью каких-то соотрешений, с помощью чего-то еще. Тем самым устанавливаем с клиентом какие-то взаимоотношения. И дальше успешность этих взаимоотношений с этим клиентом зависит от того, как быстро мы его сможем интерьировать свой продукт, как быстро он с ним разберется, насколько он им будет доволен, какой у него будет фидбек от этого продукта, впечатление первое. В общем, все это, это и есть onboarding. Как понятно из определения onboarding это процесс. Это процесс сложный многокомпанентный и он состоит из нескольких фаз. Итак, по порядку вот покупка это то, на чем мы остановились в предыдущей презентации. Человек что-то у вас приобрел, получил письмо, увидел какую-то delivery страницу с информацией о заказе, сколько он заплатил, что получил. Уже на этом этапе нужно его как-то включать свой продукт, объяснять ему, что делать дальше, где скачать то, что он купил, как дать какие-то инструкции, как это установить, как этим дальше пользоваться, какие должны быть следующие его пути, шаги. Следующий этап, который идет за покупкой, это установка. На этом этапе я сосредоточу сейчас чуть позже. Третий этап, это первое использование, тут предположим ситуацию, что вы продаете какой-то условный e-commerce-плагин. Человек скачал этот плагин, купил сначала у вас, скачал, установил, настроил, то есть валют, где магазин, где все что находится. Но суть этого плагина не просто установки, настройки и все, забыли после этого, что с ним дальше делать. В суть этого плагина вы продажите каких-либо продуктов, поэтому по сути первое использование такого плагина это будет создание первого продукта. Именно на этом этапе создания первого продукта ваш плагин, который вы продали человеку, должен помочь этому человеку, правильно работать с этим продуктом, куда ввести цену, где вообще начнём с того создавать этот продукт, куда картинки загрузить, куда описания, куда там что ещё, атрибуты. Например, с темами, это, например, человек тоже установил тему, настроил, загрузил демоконтент и пошёл редактировать первую страницу, либо редактировать там header, footer, менять логотип. Вот это будет его первое взаимодействие с вашим продуктом. И на этом этапе у него не должно возникнуть никакого недопонимания. Мисс Лидин, он должен сразу чётко поднять, что ему дальше делать, и в этом ему должен помочь ваш продукт. И последний этап, последний по порядку, но при этом самый длительный по своей сути, это регулярное использование. То есть уже человек, когда разобрался, с тем, что у нас купил, первый раз это всё там запустил, всё у него получилось, но дальше в процессе работы, особенно если у вас какой-то достаточно сложный продукт, у него могут возникать какие-то вопросы, недопонимания, проблемы. И в идеале, чтобы он не шёл куда-то искать там эти проблемы в интернете, гуглить по Facebook, YouTube и всё остальное, а чтобы ваш продукт сам подсказывал ему какие-то элементарные решения, или же хотя бы где-то эти решения ему идти и спрашивать, и искать. То есть, как видим, процесс, он бординга, это очень сложный процесс, многокомпонентный. Каждая фаза этого процесса, это какой-то уникальный сам по себе процесс, который требует своих инструментов, своего какого-то особенного подхода, поэтому остановиться и охватить весь бординг в одной презентации невозможно. Поэтому я остановлюсь на одном его компоненте, это установки. Просто у нас нашей компании более-менее уже долгий опыт с этим, и я думаю, есть чем поделиться. Итак, перейдём, ну, в заголовке написано он бординг, но уже это он бординг установки именно, то есть вот это и только он бординг на второй фазе. И зачем же нам этот бординг от пресс-продуктов? Потому что, казалось бы, что там, что сложного, ну, сначала установил. Нет, не всё так просто, разберём для примера рынок тем. Сейчас очень этот рынок перегружен, и каждый автор хочет как-то дифференцироваться на фоне конкурентов. Дифференцируются, они в основном обложкой, то есть обложка в случае с темой, это, ну, там, условная, по-моему, фич, но главная обложка темы, это её демо. И поэтому авторы, чтобы похватить как можно большую целевую аудиторию, делают как можно больше разных демо, нишевых продукт, там магазины, блоги, магазины по разным категориям. В принципе, этот подход логичный, он имеет право на жизнь, он правильный, потому что, как я уже сказал, он позволяет охватить большую аудиторию, но в этом же подходе кроется и проблема, потому что человек заинтересовался определенной демкой, например, вашей купил благодаря этой заинтересованности ваш продукт, но он получает не совсем то, что он купил, он получает архив с темой, скорее всего, он получает какие-то инструкции по установке, скорее всего, он, возможно, какие-то получает сопутствующие файлы. И дальше вот этот весь набор файлов, чтобы превратить в тот сайт, который он видел на демо и который он захотел, ему нужно произвести какие-то действия, то есть сначала установить WordPress, потом установить тему, потом установить нужные плагины, потом как-то импортировать контент, как-то добавить виджеты, если там используется, как-то там настройки кастомазера перенести, и получается, что даже для человека уже достаточно опытного WordPress, это может стать небольшим, небольшой проблемой и задачей, которые потребуют решения и длительного времени на ее решение. Кроме того, еще есть такая проблема, как вы разный уровень подготовки и опыта у клиента, потому что вы изначально не можете быть уверенным, кому именно вы продаете свою тему, вас может ее купить какой-то уже видавший вид и девелопер, может какой-то новичок, который вот он решил, сейчас я стану разработчиком, сейчас я буду собирать тему, сейчас я стану фрилансером. И получается, из-за вот этого не знания уровня изначального клиента вы не можете быть уверенными, насколько проблематично для него будет установить ваш продукт. И тут уместно будет вспомнить выражение, которое популярного маркетолога, не знаю, если честно кто его автор, и звучит оно, да и Бог правильно вспомнить. У вас есть только один шанс произнести первое впечатление на клиента. И в вашем случае вот это первое впечатление на клиента, это именно то, как ваша продукт, ваша тема в данном случае, потому что на примере тема это все разбираем, установится. Если у него возникнуть какие-то проблемы уже на этом этапе, то все вот первое впечатление, все оно испорчено, дальше восстановить его будет проблематично. И плюс еще один побочный эффект, еще одно следствие вот этих всех проблем, которые могут возникнуть, это нагрузка на вашу службу поддержкой, потому что человек, который не смог что-то установить, он скорее всего придет ваш саппорт, жаловаться на то, что вот у меня не получилось, помогите мне пожалуйста. И ваш саппорт будет вместо того, чтобы пришать какие-то серьезные проблемы, будет занят по сути вот такими тривиальными вещами, как помогать клиентам устанавливать то, что они купили. Что же нам делать? И какой ответ будет на все вот эти проблемы? Ну ответ там, собственно, будет создание вот такой системы onboarding, системы автоматической установки, которая должна как раз и помочь клиенту быстро установить ваш продукт, как следствие создать у него позитивное первое впечатление о вашем продукте, как следствие создать вам потенциально лояльного кастомера, который в будущем, возможно, придет что-то еще у вас купит, который, возможно, пойдет оставить у вас положительный отзыв, какой-нибудь социальный стиль либо еще. И что самое главное, который, возможно, в будущем закроет глаза на какие-то проблемы мелкие, которые могут в вашей теме или плаги не вылезть, потому что вот уже он такой заряженный, позитивный, типа вот, пацаны, у нас же так все хорошо пошло, поэтому ну да, у всех бывает. И плюс еще одно следствие вот этого всего, что мы уменьшили нагрузка на сапорт, то есть мы убрали с них эту тривиальную задачу помощи клиентам в установке, и они могут сосредоточиться на том, что будут помогать клиентам решать реальные проблемы, то есть вы будете платить вашему сапорту деньги за то, что должны платить, а не за фактически установку клиентам шаблона, ой, тем. Итак, теперь конкретизируем требования к этой системе, какой-то, ну пока это какая-то абстрактная система, как она должна работать, какие, ну, составим условное ТСЗ или Acceptance Criteria этой системы, что она должна получиться в итоге. У нас первое требование — это завершенность процесса. Что это означает? Это означает, что мы должны провести клиента от первого шага, когда вот он только совершил покупку, получил первые файлы до того сайта, который он хочет получить в итоге, тот, который он увидел на демо, потому что если вы оборвете вашенбординг по установке на каком-то из шагов, допустим, вы там помогли ему установить тему, помогли установить плагины, но с демоконтентом разбирайся сам. То есть вроде вы потратили время, вы потратили ресурсы, вы сделали какие-то инструменты, они работают, но клиент все равно остался недоволен, потому что вот ему пришлось долбаться с установкой демоконтента и по сути все те же проблемы, которые я говорил до этого, они остаются. Поэтому, как я сказал, это должен быть завершенный процесс от совершения покупки до получения сайта аналогичного тому, который клиент увидел на демо. Второе требование — это пошаговость. На этапе установки вам по-любому потребуются какие-то взаимодействия с клиентом. Как минимум, это взаимодействие в плане того, вот есть у вас несколько вот этих вариантов демоконтента, какой из них выбрать. То есть вот уже вам потребуется одно решение от клиента, для этого решение нужен какой-то интерфейс, помимо этого вам также нужно будет держать клиента в курсе происходящего, показывать ему, что все, да, сейчас все идет хорошо, сейчас мы делаем вот это, затем мы будем делать вот это, и всего нам для того, чтобы завершить основку, устало сделать это и это. Это создает у клиента ощущение, так, это я забежал чуть вперед, в принципе, вот эту всю информацию, которую я сказал, вы можете вывести в одном экране, но это очень много информации для одного экрана, для одного человека, она может перегрузить вашего клиента, он в итоге может где-то запутаться, где-то что-то сделать не так, и, по сути, вы опять же получите недовольного клиента, который вроде и установил тему, но при этом вы не создали вот этого позитивного первого впечатления, о котором я говорил в начале. Из-за этого требования по шаговости выплывают, вытекают в следующие требования, два требования, это однозначность трактовки шагов и простота понимания шагов, что это означает? То есть каждый ваш шаг на этапе установки должен полностью описывать сам себя, то есть клиент должен переходить на какие-то еще странные ресурсы, чтобы просто понять, что от него требуется сделать на этом шаге. Кроме того, не должно быть никаких двузначных трактовок в плане принятия решений, то есть должны быть какие-то четкие интерфейсы на этом действии, там кнопка, далее, вот тут мне надо выбрать то или то, так вы создаете у клиента чувство контроля над происходящим, ну и опять же помогаете ему как-то почувствовать себе уверение с вашим продуктом, опять же ведете его к тому, что он получит позитивное первое впечатление. Следующий пункт это единобразие интерфейса, тут сначала сделаю небольшое отступление. Я думаю, тех из вас, кто работает на рынке тем, знают, что в принципе сейчас уже есть какие-то инструменты для такой автоматизации процесса установки. Это тот же TGM plugin activation для установки плагинов, one-click demo import для установки демоконтента, widget exporter importer для понятно виджетов, даже в принципе можно использовать стандартный WordPress importer, но и в принципе на основании всех этих инструментов можно создать рабочий процесс, который да, вот автоматически проведет клиента более менее от этапа установки и темы, правда, тут тему придется все-таки установить руками до более менее готового настроенного сайта с уже установленным демоконтентом. Но проблема на этом этапе в том, что каждый из вот этих инструментов, которые я говорил, one-click demo import, TGM plugin activation, там WordPress стандартный импортер имеет свой интерфейс и эти интерфейсы, да, они WordPress, правильные интерфейсы, но они не связаны между собой и кроме того они никак визуально не привязаны к вашему продукту, то есть на этом пути клиенту будет легко запутаться, где-то что-то понять не так, уйти в сторону, в итоге установка до конца не дошла, опять же мы получили вот это плохое первое впечатление, о котором я уже несколько раз говорил. Чтобы такого не было, все шаги должны быть объединены единым интерфейсом, который создает у клиента ощущение целостности происходящего и в идеале, кроме единого интерфейса, этот интерфейс еще должен быть как-то визуально привязан к вашему бренду или к вашему продукту, который клиент устанавливает в данный момент. Это такая мелочь, которая напомнит клиенту, кто именно заботится о нем сейчас, именно в этот конкретный момент времени. И последнее требование, это отказоустойчивость, ну это в принципе означает то, что ваш инструмент должен работать на сервере любой мощности, на любой версии PHP, которая поддерживается WordPress, на любом браузере, который поддерживает админ коварт-пресса, и на любых объемах данных, которые вы хотите установить, то есть на любом количестве плагинов и на любом объеме демоконтента. В принципе, исходя из всех этих требований, если по ресерчу рынок можно найти существующие решения, которые им в той или иной мере некоторые больше, некоторые меньше удовлетворяют, например, для тем, ой, не туда нажал, например, для тем, это библиотека Merlin WP, которая, кстати, работает как раз на основе TGM Plugin Activation библиотеки и на основе, по-моему, one-click DMA import. Очень классный пример у плагинов, это в укомер setup wizard, кто не видел, советую попробовать, даже если вам не нужен в укомерс, просто пройти их, ну это не совсем установка, потому что, по сути, установка в укомерс это установил, активировал. Это больше как настройка магазина, там он все как раз по тем требованиям, который я списал, очень классно смотрится и очень, очень крутой продукт, которого можно научиться многому. И последнее это сайдграунд, onboarding сайдграунда, у них на данный момент он реализован в виде плагина, который там позволяет установить тему, какие-то базовые плагины, но самая классная фишка это onboarding, в том, что он состыкован с их админкой хостинга, то есть вы там можете еще, ну как это популярно сейчас у многих хостинга, установить WordPress, предустановить даже в укомерс на него, потом после установки вас автоматически redirected в админку WordPress, где вас подхватывает этот плагин, дальше помогает доустановить нужную тему и там доустановить еще какие-то плагины. Что самое классное, вот это все реально объединено одним интерфейсом и я проходил, пробовал этот процесс, реально создается ощущение, что ты вот нигде ни на что там не прорываешься, ну если там все идет хорошо, потому что там у них иногда бывают какие-то подвисания с установкой самого WordPress. Ну а теперь уже перейдем непосредственно к нашему опыту, с которым мы столкнулись нашей компании в создании такого инструмента onboarding, в качестве, ну именно реализовать этот инструмент мы решили в виде плагина, чуть позже расскажу почему именно плагина и какие задачи, вот исходя из тех требований, которые я описал выше, какие задачи должен был решать этот инструмент. Первое, это пошагово провести клиента со страницы покупки до установленной темы с тем демоконтентом, который он выбрал и второе это сделать этот процесс плавным, цельным, убрать все лишнее взаимодействие клиента с админкой, то есть получается первый пункт решает основную задачу установку непосредственно темы, а второй пункт как раз должен отвечать за вот это создание у клиента позитивного первого впечатления, ну и там еще сюда не выносил его на презентацию, потому что это не касается клиента, для нас был важный момент сделать этот механизм совместимым с любой темой, с любым вариантом демоконтентом, с любым набором плагинов. И так, так, так назад, почему вернем, вернусь теперь к тому, почему мы выбрали именно вариант реализации в виде плагина, например как не тот же Merlin WP в виде библиотеки, которая может встраиваться в любую тему. Во-первых, потому что этот инструмент установки, инструмент onboarding, это не функциональность темы, это то, что нужно человеку только пока он устанавливает, устанавливает, настраивает тему, установил демоконтент, все, дальше ему оно не нужно и в том случае, когда он реализовывал на плагином, человек может просто дектировать этот плагин и забыть о нем до следующей установки, то есть в принципе удобно и такой небольшой performance optimization. И вторая цель, такая амбициозная, но к сожалению не удавшаяся, точнее не цель, а причина, почему мы выбрали это для реализации на концерт плагина, мы хотели залить этот плагин на репозиторию wordpress.org и таким образом, по сути, мы могли бы позиционировать себя как единственный, там чуть ли не единственный провайдер тем, темы которого можно установить, например, самобильного телефона, потому что при условии, что у человека есть уже готовая wordpress установка, он через телефон заходит на эту wordpress установку, скачивает сорга наш плагин, то есть это доступно все в админке, скачал, выполнил там дальнейшее действие, все, дальше плагин все делает автоматически, там человек уже не участвует, только нажимает, далее, далее, далее и делает там вот эти свои решения нужны, но как оказалось и в принципе это логично и правильно, что по соображениям безопасности wordpress.org не допускает на заливку на свой репозиторий плагинов, которые устанавливают, что-либо с чего-то, кроме wordpress.org, в принципе это логично, это правильно, но к сожалению из-за этого у нас не удалось реализовать этот наш план, и так как наш плагин работал, человек получал длевере письмо, ну попутно он также получал сценку страницу, на которой у него была айдишка его темы, был активационный ключ темы и была ссылка на скачку вот этого нашего плагина installationvisor, так назывался, и небольшая инструкция, как установить просто плагин на wordpress, дальше после установки этого плагина человек redirectился на стартовую страницу плагина, вот она собственно на скриншоте, вводил id темы, вводил activation key, нажимал start, дальше плагин автоматически скачивал и устанавливал все, что нужно, там тему плагины, скачивал и устанавливал demo content и в конце показывал человеку, что вот все хорошо, и там пара опций буквально посмотреть на установленный сайт и перейти к редактированию опции. В принципе, продукт этот получился у нас рабочий инструмент, какие мы выводы сделали, запустив его в жизнь и, попользовавшись им немного, ну вывод первый, да, как я уже сказал, что инструмент работает, но как и в любом первой версии любого продукта в нем были проблемы. Во-первых, это самая такая важная и самая глобальная проблема, которая вызывала больше всего боли у клиента, это проблемы с отказоустойчивостью на больших объемах данных и которые связаны в первую очередь с большим объемом demo content и тем, что этот demo content не мог нормально установиться на слабых серверах. Вторая проблема оказалась немного неожиданной, так как клиенты хотели пробовать разные внезапно демки у себя на сайте, при этом ставили их одну поверх другой, сайт захламлялся, возникали какие-то в итоге лишний контент, какие-то иногда даже конфликты, в итоге здравствуй, саппорт, давайте решать эту проблему, почему-то вот изначально мы в голове представляли, что клиент, вот он выбрал демку, установил и будет делать из нее сайт, но на практике оказалось, что это не так. И кроме того, так как по сути дальнейшего onboarding у нас особо не было, то у нас еще возникла проблема с тем, что какие-то обучающие действия с клиентом нужно делать уже на этапе установки, чтобы обезопасить себя от определенных проблем в будущем. Сейчас быстро пройдемся о том, как мы эти проблемы решили, начну с вот этой проблемы с разными вариантами демоконтента на одном сайте, потому что решение для нее в принципе оно на поверхности, оно простое, оно очень спорное, то есть мы просто дали клиентам возможность удалять контент сайта перед тем, как ставить новый, это работает, но это чревато большими проблемами, если вдруг кто-то что-то не увидел, не понял, там случайно не туда нажал и удалил живой контент сайта, вместо того, чтобы просто почистить тестовую установку перед тем, как пробовать новую демку, поэтому там мы все это облепили уведомлениями, предупреждениями, что нет, не делайте этого, если вы не осознаете, что делаете, и дополнительно на последнем еще шаге спрашивали у человека пароль, что пожалуйста, вот мы вас предупреждаем, что сейчас вы удалите контент с вашего сайта, если вы это осознаете, то видите, пожалуйста, ваш пароль, то есть нужно уже прикрыть полностью себя и все равно, по-моему, один клиент был, который возмущался, что я удалил у себя сайта контент, то есть вроде оно как бы решение, но вообще я, конечно, не рекомендовал бы такое, наверное, делать, возможно, мы в будущем даже этого откажемся. Итак, теперь к более таким серьезным проблемам и более обдуманным решениям. Итак, первое, это отказоустойчивость, как я уже говорил, это самая важная оказалась проблема, самая такая будоражащая клиентов. И первое, с чего мы начали это, в принципе, начали искать какие параметры сервера, больше всего влияют на вот эту проблему, из-за чего происходят отвалы, из-за чего там что-то может пойти не так. Кроме того, нашли вот эти проблемные параметры, определили, с какими параметрами работает хорошо, как правило, установка, и просто добавили проверку на эти параметры в наш визерт. Если какой-то из параметра у человека не соответствовал требованиям, мы его об этом предупреждали, предупреждали, что дальше установка может пойти как-то не так, если вы продолжите. Человек шел или исправлял этот параметр на достаточный, если была возможность или если нет, то продолжал, конечно, к сожалению, установку на свой страх и риск. И вот с такими людьми надо что-то было делать дальше, и мы пошли копать дальше. Следующая, в принципе, такая глобальная проблема была с тем, что вот как раз вот этот демоконтент, о котором я говорил, он не мог установиться полностью, не мог установиться полностью, потому что много контента устанавливалось за один запрос, этот запрос не вписывался в параметры сервера, где-то там выходил за рамки maximum execution time, скрипт обрывался, клиент получал ошибку, импорт обрывался. Какое решение? Решение разбить один большой запрос на много маленьких. Тут на скриншоте не видно, ну вот, собственно, видно все эти маленькие запросы, каждый из этих запросов устанавливает какой-то маленький кусочек демоконтента, переходят на следующий запрос, следующий запрос устанавливает еще один маленький кусочек демоконтента, и в принципе, самый долгий запрос по выполнению из вот этого всего набора занял 1,64 секунды, то есть это реальный скринс, реальные установки, то есть запрос длительности 1,64 секунды сможет выполнить практически на любом сервере. И последнее это мы вынесли самое затратное операция по ресурсам на отдельный шаг, как казалось, что самая затратная операция по ресурсам в импорте демоконтента это нарезка миниатюр картинок. Причем, вот мы там немного поковырялись во всем этом процессе, как казалось, что сам импорт картинок занимает не так много, там да, получается он дольше, чем импорт по столу, потому что нужно еще физически скачать картинку через удаленное щите без опрос, нужно добавить эту картинку на сайт и нужно, вот потом, собственно, уже нарезать под нее вот эти все миниатюры. Казалось, на процесс нарезки миниатюр занимал намного больше, чем непосредственно процесс импорта картинки, добавление его базу и добавление самого файла на сайт. Поэтому мы пошли просто по пути известного плагина regenerated nails и вынесли этот процесс на отдельный шаг. После этого, в случае, когда установка ДМКонтента отвалилась именно по причине параметра каких-то, именно по причине того, что не вытянул сервер, они свелись к нулю. Так, теперь перейдем к обучению пользователей процесса установки, буду чуть-чуть ускоряться, во время поджимания, думал, я быстрее буду говорить. Первое, с чем мы столкнулись, это как бы это не совсем даже частен бординг, как такового, но это была больше наша боль, с тем, что клиенты не знают, что такое чел темы, они установили тему, которую мы им продали, там где-то да, это наш косяк, что мы им не объяснили сразу, что лучше поставить чел тему. Они добавили туда какие-то стили, добавили какой-то код, переписали какие-то темплейты, нашли какой-то баг, который как оказывается мы давно исправили, пришли, но мы им не можем уже полностью заменить всю тему, обновить, потому что у них она переписана, нам нужно искать именно, что там исправить. Решение было, ну вот у нас есть механизм этот бординг, который взаимодействует с человеком на этапе установки, давайте предложим ему еще на вот этом этапе, сразу установить чел тему, объясним зачем это, почему это классно, чем это полезно и на практике это сработало, то есть сейчас гораздо меньше стало подобного рода проблем именно по причине того, что клиенты более осознанно используют чел темы. Следующее, это дальше такой получился обучающий момент, но это была не какая-то наша идея, а это было больше вызвано необходимостью, необходимостью состояло в том, что процесс регенерации картинок этих тумнелла, о котором я говорил, он занимает достаточно много времени, особенно если картинок много и весь интерфейс этого шага сводился к заголовку и к прогресс-бару, вот ниже пока это спойлер не смотрите. Получается сводился к вот такому банальному интерфейсу, который клиент и вот ему надо было сидеть и смотреть на это, там условных 2-3 минуты, чтобы клиент там не занудился, не дай бог куда-то не ушел, ни что-то не выключил, не перешел на другую страницу, мы решили взять идею у загрузочных гранов компьютерных игр, вот как например Fallout тут на скриншоте, то есть у них там тоже это достаточно долгий процесс и они чтобы его как-то разбавить, кроме какой-то графики подсовывают туда еще какие-то полезные советы по игровому режиму, то есть мы в принципе пошли по тому же пути, мы стали подсовывать какие-то пользователю полезные советы, потому как работать с нашим продуктом, какие-то мелкие советы по проблемам, почему-то еще. Если честно, я не знаю насколько это практически приносит людям пользу, но как минимум у них вот такая штучка появилась, из которой они могут чему-то научиться, плюс эта штучка еще тянет сами слайды не из плагина прямо, а через удаленный JSON файлик, поэтому мы в любой момент можем туда закидывать новые слайды какие-то, если у нас какое-то обновление вышло, интересно или что-то еще и обучать клиента там еще чему-то новому. Ну и напоследок мы сделали более такой насыщенный финальный экран, на котором постарались удалить информационный голод клиента, если вдруг у него он есть, он хочет нам что-то почитать, не знаю где, как начать работать с нашим продуктом, мы туда добавили ссылки на видео-туториал и на документацию, на наши комьюнити, в фейсбуке, то есть теперь человек вот закончил установку, пошел почитал, пошел дальше работать, все довольны, все счастливы, все удобно, все работает, люди учатся. И последнее, честно, все заканчиваю, там буквально 5 слайдов осталось. Не, ну я быстро их расскажу. Такой теперь, под конец, самый технический момент, как мы организовывали код нашим плагинам и в принципе за все вот это время, пока мы работали с плагинами, там были разные варианты, мы сделали один плагин, потом разбили на несколько, каждый из которых отвечал за свой кусок, один ставил только тему чел-тему, другой плагин и третий демоконтент, каждый из этих плагинов устанавливал следующий, чтобы создать непрерывность процесса, потом мы опять это все объединили в один, ну кто его знает, тут все время металлись как правильно, ну вот какие плюсы объективно, так если посмотреть, у всего этого, если разделить код на несколько плагинов, какие будут плюсы, плюсы в том, что проще релизить, потому что у вас есть маленький плагин, меньше зависимости, вы туда как будто добавили фичу, быстро релизнули, все, оттестили, отлично, там не ждете, пока кто-то добавит еще какую-то фичу, там все это вместе отестируется, проверится все зависимости, плюс проще фиксить баги, ну тут суть та же самая, когда у вас есть маленький изолированный плагин, то вы внесли в него какой-то быстрый бахфикс, выпустили релиз с этим бахфиксом, вам не надо заботиться о том, чтобы проверять, чтобы этим релизом, не дай бог, не поломали там еще какую-то зависимость, релизнули установку темы, а поломали зависимость в импорте демоконтента, и плюс еще один классный такой момент, у этого было, что можно было комбинировать, создавать разные системы онбординга на базе вот этих там трехусловных плагинов, например, если у вас есть чисто блоговая тема, у которой нет зависимости от таких плагинов, но есть несколько разных красивых вариантов блога, то вы могли просто взять плагин, который импортнёт тему, сделает чел-тему, накатит демоконтент, вуаля, работает, если вам не нужна какая-то специфичный продукт, которому не нужен демоконтент, пожалуйста, взяли, убрали третий плагин из этого, набора оставили только установку темы, установку плагинов, по сути, единственный минус, который у всего этого был, как я уже говорил, что нам нужно один на EV, плюс многие из этих плагинов использовали одни и те же какие-то компоненты, и из-за того, что плагин в WordPress, это само по себе самодостаточная, самодостаточная сущность, и должен работать независимо от других в идеале, то весь вот этот код, который нужен для EV, для всего этих повторяющихся элементов, нужно было дублировать во всех плагинах и, соответственно, поддерживать во всех плагинах. Если теперь взглянуть на один плагин, то там плюсы и минусы будут зеркально фактически отображены. То есть, главный плюс, это то, что у нас единая база кода, единую EV, все это проще поддерживать в актуальном состоянии, но при этом немного сложнее релизить новые фичи и нет такой гибкости адаптации к разным продуктам, потому что у нас вот жестко один плагин, мы не сможем как-то особо скомбинировать. На практике оказалось, что все-таки вот подход одного плагина, он более живучий и вот эта единая база кода имеет, как в нашем случае, большее значение, чем вот эта гибкость и релизная гибкость и гибкость адаптации к разным продуктам. Плюс релизная гибкость это тоже достаточно относительная вещь в данном случае, потому что все равно разработка всех плагинов в наше время идет на каких-то гид подобных системах, все разрабатывается в отдельных ветках, ветки мержутся перед релизом, поэтому в принципе все равно это все можно достаточно хорошо изолировать. И в качестве вывода, все последняя два слайда, это немного расскажу о том, куда мы дальше хотим развить этот продукт, это я называю сферический бординг вакууме. Вот, собственно, единственная проблема, не решенная с одним плагином, который у нас оставалось, это вот эта гибкость комбинации каких-то нужных функциональных компонентов, нужных шагов под разные продукты. Тут поработали, подумали и поняли, что нет смысла делать какой-то один супер плагин, который сможет установить все, настроить все, там любые шаги в себе вместить, гораздо практичнее сделать какой-то небольшой условный плагин обертку, какой-то boilerplate, который просто сможет вместить себе вот эту пошаговую логику, ну сам роутинг перехода шага на шаг, плюс будет содержать себе вот этот единый UI, который будет объединять все это как визуально в одну систему, а сами шаги делать отдельными компонентами, которые изолированы, которые каждый содержит свою логику, может содержать, возможно, уникальные элементы, которые нужны только этому компоненту, а вот весь общий UI и роутинг, как я уже сказал, будет содержаться в этом плагине упаковки, какой плюс главный, какие плюсы главные всего этого, это в том, что такая модель в перспективе сможет адаптироваться под любой продукт, будь то тема, будь то плагин, там будь что еще угодно, под любое количество шагов надо нам добавить, что-то убрать, подописали компонент, закинули, он просто сам наш плагин обертка перешел потом в нужный момент на этот шаг, шаг сам знает, что на себе нужно сделать, он сам себе описывает, плюс такая логика может использоваться не только на этапе установки, а в принципе в любом месте, где вам пошагова нужно выполнить какие-то операции, ну и последнее это в принципе может использоваться не как отдельный плагин, а как библиотека внутри какого-то другого плагина, как в случае с тем же в укомерсом, ну которого вот визуальный такой есть пошаговый билдер, он бординг менеджер по настройке самого собственного укомерса, ну все, как я обещал, постарался почти успел, спасибо за внимание, какие есть вопросы. А вы не пробовали делать бекапы перед тем как вытирать все данные с сайта? Хорошая идея, не успели подумать о таком, а, извините еще дополнение, мы как раз вспомнил, мы думали об этом, но там вопрос получается был тоже в скорости срабатывания этого, потому что за бекапить, потом все это аккуратненько подтереть, потом дальше повести установку, это тоже такой достаточно ресурсоемкий процесс, ну и поэтому решили как бы все равно человек уже если пошел на такое, то видимо ему нечего терять, там бекап тут ему не поможет. Подскажите пожалуйста, какие методы у вас принимаются если, допустим, я клиент и я устанавливаю ваш плагин, прохожу два шага в вашей воронке, потом по какой-то причине я выпадаю с нее, испугался, удаляю плагин, диактивирую и заново устанавливаю его, если какие-то возможности продолжить установку, потому что уже файлы и картинки и все остальное было уже до этого, но я диактивирую плагин именно, переустанавливаю, сохраняйте ли в базе данных какие-то последний удачный шаг установки. Шах не сохраняется сам, но там это все реализовано в вид, то есть у вас есть одна большая кнопка продолжить, которая привлекает ваше внимание и маленькая незаметная кнопка скипнуть для людей, которые уверены в том, что они делают. То есть у меня есть возможность. И вы можете просто поскипать эти шаги до того, с которого вы знаете, что вам нужно продолжить. Вы установили тему, установили чайл-тему, установили плагин и все это скипайте, дошли до демоконтента и вперед-дальше с демоконтентом. И еще маленький вопрос, как вы анализируете процент отказа на каком-то шаге? Как-то проводится? Это вот туда, вот сферически анбординг. У нас просто понимаете, тут есть, ну это небольшой и больше наш недочет, конечно, что мы иногда спешим сделать рабочий инструмент и не всегда вот предусматриваем такие вещи, как аналитика, и потом только уже понимаем, что да, надо было еще ее добавить. Спасибо большое. Потому что я понимаю ваш вопрос и иногда очень не хватает, чтобы нам самим улучшить свой UX, но надо начать собирать. А, ну и плюс еще кстати, это тоже момент, что мы не можем сейчас со всеми вот этими законами, всем остальным, мы не можем его сами себе просто начать собирать. Это нам нужно, опять же, спросить у пользователя. Это, ну опять же, дополнительный шаг, какой-то дополнительный интерфейс, там что-то еще, а если не спросим, а потом где-то всплывет вот эти GDPR compilants, там на 20 миллионов или сколько там штрафы, короче, стремно. Хотя, такая спета, это ваш продукт, только для ваших там, то он пропонуется для всех других воробников там? В принципе, он может адаптироваться под любую тему. Там предусмотрены специальные, ну единственное, что именно с этапа установки темы, он конечно работает только с нашими темами, но с этапа установки плагинов и демоконтента, он может работать с любой темой. Там единственное, что саму тему нужно добавить конфиг для нашего вот этого плагина, откуда брать, куда коннектится, где проверять лицензии, где качать плагины, в случае необходимости, где качать демоконтент, откуда брать вот эти варианты демоконтента, то есть, Тему он не сможет установить, потому что ему нужно знать, откуда взять тему, то есть этот первый этап не получится как бы отцепить от нашего плагина. А вот уже, если вам нужен только механизм установки плагинов с установленной темой, то да, можно адаптировать. Пытанием послайда, там, где были купа, аяк запеки. Допустим, вы стали очень популягнен и у вас много темка чая, вы не думаете, что это будет деду ас-атака, когда будет все одночасно вот так вот демоконтент загрузить? А, тут я не успел объяснить. Это получается, аяк запросы не к нам, на какой-то сервер. К нам идет один только запрос, когда клиент выбрал, какой вариант демоконтент он хочет установить. У нас его забрал с помощью удаленного запроса. Дальше все время, пока этот демоконтент устанавливается, он хранится у человека на сайте. И вот эти запросы, это запросы к самой, ну, кадмина, якспхп, на сайте человека, у которого происходит установка. Окей, еще для момента по этому слайду, я бачу, что кнопка continue disabled, но активна кнопка back, навещена активно, и чтобы, да, если я ее... Если вы вдруг вспомнили, что я что-то там забыл, откатились назад. Например, это я хотел удалить все, что же я начал ставить. Вы откатились назад, выбрали пункт удалить все, перешли, и у вас уже будет другой интерфейс с этим водом пароля. Единственное, что в случае, если вы нажали удалить все, ввели пароль, оно все удалило, и потом вы вернулись назад, в надежде, что у вас вернется контент, то нет, так не произойдет. Нет, я имею в виду, вот, если вот так, 32% пришло, я нажимаю back, и заново требуется заново импортовать сэмпл дата. Ну, к сожалению, да, получается, так как вы нажали back, то он заново пойдет по всему пути. Это не виш, что он там активный. Ну, я же говорю, вдруг вы все-таки решили, что нет, я хочу удалить контент, а потом уже... Нужливо, тут и мая будет не back, а stop. Возможно, я... Такая самая ситуация на слайде с regenerate thumbnails, там тоже back есть, непонятно. Туда получается, что половина thumbnails regenerated, а половина – не. Вполне, да, возможно, там, ну, я не спорю, что у нас тут есть какие-то недочеты по UX, но стараемся, если что, как раз добавим вот этот вот пункт в будущее, как раз продумать эту более хорошую логику с back-ами, next-ами. Спасибо. Привет, спасибо за такой доклад. Очень классно, что вы уделяете этому внимания. У меня вопрос по интеграциям с другими платформами. Вот если у меня тема, например, содержит зависимость от каких-то компонент, ну, возьмем, например, Google компонента, там, например, Google Maps, и вот я хочу установить свою тему, ну, допустим, у вас такая тема есть, да, вот вы ставите wizard, как этот wizard должен обращаться к таким платформам, как Google DevTools или Google Dev Console, в которой нужно регистрировать что-то, там, получать API ключ, как вы из этого wizard переходите туда, объясняете ли вы там процесс установки или что вы, как вы это хаемите? Ну, у нас такой пример был, по сути, только с картами, и в те времена, когда еще карты были бесплатны, там мы просто, да, хорошие времена, мы оставляли там свой ключ, и потом уже человек, ну, при необходимости там, ну, оно как бы нам тогда ничего не стоило, и человек, ну, установил, у него карта рабочая благодаря нашему ключу, сейчас, конечно, получается, что ключ, там, мы убираем, человек, когда доходит до условной карты, в админке видит, что карта нет, в редакторе виджета у него, в редакторе у него горит, что нужно активировать ключ карты, но это больше не вопрос уже к инструменту onboarding, это, ну, в нашем, на конкретном случае, это уже обрабатывает, ну, тот инструмент, который выводит карту. Спасибо. Дякуемо за питание, дякуемо за поведачу.