Диалоговое путешествие (Dialog Journey) Название плагина Диалоговое путешествие (Dialog Journey) Разработчик Официальные плагины от Metabot Авторы Гарашко Артем Юрьевич (artem@metabot.org) Дата создания 04 Января 2023 Последняя дата обновления 06 Января 2023 Описание Платформа Metabot — это платформа автоматизации коммуникаций. Плагин Dialog Journey (DJ) для платформы Metabot позволяет интегрировать в ваш чат-бот, разработанный на Metabot или на любой другой бот-платформе, поддерживающей вызовы и приемы API веб-хуков, возможность проектирования, отслеживания и визуализации клиентских путешествий, также называемых клиентскими путями (customer journeys). Используя плагин и платформу Metabot, вы можете создавать диалоговые стратегии и путешествия клиентов, которые помогут вашим клиентам получать пользу, а вашей компании достигать поставленных целей, собирать аналитику о ходе продвижения клиентов по диалогам в чат-боте, отслеживать и визуализировать карты их путей. Плагин позволит организовать развитие вашего чат-бота таким образом, чтобы все разрозненные диалоги объединялись в единую коммуникационную стратегию компании, представленную в виде путешествий (journeys), разбитых на фазы (phases) с целями (goals), предоставляемой пользой (values) и измеряемыми показателями (metrics). Более подробное описание концепции и устройства плагина, а также предлагаемой методологии маркетинговой стратегии смотрите ниже. Пример Пример работы чат-бота с интегрированным плагином можете посмотреть перейдя по ссылке. Настройка  Для интеграции плагина DJ с вашим чат-ботом вам необходимо сделать следующее: Создать кастомные таблицы и заполнить их, согласно схеме базы данных, опубликованной в разделе Справочники. Спроектировать путешествия для ваших клиентских сегментов и настроить справочники, описания назначения которых смотрите ниже. Классы персон. Подклассы персоны. Путешествия. Фазы путешествия. Польза. Цели. Показатели. Активности. Скачать готовый шаблон чат-бота, в который уже интегрирован плагин DJ, адаптировать его код и структуру под ваши задачи в своем чат-боте. Ссылка. Ознакомиться с примерами когда вызова методов DJ из вашего чат-бота в разделе JS команды. Ознакомиться с инструкций как пользоваться аналитикой и отчетами в разделе Аналитика и отчеты.    Если разработка чат-бота ведется на сторонней платформе, в дополнение к шагам, описанным выше, вам также необходимо настроить точки интеграции от вашего чат-бота, созданного на сторонней платформе, к чат-боту, созданному на Metabot, работающему как внешнее хранилище данных для следующих целей: Чтобы ваш чат-бот мог передавать в базу данных Мetabot все нужные вам события для аналитики, например, сообщать, что пользователь достиг цели или перешел к следующей фазе путешествия. Чтобы ваш чат-бот мог запрашивать в базе данных Metabot информацию о состоянии путешествия пользователя, например, проверять достиг ли пользователь цели, были ли предоставлена польза, узнавать фазу путешествия на которой находится пользователь и так далее. Инструкцию о том, как подключить Dialog Journeys к чат-боту (а может и не только к чат-боту), создаваемому на сторонней платформе, смотрите в разделе Интеграция со сторонними системами. Методология  Предисловие Представленное решение — это уникальный синтез нашего собственного практического опыта и изысканий с идеями ведущих мировых теоретиков из сферы маркетинга, управления бизнесом и инноваций.  Возможно модель подойдет к вашей бизнес-практике идеально «как есть». Мы постарались сделать модель простой и в то же время достаточно гибкой — принципы, лежащие в ее основе, универсальны и действенны. Возможно вы не согласитесь с представленной моделью работы с клиентами и решите сделать по-другому, либо захотите расширить или откорректировать модель. Вы вправе это сделать. Если вам потребуется разработка уникального плагина под ваше видение, обращайтесь в наш отдел разработки и мы сделаем решение «под ключ». Методология маркетинга, на которой строится работа данного плагина, стоит на нескольких китах. Во-первых, это решение для современного маркетинга для «экономики связей» или «экономики подключения» (Connection Economy). Подробнее об этой концепции смотрите здесь.  Во-вторых, это решение строится на маркетинге доверия. Подробнее об этой концепции смотрите соответствующие обучающие материалы и экспертов. Например, здесь. Справочники Классы персон Проектирование начинается с описания клиентских сегментов — мы их называем Классы персон. Подобно, RPG играм, опишите все классы, с которыми имеет дело ваш бизнес. Пример из сказочный: воин, лучник, волшебник; Пример из жизни: строитель, заказчик, партнер. Подклассы персон Создайте Подклассы персон, если вам нужно разбить клиентов на более узкие сегменты и строить с ними более персонализированные отношения. Пример для класса лучника: стрелок, снайпер, охотник; Пример для класса строителя: индивидуальный строитель, профессиональная бригада, крупный застройщик.  Путешествия Создайте все необходимые Путешествия, как общие для всех классов и подклассов, так и индивидуальные для каждого сегмента. Если вы впервые сталкивайтесь с разработкой чат-ботов, мы рекомендуем не усложнять и начать автоматизацию с одного наиболее популярного и критичного путешествия, например, с вовлечения и онбординга нового пользователя.  В любое случае, рекомендуем обдумать все путешествия заранее, хотя бы верхнеуровнево, которые "проживают" или будут "проживать" ваши клиенты, взаимодействия с вашей компанией. Примеры путешествий: Онбординг нового партнера; Путь к первой покупке; Путь к повторной покупке; Обучаем стрелять из лука. Плагин работает так, что запоминает один единственный раз, когда пользователь пустился в путешествие. Плагин на текущий момент не поддерживает повторные путешествия по одному и тому же путешествию. Если вам необходимо заново отправить пользователя в повторное путешествие, для этого создайте новое путешествие или очистите старые данные по путешествию в базе данных. Цели  Следующим шагом, который на самом деле надо делать одновременно с предыдущим, мы рекомендуем заполнить Цели для путешествий. Мы же с вами занимаемся бизнесом и не хотим создавать бесцельные путешествия, верно?  Пример целей для онбординга партнеров: Регистрация в партнерской программе; Сертификация партнера. Пример целей для обучения стрельбе из луков: Обучить лучника; Продать лук и стрелы; Продать билеты на соревнование по стрельбе. Плагин работает так, что позволяет записать достижения цели по каждому путешествию для каждого пользователя только один единственный раз. Если в чат-боте пользователь несколько раз пройдет по сценарию, то повторные достижения одной и той же цели будут проигнорированы. Фазы путешествия Разбейте каждое путешествие на Фазы. Мы сознательно используем слово «фазы», а не «этапы» или «шаги», потому что оно нам больше нравится — ведь переход от фазы к фазе т.е. так называемый «фазовый переход» подразумевает некую качественно новую форму, например, лед при нагревании превращается в воду, а при еще большем нагревании в пар. Мы же с вами хотим строить диалоги с нашей аудиторией так, чтобы каждый раз выходить на новый уровень взаимоотношений, верно? Пример фаз для онбординга нового партнера: Вовлечение; Знакомство; Сертификация; Первая транзакция. Пример фаз для учебы стрельбе из лука: Изучает основы по стрельбе и безопасности; Учится делать DIY лук и стрелы; Учится стрелять; Сдать экзамен по стрельбе; Записать на соревнование по стрельбе. Согласитесь, что каждая из фаз, приведенных в примерах выше, символизирует качественно новое состояние, дойдя до которого, наш пользователь, уже не сможет вернуться назад и забыть все то, что было до этого? Наша цель при проектировании и разработке чат-ботов и авто-воронок заключается в том, чтобы выстраивать диалоговые коммуникации таким образом, чтобы они помогали пользователю двигаться от фазы к фазе, получая пользу, и тем самым доходить до завершения путешествия и помогая нам достигать бизнес-цели. Как именно строить такие коммуникации мы разберем ниже. Плагин работает так, что запоминает один единственный раз, когда пользователь завершал одну фазу путешествия и начинал новую. Плагин запоминает дату и время фазовых переходов, чтобы по ним строить аналитику. Если пользователь пришел в сценарий в чат-боте, в котором в DJ сообщается о смене фазы, то плагин проигнорирует повторные команды.  Польза  Теперь самое интересное. Мы расписали наши путешествия, фазы и цели. Теперь давайте подумаем о том, как же мы будем влиять на наших пользователей, чтобы они достигали нужных нам целей?  Спланируйте Пользу, которую будете предоставлять вашей аудитории, на каждой фазе путешествия, чтобы выстраивать доверительные отношения и двигаться вместе с ней к целям. Мы предлагаем воспользоваться следующими принципами современной научной теории маркетинга, который на самом деле, если хорошо подумать, представляют из себя обычный здравый смысл из сферы человеческих отношений и житейскую мудрость, а именно: Эмпатия Давайте мы будем пытаться понять кто перед нами, а не бомбардировать людей не актуальной для них информацией; Давайте понимать на каком этапе принятий решения о покупке (buyer's journey) находится человек, чтобы давать именно то, что нужно сейчас; Давайте стараться учитывать чувства и эмоции людей, чтобы отвечать корректно контексту ситуации; Здорово, что чат-боты помогают все это реализовать, ведь чат-бот это диалог, в котором можно задавать вопросы и запоминать ответы, а благодаря технологии распознавания естественного языка (NLP) можно понять намерение пользователя по свободному вводу и даже распознать эмоции; Пример для строительной сферы: в самом начале коммуникации с целевой аудиторией, задайте 2-3 квалифицирующих вопроса, которые помогут определить к какому сегменту (классу и подклассу) относится человек. Также, вы можете узнать квалификацию строителя (профессионал или новичок), чтобы в последствии вести каждый сегмент по своему уникальному пути. Пример для сказочной истории: аналогично, cоздайте квалификационную анкету, в которой будет несколько вопросов, которые помогут вообще понять кто перед нами. Вы не не захотите "впаривать" стрельбу из лука волшебнику 100500 уровня, который обидится и превратит вас в лягушку? =) Персонализация Раз мы можем говорить с пользователем и задавать интересующие нам вопросы, так давайте использовать полученную информацию для построения персонализированных диалогов. А если интегрировать чат-бот с корпоративными информационными системами, например, с E-Commerce веб-сайтом, где хранится история покупок пользователя, то можно строить еще более полезные персонализированные диалоги и предложения. Пример: как минимум, можно иногда обращаться по имени. Конечно, это не заставит пользователя прийти в восторг и сделать покупку, на, как минимум, повлияет на общее восприятие вашего бренда и позволит заработать очки доверия. Ведь мы же строим долгосрочные отношения на доверии, а значит должны всегда заботиться о целостности и последовательности наших коммуникаций. Пример из строительной отрасли: узнав сегмент, опыт строителя и регион, вы можете сделать персональное предложение, например, предложить партнерам присылать заявки на строительный заказы из этого региона, предложить горячие скидки на продукцию любимого бренда, пройти обучение для новичков и так далее. Пример для сказочной истории: узнав, что перед нами маг, мы можем предложить ему магазин для магов от наших партнеров или просто выпить чашечку кофе. Такт и ритм Мы настоятельно рекомендуем пользоваться житейским здравым смыслом и бизнес этикой при программировании автоматических коммуникаций. Также как и в реальных отношениях в нашей жизни, давайте cоблюдать чувство такта и ритма в цифровых отношениях, которые автоматизируем. Людям не понравится, если мы пишем им, как назойливая муха, с поводом или без повода. Также, люди могут про нас начитать забывать и контакт потом восстановить будет сложнее, если мы совсем перестанем общаться. Если же мы будем присылать информацию, которая не релеванта, не принимая обратную связь и не корректируя коммуникацию, то люди могут отправить нас "в баню". И так далее.  Пример из строительной отрасли: когда мы узнаем темп обучения, который удобен коллеге-строителю для повышения своей квалификации, мы можем начать присылать ему обучающие материалы прямо в чат-бот так часто как будет удобно: раз в день, неделю, месяц. Пример из сказочной отрасли: узнав, что перед нами опытный следопыт, который отправляется в охотничьи вылазки раз в месяц, мы можем отправлять ему информацию о новинках прямо на кануне очередного похода, о котором можем узнать, спросив об этом. Доверие Доверие клиента или партнера — это самое главное конкурентное преимущество и один из самых главных активов. Никто не свяжет свою жизнь с человеком, в котором не уверен. То же самое происходит в бизнесе. Теряя доверие к бренду или компании, вы уходите к другим, верно? Ваши клиенты делают так же. Завоевание доверия это сложный и длительный процесс, требующим особого подхода. Большое доверие увеличивает продажи и доходы компании, а потеря доверия увеличивает расходы на рекламу и маркетинг. Доверие зарабатывается по крупицам, а потерять его можно в один момент.  Конечно, доверие к бренду или компании складывается из многих факторов, на которые мы не можем влиять чат-ботом, например, из качества продукции. Если продукция плохая, чат-бот вряд ли сильно поможет в выстраивании доверия, какие бы красиво он не говорил. Однако, если в компании порядок с продукций и сервисом, то создание захватывающего, полезного и удобного клиентского опыта (CX) в виде бесшовного диалога в чат-боте, интегрированного в бизнес-процессы и информационные системы предприятия, может стать тем самым ключом к конкурентному преимуществу, который изменит баланс весов в пользу вашей компании. Пример доверия: хорошо понимать своих клиентов, проектировать правильные путешествия, которые дают пользу, помнить о долгосрочности диалогов и отношений, выстроить полезный сервис в чат-боте, которым хочется пользоваться и рассказать другим.  Пример потери доверия: игнорировать запросы клиентов, не решать пожарные ситуации, долго строить отношения по стратегии, а потом начать рассылать спам и прочее. Щедрость Тоже не менее важный принцип, как и доверие. В эпоху перепроизводства и высокой конкурентности (когда в каждой категории на полке десятки и сотни продуктов), щедрость это то, что позволяет выстраивать доверительные отношения. Как и в жизни, так и в бизнесе, никто не захочет дружить с теми кто только «берет» и не готов «отдавать». Что означает щедрость в применении к чат-ботам: полезный контент, которым вы можете делиться; полезные вебинары; выставки; сервисы и так далее. Аналогично целям, предоставление пользы фиксируется один единственный раз и повторные выдачи той же самой пользы не фиксируются в базе данных, поэтому вы можете не опасаться за то, что пользователь несколько раз обратился за одним и тем же контентом — это не собьет статистику. Предоставление пользы будет отслежено только самый первый раз.  Показатели Спланируйте Показатели (или метрики), которые вам необходимо измерять. Пример из жизни:  Вы можете завести метрику, которая отображает % потребления контента, чтобы оценивать степень "созревания" пользователя; Индекс NPS (удовлетворенность компанией); Настроение, например, вы можете периодически опрашивать как у ваших пользователей дела ; Степень осведомленности о продукции компании (от 0 до 100). Сказочный пример: Количество купленных стрел; Количество сломанных луков. Показатели, в отличие от Целей и Пользы, можно измерять сколько угодно раз и в любое время. То есть, если с течением времени показатель меняется, у вас будет вся история изменений. В текущей версии плагина показатели закрепляются за путешествием и фазой во время которых они были собраны. В будущих релизах планируется сделать поддержку сбора общих показателей, не относящихся к конкретному путешествию или фазе.  Активности Активности — это события, которые происходят в ходе путешествия или действия, которые совершает пользователя, во время путешествия. Существует 7 основных событий, которые позволяют управлять ходом путешествия и отслеживать его хронологию: ID Код Название Пояснение 1 journeyStarted Путешествие начато Используется в самом начале путешествия, когда стало понятно, что пользователь "отправился в путешествие". 2 phaseStarted     Фаза начата Используется при запуске следующей фазы, а также автоматически в начале путешествия. 3 phaseCompleted     Фаза завершена  Используется при запуске следующей фазы, завершая предыдущую, и при завершении всего путешествия. 4 phaseInterrupted     Фаза прервана Используется при прерывании фазы, которое происходит либо при прерывании всего путешествия, либо когда по каким-то причинам в нам нужно будет прервать фазу. 5 phaseSkipped     Фаза пропущена  Используется по каким-то причинам когда вам необходимо пропустить целую фазу. 6 journeyCancelled     Путешествие отменено   Используется когда путешествие было отменено, например, пользователь передумал. 7 journeyCompleted     Путешествие завершено Путешествие успешно завершено, пользователь дошел до победного конца. В одном из будущих релизов планируется возможность добавлять пользовательские активности, чтобы вы могли отслеживать промежуточные шаги во время фазы, если вам это понадобится. Журналы Все что происходит в чат-боте сохраняется в несколько Журналов, а также сохраняется в Состоянии пользователей в путешествии. Это системные таблицы, в которых накапливаются исторические данные, которые вам не нужно трогать. На основе журналов и справочников, формируются аналитические отчеты и визуализации. Ни в коем случае не нарушайте целостность данных, если уже запустили трафик и идет сбор данных о путешествиях пользователей. Если у вас есть журналы с данными, а вы решите удалить или изменить данные в Справочниках, отдавайте себе отчет, что это может повлиять на исторические данные, ранее собранные чат-ботом, а значит и на отчеты.   Журнал путешествий  В этом журнале хранится история фаз и активностей, а также начала и завершения путешествий. Журнал пользы В этом журнале хранится история предоставления пользы пользователям. Журнал целей В этом журнале хранится история достижения целей. Журнал показателей  В этом журнале хранятся собранные метрики. Состояние пользователя в путешествии В этой таблице хранится состояние пользователя в конкретном путешествии.  Ни в коем случае не трогайте эти данные на продакшене, кроме случаев отладки, иначе нарушите ход путешествия для пользователей. JS команды Для отправления информации в плагин и фиксации данных в базе необходимо в нужном вам месте в чат-боте подключить плагин, инициализировать менеджер путешествий и выполнить нужную команды. Список команд и примеры кода представлены в таблице ниже. № Название метода Пример кода 1 Начать путешествие // Подключаем плагин snippet("Common.DialogJourney.Manager") // Создаем менеджер путешествия и передаем ему лид let jm = new JourneyManager(lead) // Начинаем новое let isNewJourneyStarted = jm.startNewJourney("myJourney") // Пишем результат в память memory.setAttr("isNewJourneyStarted", isNewJourneyStarted) При инициализации JourneyManager для лида будет создана персона, если она еще не была создана! В текущей версии плагин позволяет отслеживать пути персон и не возможно отслеживание путей лидов. Поэтому персона создается для каждого лида на самой ранней стадии пути, чтобы иметь возможность отслеживать путь как можно раньше - даже когда лид/персона еще не взаимодействовали с бизнесом. В качестве роли персоны будет использована роль по умолчанию, которую необходимо задать в настройках чат-бота. 2 Завершить путешествие // Подключаем плагин snippet("Common.DialogJourney.Manager") // Создаем менеджер путешествия и передаем ему лид let jm = new JourneyManager(lead) // Выбираем путешествие jm.selectJourney("myJourney") // Завершаем выбранно путешествие let isJourneyCompleted = jm.completeJourney() // Пишем результат в память memory.setAttr("isJourneyCompleted", isJourneyCompleted) 3 Следующая фаза // Подключаем плагин snippet("Common.DialogJourney.Manager") // Создаем менеджер путешествия и передаем ему лид let jm = new JourneyManager(lead) // Выбираем путешествие jm.selectJourney("myJourney") // Запоминаем название текущей фазы let oldPhaseName = jm.getCurrentPhase().name // Стартуем новыую фазу путешествия let isPhaseStarted = jm.startNextPhase("nextPhaseCode") // Запоминаем название новой фазы (если она установилась, конечно) let newPhaseName = jm.getCurrentPhase().name // Пишем результат в память memory.setAttr("isPhaseStarted", isPhaseStarted) memory.setAttr("oldPhaseName", oldPhaseName) memory.setAttr("newPhaseName", newPhaseName) 4 Предоставить пользу // Подключаем плагин snippet("Common.DialogJourney.Manager") // Создаем менеджер путешествия и передаем ему лид let jm = new JourneyManager(lead) // Выбираем путешествие jm.selectJourney("myJourney") // Сообщаем менеджеру путешествия, что мы предоставили пользу let isValueGiven = jm.giveValue("valueCode") // Загружаем информацию о метрике из справочника let valueInfo = jm.getValueInfo("valueCode") // Загружаем информацию о собранной метрике let value = jm.getValue("valueCode") // Выводим результат работы memory.setAttr("isValueGiven", isValueGiven) memory.setAttr("valueName", valueInfo.name) memory.setAttr("valueWeight", value.weight) 5 Достигнуть цель // Подключаем плагин snippet("Common.DialogJourney.Manager") // Создаем менеджер путешествия и передаем ему лид let jm = new JourneyManager(lead) // Выбираем путешествие jm.selectJourney("myJourney") // Сообщаем менеджеру путешествия, что мы достигли цели let isGoalAchieved = jm.achieveGoal("goalCode") // Загружаем информацию о цели let goal = jm.getGoalInfo(goalCode) // Выводим результат работы memory.setAttr("isGoalAchieved", isGoalAchieved) memory.setAttr("goalName", goal.name) 6 Записать показатель // Подключаем плагин snippet("Common.DialogJourney.Manager") // Создаем менеджер путешествия и передаем ему лид let jm = new JourneyManager(lead) // Выбираем путешествие jm.selectJourney("myJourney") // Считываем значение метрики let metricValue = lead.getAttr("metricValue") // Сохраняем метрику let isMetricSaved = jm.saveJourneyMetric("metricCode", metricValue) // Загружаем информацию о метрике из справочника let metricInfo = jm.getMetricInfo("metricCode") // Загружаем информацию о собранной метрике let metric = jm.getLatestJourneyMetric("metricCode") // Выводим результат работы memory.setAttr("isMetricSaved", isMetricSaved) memory.setAttr("metricName", metricInfo.name) memory.setAttr("metricValue", metric.value) Другие примеры кода с использованием плагина смотрите в шаблоне чат-бота, доступного для скачивания здесь. Интеграция со сторонними системами Вы можете использовать DJ плагин для сбора данных о путешествии пользователей не только в чат-боте, созданном на платформе Metabot. Вы можете вести разработку на других бот-платформах и использовать Metabot для сбора и визуализации аналитики. Также, вы можете отправлять в Metabot информацию о событиях из других систем, чтобы фиксировать прохождение пользователя по пути, когда пользователь совершает нужное целевое действие на сайте (например, размещает товар в корзину, но не оплачивает).  Для интеграции сторонних систем с вашим Dialog Journey в чат-боте на Metabot, необходимо настроить точки интеграции для всех необходимых событий, которые вам нужно регистрировать в Metabot. Информацию о точках интеграции смотрите в разделе Точки интеграции и конструктор API. В коде точки интеграции разработайте код согласно примерам выше.