Личный опыт
Andrew Shmig
885

Telly: бесплатный конструктор скриптов продаж от А до Я

Итак, это статья о том, как мы сделали интернет-магазин сценариев и скриптов продаж с бесплатным конструктором, а так же голая правда в скриншотах и цифрах.

В закладки

Статью разбиваю на Х частей:

  • В шаге от потери бизнеса
  • Продукт в продукте
  • Выносим продукт из продукта
  • SPA и SEO
  • Технологический стек: от фреймворков до железа
  • Промежуточные цели

В шаге от потери бизнеса

Года 2 назад, а судя по посту в ВК - 1 год с копейками:

... закрылся проект Sale Script Gift. Бесплатный конструктор скриптов продаж в течение месяца или двух свернул свои паруса и умер, оставив за собой образ и инструкцию по развёртыванию VM.

Я бы не акцентировал на этом моменте внимание, если бы не тот факт, что на момент закрытия сервиса у нас в личном кабинете было от 60 до 80 скриптов продаж различной сложности и различного объёма. Экспорта в Sale Script Gift предусмотрено не было - голый JSON и понимание того, что данные терять нельзя, иначе будет грустно всем.

Даже не грустно, а совсем плохо, потому что оценив стоимость сервисов мы вдруг поняли, что не можем вытянуть такие регулярные платежи, а если и можем, то это будет неоправданно дорого. С другой стороны, полная потеря данных повлечёт за собой возвраты денег клиентам за сорванные сроки и проекты, что будет для нас равносильно закрытию и судам, испорченной репутации и негативным отзывам.

Выхода на тот момент не было другого, как оперативно поднимать что-то своё и одновременно конвертировать существующий формат хранения сценариев в другой. Да, был всё-таки вариант поднять ту же VM, которую парни оставили в паблике, но на тот момент у нас уже была инфраструктура на PHP / MySQL и начинать разворачивать что-то на Python / Java желания не было от слова совсем.

Героическими усилиями 1 человека за 1 день и 1 ночь был поднят самый ужасный по удобству, но спасительный редактор скриптов продаж (видео-инструкция для сотрудников):

​Deep Sales Platform: Конструктор скриптов продаж (версия 1)
Андрей Шмиг​

За несколько дней команда перенесла в ручном режиме скрипты на новый формат и мы на некоторое время вздохнули с облегчением - платформа наша, расходы - нулевые (поддержку и доработки опускаем), ограничений - нет, риски лишиться данных - нулевые. Мы в безопасности.

Продукт в продукте

На тот момент у нас была собственная платформа для ведения аутсорсинга продаж через холодные звонки - Deep Sales Platform. Она и сейчас есть, но сильно отличается от первой версии и от самого Скорозвона (будете смеяться, но на тот момент и на него у нас денег не было - только своими силами что-то вытаскивали из инструментов).

В ней есть такие вещи как:

  • Автоматизированные финансовые начисления за звонки операторам и за достижения целей по воронке продаж;
  • Возможность строить неограниченное количество воронок продаж;
  • Загружать большие объёмы баз контактов и обзванивать их в полуавтоматическом режиме;
  • Разрабатывать скрипты продаж;
  • Управлять командой сотрудников;
  • Слушать аудио-записи в режиме реального времени;
  • и прочее и прочее и прочее.

Пару скриншотов для любопытных:

Deep Sales Platform: Детализация по звонкам​ Андрей Шмиг​
​Deep Sales Platform: Делатлизация по финансам
Андрей Шмиг​

Первый продукт работает до сих пор и мы его активно используем, но вот развивать перестали из-за стека... В какой-то момент PHP (Symfony) + MySQL стал болью для поддержки. В планах стоит задача перенести на другой стек и возобновить доработки, потому что видим потребность в таком решение от малого бизнеса, который к нам обращается или небольших колл-центров, которые хотят запуститься.

В этой платформе у нас и начал зарождаться второй продукт - конструктор скриптов продаж.

Каждую недели коллеги приходили с жалобами и пожеланиями по редактору, который мы выкатили за 1 день и 1 ночь - неудобная навигация, мелкий шрифт, разрабатывать неудобно, переносить неудобно, копировать нельзя, случайное движение и слетает зум, чтобы ориентироваться - нужно помнить структуру. Одним словом мы каждую неделю копили силы на новый рывок.

