Наш ассоциированный член www.Bikinika.com.ua

Як ми написали чат для додатка банку «Відкриття»

  1. Навіщо банку чат
  2. Предпредпілот
  3. Відмінність від звичайного месенджера
  4. Готове рішення VS кастомними розробка
  5. Реалізація та розгортання чату
  6. Як це працює
  7. Підсумки і плани

У нове додаток банку «Відкриття» ми вбудували чат для підтримки клієнтів, і це стало, мабуть, однією з найбільших і складних історій в рамках масштабного оновлення. Зробити чат, який відповідає вимогам банку по функціональності і захисту інформації, виявилося зовсім не тривіальним завданням.

додаток банку «Відкриття»

Навіщо банку чат

На щастя, багато питань з банком можна вирішити віддалено, наприклад, зателефонувавши в кол-центр або написавши листа. Але апогей віддаленості - це чат з оператором служби підтримки: в онлайн-листуванні клієнт швидко, конфіденційно (розмова ніхто не підслухає) і навіть іноді весело (оператори в чаті жартують!) Управляє своїми фінансами. За останні пару років мобільні месенджери стали звичним способом комунікації, і для сучасного банківського сервісу чат - абсолютний must have.

Олексій Круглов, старший віце-президент і директор з digital-продуктам банку «Відкриття»
"Чат для будь-якого сучасного сервісу - це трансформація підходу до комунікацій з клієнтом. Люди переїхали в месенджери, вони там живуть. І кожен раз, змушуючи їх вилазити з цього світу, щоб зателефонувати в колл-центр або написати email, ми напружуємо їх. Вкладаючись в розробку чату зараз, ми сподіваємося отримати довгостроковий ефект - не стільки зниження витрат на інші канали комунікації з клієнтами, скільки зниження відтоку клієнтів з банку в принципі, а також приплив нових клієнтів, яким імпонує сервіс, який прагне бути максимально зручним ".

І, звичайно, чат - ще й цінний канал збору зворотного зв'язку.

І, звичайно, чат - ще й цінний канал збору зворотного зв'язку

Анастасія Графська, менеджер проектів, «Відкриття Digital»
"В основному в чат пишуть по двох приводів: або із запитом на обслуговування (фінансові та інформаційні питання), або з якоюсь претензією. У нашому випадку чат зіграв дуже важливу роль в зборі фідбека з недавнього редизайну додатки. Люди пишуть про те, що їм подобається або не подобається, запитують, коли додасться та чи інша функція. Чат - абсолютно новий функціонал додатка. Він змусив нас встати з ніг на голову і навчитися ходити на руках. Крім впровадження чату в сам додаток, потрібно багато часу і сил, щоб розгорнути його в інфраструктурі банку. Багато моментів доводилося довго узгоджувати зі службою безпеки, колеги з претензійного департаменту теж проробили колосальну роботу: потрібно було найняти і навчити нових співробітників і навчити їх спілкуватися з клієнтами живою мовою ".

Предпредпілот

Думка про те, що в мобільному додатку «Відкриття» потрібен чат, зародилася в банку близько року тому. Тоді, ще задовго до старту розробки і появи дизайн-концепції, команда "Відкриття Digital" вирішила провести експеримент, такий собі "предпредпілот". До фахівців, яким в майбутньому мали спілкуватися з клієнтами через чат, було необхідно донести особливості цього каналу комунікації, в якому оператори - живі люди, які відповідають живою мовою, а не витягами з статутів, правил і регламентів.

Кирило Курашов, адміністратор проектів, «Відкриття Digital»
"Я купив симкарту, зареєстрував аккаунт в Telegram і створив там груповий чат для digital-команди і служби підтримки. Коли видавався вільний момент, ми всією командою "Відкриття Digital" відправляли в цей загальний чатик запити. Оператори відповідали, і потім ми поштою або по телефону (служба підтримки «Відкриття» базується в Саратові) разом з ними розбирали відповіді. Спочатку були суперподробние листи-розбори, потім просто невеликі коментарі. Тоді ми поставили стандарт спілкування з клієнтами в чаті ".