Выносим продукт из продукта

Рывка сразу не последовало - не успели восстановиться, поэтому начали дорабатывать конструктор внутри платформы и смотреть, как же на это всё реагируют клиенты, руководители команд продаж и сами операторы. До июня-июля 2019 года мы всё пилили и пилили, как платформу Deep Sales Platform, так и конструктор скриптов продаж.

Когда сил и мотивации стало больше я решил изучить конкурентов, чтобы оценить наши возможности и адекватность - появилась серия видео-роликов на моём YouTube канале, где я сравниваю и пытаюсь разобраться со всеми конструкторами, которые нашел.

После самой серии видео-роликов появляется и сравнительная табличка с самыми примечательными конкурентами.

Мы двигались в правильном направлении и уже прошли часть граблей, которые просматривались у некоторых конкурентов.

Конструктор было проще выносить из DSP, как отдельного проекта, по той простой причине, что весь frontend в Deep Sales Platform и Telly построен на Vue + Vuetify на компонентной основе, а это значило, что мы себе сократили время на публикацию готового решения до минимума.

Во всём этом нам чего-то сильно нехватало... Выпускать только конструктор было слишком просто и не привносило никакой добавочной ценности для пользователей.

Начали штурмовать и вспоминать все "боли", которые за 3-4 года случались с нами и... нашли такую (как в итоге оказалось, одна боль повлекла за собой другую боль!) - вынести магазин-скриптов на публичную сторону и дать основную роль, а конструктору скриптов продаж дать второстепенную роль, как вспомогательному инструменту.

Сработало ли это? Пока не знаем - тестируем.

Пора посмотреть на сам редактор. Регистрация в один клик.

Сразу хочу предупредить тех, кто будет читать эту статью через месяца 2-3 - мы планируем обновить интерфейс личного кабинета, но настолько сильно, чтобы вы его не узнали, он не изменится.

По-умолчанию у вас будет пустой экран, а у меня пока там один скрипт продаж:

Telly: Бесплатный конструктор скриптов продаж​ Андрей Шмиг​

Каждый скрипт продаж можно:

  • Расшарить (например, вот так);
  • Отредактировать (мета-информацию);
  • Дублировать;
  • Удалить.

Публичных ссылок можно делать сколько угодно:

Telly: Бесплатный конструктор скриптов продаж
Андре​й Шмиг

Если ссылку потом удалить, то и доступ к сценарию будет невозможен.

Так выглядит сценарий в режиме чтения:

Telly: Бесплатный конструктор скриптов продаж​ Андрей Шмиг​

С левой стороны - реплики менеджера и основная структура диалога, по центру - основной блок с вариантами ответа клиента, с правой стороны - вопросы и возражения.

Вот так выглядит скрипт продаж в режиме редактирования:

Telly: Бесплатный конструктор скриптов продаж​ Андрей Шмиг​

Так как весь конструктор - SPA, то забудьте про обновления страниц - всё настолько плавно и гладко работает, что похоже на нативное приложение.

Видео-инструкция:

Telly: Бесплатный конструктор скриптов продаж

Вся доска в Trello в задачах и детализациях, поэтому если вы поняли, что инструмент вам нравится и вы хотите его использовать, но чувствуете, что наличие чего-то сделало бы ваш процесс работы лучше / эффективнее / результативнее в нём, то просто напишите мне по контактам в конце поста и мы обсудим детали.

SPA и SEO

Боль. Боль. Боль.

Не всё так страшно, но некоторые моменты мы уловили только спустя 7 дней после первых индексаций страниц Яндексом и Google.

Выводить такой продукт с вливанием тысяч рублей в рекламу мы не хотели, потому что сам продукт больше носит и носил имиджевый характер и добавляет нам "пункты" при продажах собственных услуг. Если денег вливать не собирались - значит надо было думать над каким-то решением, которое было бы очевидным, реализуемым, эффективным и незатратным, как по времени, так и по финансам.

Заголовок не был бы заголовком, если бы не содержал ответа - SEO и поисковые системы со своей механикой индексирования.

Но давайте вернёмся к SPA и первой проблеме с которой я столкнулся - индексирование страниц, содержимое которых генерируется JS после загрузки.