Потім були особисті зустрічі, тренінги та з'явився спеціальний гайд, в якому зібрані рекомендації для операторів служби підтримки - як поводитися і вітатися, які слова використовувати, а які ні, чи доречні емодзі - в залежності від віку клієнта, а також інших факторів.

Відмінність від звичайного месенджера

З точки зору користувача чат в мобільному додатку банку не відрізняється від звичайного месенджера. У ньому точно так же можна відправляти текст, посилання, фотографії та місце розташування. У разі, якщо з якоїсь причини чат недоступний, у користувача залишається можливість зв'язатися з банком через один зі звичних каналів: поштою або телефоном.

Чат доступний тільки в авторизованій зоні програми, і це дозволяє фахівцям підтримки відразу ідентифікувати клієнта і отримати всю необхідну для роботи з його зверненням інформацію (а також вибирати стиль спілкування). Користувач при цьому позбавлений необхідності проходити додаткову процедуру ідентифікації.

Для операторів чат виглядає як звична їм HelpDesk-система: з тікетами, інструментами їх маршрутизації, аналізом і статистикою звернень.

Для операторів чат виглядає як звична їм HelpDesk-система: з тікетами, інструментами їх маршрутизації, аналізом і статистикою звернень

В даний момент фахівці підтримки виступають в двох ролях:

  • Оператори - ті, хто безпосередньо веде переписку з користувачами, вирішує їх проблеми і закриває тікети.
  • Адміністратори - по суті контролери роботи операторів, які стежать за швидкістю і якістю роботи.

Кожне нове звернення клієнта створює в системі тікет, який автоматично призначається одному з вільних операторів. Оператор буде повідомлено браузері і відповідає користувачеві. Коли питання вирішене, оператор прощається з користувачем і закриває тікет.

Юлія Белоногова, керівник управління претензійної роботи, банк «Відкриття»
"В цілому за місяць в банк надходить 17-18 тисяч звернень по всіх каналах: телефон, електронна пошта, соціальні мережі, чат. Через соцмережі приходить близько 200 звернень. Чат у нас запрацював 6 липня, і за першу добу через нього поставили понад півтори тисячі питань, це багато. Ми запустилися в другій половині дня і не очікували такого відгуку. В першу ніч всі оператори були зайняті тим, що усередині підтримували клієнтів. Зараз у нас шість операторів, і вони щодня обробляють близько 150 квитків. Тікет - це не одноразовий запит, а діалог, в якому може міститися від одного до 20-30 питань клієнта. Закритим тікет вважається, коли клієнт говорить, що у нього більше немає питань ".

Для відповіді на перше звернення через чат оператору відводиться одна хвилина. За цей час клієнтові треба дати зрозуміти, що він не один, і банк вже почав вникати в суть питання і піднімати інформацію. Час вирішення питання варіюється в залежності від його суті. Якщо це стандартний інформаційний запит - наприклад, як нараховуються відсотки по карті або коли треба внести мінімальний платіж, швидкість відповіді, як правило, не перевищує трьох хвилин. Якщо мова йде про фінансове відшкодування, то це може зайняти від 20 хвилин до доби.

Адміністратор може виконувати як роль керуючого з можливістю перегляду і вивантаження всіх діалогів і статистики, так і роль оператора, відповідаючи на переадресування йому тікети. Також адміністратор може створювати нових операторів і припиняти доступ існуючих.

Також адміністратор може створювати нових операторів і припиняти доступ існуючих

Статистика, зібрана на сервері, включає:

  • кількість оброблених і відкритих тікетів
  • час першої відповіді
  • час обробки звернень

Все це дає можливість оцінювати ефективність роботи як окремого оператора, так і команди в цілому. Графік розподілу звернень по годинах і днях тижня дозволяє адміністраторам краще планувати роботу відділу.

Готове рішення VS кастомними розробка

Ринок рішень для миттєвого обміну повідомленнями зараз вирує і, здавалося б, знайти відповідний компонент і вбудувати його в свій продукт не важко. Але коли на основі чату потрібно вибудувати канал підтримки клієнтів, доводиться враховувати багато нюансів, в тому числі:

З метою безпеки рішення повинно бути розгорнуто у внутрішній IT-інфраструктурі банку. Чат повинен мати можливість інтеграції з системами банку для отримання інформації про клієнтів, перегляду історії їх операцій, включення тікетів в загальний контур для вимірювання ефективності роботи всієї служби підтримки. Метрики і звітність повинні відповідати корпоративним стандартам HelpDesk-підрозділу.

ми аналізували доступні на ринку opensource-продукти, і з різних причин нам не підійшов жоден з них. Або вони не проходили за критеріями безпеки, або не влаштовував мову реалізації, або потрібно зробити велику кількість доробок до коду, так як існуючі рішення більшою мірою орієнтовані на функціональність звичайних месенджерів - листування клієнта з клієнтом. Треба зауважити, що цей аналіз був проведений рівно рік тому, і за цей час функціональність деяких рішень могла зазнати змін. У підсумку вирішили писати чат самостійно.

Ми не стали зав'язуватися на існуючі протоколи для передачі повідомлень, такі як XMPP або WAMP, через їхню громіздкість, надмірності і високої складності. Більшість сторонніх рішень перевантажено зайвими подробицями на всі випадки життя, нам довелося б це все підтримувати і ще пояснювати службі безпеки, навіщо передаються зайві параметри. Якість бібліотек під всі потрібні нам мови також було під питанням. Тому ми реалізували чат через WebSocket на власній JSON-специфікації.

Реалізація та розгортання чату

Чат складається з трьох блоків:

  • Безпосередньо сервер, де працює вся логіка і маршрутизируются повідомлення
  • Клієнтська частина - SDK, вбудований в мобільні додатки (iOS і Android) і на сайт
  • Робочі місця операторів підтримки і адміністраторів - веб-панелі для ведення переписки з клієнтами та перегляду і вивантаження статистики повідомлень

Безпосередньо сервер, де працює вся логіка і маршрутизируются повідомлення   Клієнтська частина - SDK, вбудований в мобільні додатки (iOS і Android) і на сайт   Робочі місця операторів підтримки і адміністраторів - веб-панелі для ведення переписки з клієнтами та перегляду і вивантаження статистики повідомлень

Володимир В'ялов, розробник бекенд, Redmadrobot
"Необхідність написання власного асинхронного чатсервера виділяла цей проект на тлі інших. На самому початку потрібно було вибрати фреймворк: основний вибір був між nodejs, asyncio і Tornado. Asyncio доступна тільки з версії Python 3.4, але ми вже використовували мову останнього покоління в продакшені в інших проектах, так що вибрали її. Було необхідно реалізувати асинхронне взаємодія з PostgreSQL, Redis, RabbitMQ, передачу повідомлень через вебсокети і покрити асинхронний код тестами. У підсумку досвід з asyncio виявився вдалим, і я знову виберу її для наступних проектів ".

Перші півтора місяці всі компоненти системи розроблялися паралельно і не були пов'язані між собою. Менеджери нервово ходили по коридорах в очікуванні початку інтеграції :) Нарешті цей момент настав, і після декількох підпилювання чат заробив! Спочатку з'явилася можливість писати один одному, і ми змогли підключити відділ QA. Однак назвати систему в тій її версії стабільної чи було можна - повідомлення губилися, з'єднання рвалися, сервер падав. Нам потрібно якийсь час, щоб стабілізувати систему і знайти причини проблем. Між браузером і сервером довелося зробити ping / pong для визначення стану з'єднання, за декілька ітерацій пофіксити баги в зв'язці RabbitMQ / чат-сервер і навчилися боротися з дублюванням повідомлень на мобільних пристроях. Але деякі баги на початковому етапі ми все-таки упустили, бо вони дають про себе знати тільки тоді, коли операторам починають одночасно писати сотні людей, а на тестовому оточенні повноцінно семуліровать таку активність складно.

Розгорнути чат було непросто, оскільки в банку безліч вимог з безпеки і свій погляд на організацію бекенда.