Яндекс... кошмар (с 2015 года, поправьте, если ошибусь, Яндекс предлагает дублировать контент с передачей специального параметра и не поддерживает индексацию JS-контента). Google... не проиндексировал (несмотря на то, что индексацию JS-контента поддерживает), хотя Google Search Console показала, что страница отдаётся полностью с нужным содержимым.

Вот, как выглядит страница публичного скрипта продаж в магазине и она состоит из:

  • Заголовка;
  • Описания;
  • Предпросмотра скрипта;
  • Тегов.

Ничего из этого поисковики не подхватывали, а значит в поиск не добавляли, а значит идея глубинной индексации по тегам была на грани провала.

Первым шагом стало генерирование заголовка (title, meta) и описания (description, meta) на стороне сервера с помощью PHP (дальше вы сильно будете смеяться, когда узнаете на каком стеке был и есть сам конструктор).

Тестируем.

Ура! Подхватывает!

Telly: Бесплатный конструктор скриптов продаж.​ Андрей Шмиг​

Но радость в одной части реализации была омрачена печалью в другой части реализации.

Перед запуском у меня была гипотеза, что Яндекс и Google следующие URL будут воспринимать по-разному и считать уникальными:

  • https://telly.pw/store?q=банк
  • https://telly.pw/store?q=медицина
  • https://telly.pw/store?q=ИТ

Но после добавления в индексы через несколько дней, Яндекс и Google начали помечать страницы дубликатами и исключать из поиска.

Telly: Конструктор скриптов продаж.​ Андрей Шмиг​

Тут я был некоторое время в ступоре, но потом быстро осознал, что мне надо перевести URL в такой вид:

  • https://telly.pw/store/search:банк
  • https://telly.pw/store/search:ИТ
  • https://telly.pw/store/search:медицина

Сказано - сделано. Изменения сработали.

 Telly: Бесплатный конструктор скриптов продаж.​ Андрей Шмиг

На этом мои преключения не закончились, но остальные детали реализации связаны с технологическим стеком. О нём поговорим в следующем блоке.

Технологический стек: от фреймворков до железа

Наша платформа Deep Sales Platform изначально разрабатывалась на PHP + MySQL. 3 года назад делалась на коленке, как решение, которое впервые спасло бизнес от гибели. В качестве спасительного круга - Symfony.

Развитие платформы сильно повлияло на дальнейший мой выбор инструментов и архитектуру решения.

Если на начальном этапе развития проекта Deep Sales Platform был на Symfony + Twig, то затем стал на Symfony (REST API) + Twig + Vue.js. После нескольких итераций Twig выкинул совсем и остался на стеке Symfony + Vue.js. Следующей итерацией frontend стал полностью SPA + Symfony (REST API) на backend.

Во-первых поддерживать такие решения проще, а во вторых разрабатывать такие решения быстрее. Обкатав единожды такую механику работы небольшая команда, следуя ей, может сильно ускориться в выпуске продуктов запараллелив frontend и backend. У SPA есть свои нюансы с которыми мы столкнулись при разработке, но не было такого, что бы не решилось.

Когда на frontend у тебя JavaScript, а на backend PHP + MySQL, то бывает сложно поддерживать две "модели мышления" и различные подходы к архитектуре приложений, поэтому желание свести всё к чему-то одному логичное.

Я рисковал, сильно рисковал, но решил переносить конструктор на стек Node.js + Vue.js + Vuetify + MongoDB, потому что к тому моменту мы сильно увязли (в хорошем смысле этого слова) в JS и тянуть хвостом Deep Sales Platform на PHP становилось тяжело.

В процессе разработки конструктора на связке PHP + MySQL стали проявляться проблемы MySQL и задачи, которые требовалось решать в конструкторе - они не совсем подходили друг другу.

И если начинать что-то с нуля, так начинать на все 100%... Если раньше был Apache + PHP FPM, то тут я решил - nginx. И я скажу, что ни единой минуты не пожалел о своём выборе, когда дело заходило до конфигурации проксирования запросов на ноду, кеширования и прочего.

Так как изначально мы Deep Sales Platform разворачивали на Selectel, то и Telly было решено там же развернуть. И там и там у нас крутится CentOS 7.0.

По железу сейчас такое:

  • vCPU 1 ядро;
  • RAM 2 Гб;
  • SSD 15 Гб;

И по цене - 1 490 руб / мес.

Детализация для любопытных:

Telly: Бесплатный конструктор скриптов продаж
Андре​й Шмиг