Артур Сахаров, технічний директор, Redmadrobot
"Зрозуміло, не всі з нашого стека технологій використовується в банку. Зазвичай ми пишемо на Python, беремо базу даних Postgres, підключаємо черзі RabbitMQ, тримаємо кеш на Redis, піднімаємо Docker-контейнери на Linux - для банку вся ця середу за замовчуванням вважається недовірених. Там звикли, що скрізь стоїть MS SQL, додатки написані на .Net або на Java, і багато розгорнуто на Windows Server. Для цього стека опрацьовані всі необхідні процедури, налаштовані аналізатори, фахівці банку вміють самостійно їх підтримувати і розгортати.

У підсумку ми знайшли компроміс зі службою безпеки, замінили невелику частину наших стандартних компонентів, а по більшості рішень (наприклад, ми залишили Python і Postgres) вписалися не в поточний стек банку, а в майбутні плани по оновленню інфраструктури IT. Вийшло, що цей проект в тому числі став і полігоном для СБ, архітекторів і супроводу, на якому вони піднімали необхідні процедури. Завдяки виділеної команді і допомоги "Відкриття Digital" це вдалося зробити в максимально стислі терміни ".

Як це працює

Нещодавно через чат написав клієнт. Він знаходився в Грузії і не міг отримати в банкоматі кошти через перевищення ліміту на зняття готівки, який встановлений з метою безпеки. "Зрозумійте" - каже - "мені ще п'ять днів тут бути, а гроші я зняти не можу, нема за що купити зворотний квиток, та ще й на телефоні кошти закінчилися". Збільшити ліміт технічно було неможливо, тому оператору довелося проявити кмітливість:

Все в банку розуміють, що спілкування через чат має бути простим і людяним, але трапляються проколи :) Один з клієнтів задав через чат питання і отримав на нього замість доброзичливого відповіді витяг з банківських умов. Клієнт здивувався, заскріншотіл листування і відправив в Твіттер. Паралельно він поставив запитання: "А як рахунок-то закрити в вашому банку?". У відповідь на це йому вислали повну докладну інструкцію про те, як це зробити. Це був epic fail.

@otkritie плювати на клієнтів, відповідають заготовлений текст c цитатами з соглашенія.Вернулся в улюблений @rocketbank pic.twitter.com/pIg9JFbnYf
- Lev Pirogov (@pirogovoe) 28 липня 2016 р

@pirogovoe вибачте, ми тільки вчимося поговоримо з Людмилою, щоб помилки більше не повторювалися.
- Банк «Відкриття» (@otkritie) 28 липня 2016 р

Проблему клієнта, який цілком обгрунтовано розлютився на Сtrl C + Сtrl V, звичайно, вирішили. А для банку цей випадок став еталонним кейсом того, як слід вчитися на своїх помилках.

@otkritie виправився, повернув гроші і навіть запросив в гості. Добрий і хороший колектив. pic.twitter.com/ZqqOOaQYMP
- Lev Pirogov (@pirogovoe) 3 серпня 2016 р

Підсумки і плани

Дещо з планів на майбутнє:

  • Запуск чату на Android і в прелогін-зоні (в обмеженому режимі)
  • Автоматизація відповідей за допомогою бота
  • Аналітичний дашборда адміністратора, що дозволяє в режимі реального часу відслідковувати завантаження як конкретного оператора, так і всього відділу, а також швидкість обробки звернень
  • Інтеграція з різними бекенд на стороні замовника. В першу чергу - з банківської CRM
  • Додавання другого рівня підтримки: нових ролей фахівців підтримки і сценаріїв маршрутизації тікетів (тікети будуть розподілятися після оцінки їх складності і почнуть літати ще швидше)
  • Підключення IP-телефонії: маршрутизація викликів аналогічно телефонним дзвінкам

Ну а поки банк продовжує експериментувати з новим каналом комунікації і часом доводиться розбиратися не тільки в фінансових питаннях ...

... і рвати шаблони :)

Stay tuned!

Паралельно він поставив запитання: "А як рахунок-то закрити в вашому банку?

Новости