Технологии мы "утрясли" и на ближайшую перспективу их менять не собираемся. Deep Sales Platform, как я уже говорил, тоже будем переводить на новый стек.

Промежуточные цели

Теперь, когда продукт в публичном доступе мне бы хотелось в который раз (для себя, а теперь и публично) заявить, что сам редактор монетизировать мы не планируем - никаких ограничений, никаких запретов, никаких блокировок или любых других условий, которые будут мешать бизнесу использовать наш инструмент и развиваться.

Мы были в ситуации, когда от инструмента зависело наше существование, а теперь, когда всё позади и один бизнес может поддерживать другой, мы хотим помочь тем, кому этот инструмент может пригодиться.

Развивать его планируем активно, поэтому любые пожелания можно направлять по следующим контактам:

  • shmig@ojok.ru
  • shmig@telly.pw
  • https://vk.com/ashmig

Так же у этой статьи есть ещё несколько целей:

  • Получить обратную связь и пожелания по продукту;
  • Найти партнёров (скриптологов и колл-центры) для подключения, как к Deep Sales Platform с предоставлением заказов, так и к Telly для продажи скриптов в интернет-магазине;
  • Поддержать тех, кто просто делает.

Благодарю за внимание!

Хорошего вам утра / дня / вечера / ночи!

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Andrew Shmig", "author_type": "self", "tags": [], "comments": 9, "likes": 4, "favorites": 88, "is_advertisement": false, "subsite_label": "life", "id": 102159, "is_wide": false, "is_ugc": true, "date": "Mon, 20 Jan 2020 22:27:57 +0300", "is_special": false }
0
{ "id": 102159, "author_id": 118559, "diff_limit": 1000, "urls": {"diff":"\/comments\/102159\/get","add":"\/comments\/102159\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/102159"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199123, "last_count_and_date": null }
9 комментариев
Популярные
По порядку
Написать комментарий...
2

Хочешь загубить холодный звонок?  Говори по скрипту. 

Ответить
1

Популярное мнение, но далеко не всегда это так.
Без скриптов никак, когда речь идет о новичках, например.
Также есть множество кейсов, где идет лидогенерация для дальнейшей продажи опытными менеджерами.
Опытный менеджер быстро выгорит, если постоянно будет звонить по холоду. Пусть лучше работает уже с теплыми лидами.
Но это если база большая. Если ваш потенциальный рынок всего 1000 компаний, то конечно нужна индивидуальная проработка каждого. Единый скрипт не подойдет, требуется сначала провести аудит, изучить клиента

Ответить
0

"Опытный менеджер быстро выгорит, если постоянно будет звонить по холоду."

Нет.  
" Если ваш потенциальный рынок всего 1000 компаний"
А сейчас с учетом рынка и состояния экономики, это практически так и есть для любой B2B продажи,  хорошо если есть несколько сотен потенциальных клиентов на каждого продавца, есть еще и внутренняя конкуренция, когда продавцы одной компании рвут одних и тех же клиентов.

Ответить
1

Конструктор скриптов не монетизируете, его поддерживает другой бизнес. А какой?

Ответить
0

Аутсорсинг продаж и ИТ-поддержка.

Ответить
1

shmig / ashmig / ojok / telly - крутая идея для брэндинга.

Ответить
0

Уважаемый автор. А Вы сами как воспринимаете входящий звонок от девочки-робота, говорящий ну по самому крутому скрипту и с самой доброжелательной интонацией (что вообще редкость)? Я в свое время, когда открыл свой аутсорсинговый центр, собирал коллекцию КАК НЕ НАДО ЗВОНИТЬ и коллекцию скриптов, которые заказчики купили у крутых разработчиков за 40-80к. Но коллекция уж слишком быстро пополнялась и мы просто разово улыбались на входящие с лебезящим: "Здравствуйте, наша компания .... Мы на рынке миллион лет. Хотим предложить Вам...."

Ответить
0

Поделитесь, пожалуйста, такой коллекцией. Будет интересно изучить. Спасибо!

Ответить
0

Обожаю скрипты! Продолжайте в том же духе, верное дело делаете. Такие звонки отлично поднимают настроение в офисе. Реакция звонящего когда отвечаешь не по скрипту просто бесценна. Жаль это не видео-звонки, очень хочется в этот момент видеть лицо собеседника)))

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }