«Мы же договорились» — фраза, с которой начинаются ссоры. Мы сделали из неё кнопку, которая мирит. Про то, как приложение напоминает о долге, не стыдя, и почему тон важнее частоты.
Это третья часть серии о том, как мы строили «Договорились». Продукт уже жив на сервере — и тут начинается самое тонкое. Не механика, а тон: как приложение разговаривает с тобой в момент, когда ты что-то не сделал.
Любое приложение с напоминаниями ходит по краю. «Не забудь отметиться», «срок сегодня», «ты пропустил 3 дня» — и вот уже продукт превратился в зудящего родителя, которого хочется удалить вместе с чувством вины.
А наш продукт — вообще про обязательства между близкими людьми. Тут давление работает ещё хуже: напомнил неправильным тоном — и поссорил двоих вместо того, чтобы помочь им договориться. Поэтому с самого начала мы понимали: тон напоминаний для нас важнее их частоты.
Ещё на старте (об этом была первая часть) мы сформулировали суть продукта в три слова:
Не упрёк. Не задача. Договорённость.
Звучит как лозунг, но работает как фильтр. Каждую фразу, которую приложение говорит пользователю, мы прогоняли через него: это не звучит как упрёк? не звучит как начальник, раздающий задачи? чувствуется ли, что вы оба на это подписались?
Конкретный пример. Срок прошёл, человек ничего не отметил. Обычное приложение пишет: «вы просрочили задачу». Наше пишет: «Договорённость просит внимания. Её можно выполнить, перенести или пересобрать». Разница в одном — виноват не человек. Внимания просит сама договорённость. Никто никого не тыкает носом.
И ещё одна мелочь, которая на самом деле не мелочь: из напоминаний мы убрали счётчик «день 5 из 7». Он звучит как контроль и надзор — будто кто-то ведёт по тебе статистику. А ещё он просто врёт на нестандартных пактах, где контрольных дней меньше, чем дней в сроке.
Сначала у продукта было два голоса, и это была проблема. Внутри приложения — тёплые комментарии в нужные моменты. А напоминания от бота жили отдельной жизнью, по своим шаблонам. Один и тот же продукт разговаривал с человеком двумя разными интонациями, смотря откуда пишет.
Мы свели всё в одно место: 320 фраз на 33 ситуации в одном файле, который читают и приложение, и бот. Поправил фразу в одном месте — она поменялась везде. Теперь, в какой бы момент продукт ни заговорил, голос один и тот же.
При этом голос подстраивается под тип договорённости. Бытовой пакт («заговор чистой кухни») — можно с лёгкой иронией. Рабочий — суше, по-деловому. А вот личные, отношенческие — только мягко, иронию там приложение не включает никогда. Шутить про немытую посуду можно. Шутить про «ты опять не позвонил маме» — нельзя.
Самое сложное мы оставили на десерт — саму фразу «Мы же договорились». Ту, с которой в реальной жизни чаще всего начинается ссора.
Мы сделали из неё кнопку. В активном пакте можно нажать «Мы же договорились» — и второму человеку прилетает спокойное: «Антон предлагает свериться по договорённости. Без претензий». Не «ты опять ничего не сделал», а приглашение свериться вдвоём.
Чтобы кнопка не превратилась в орудие давления, мы её специально ограничили: позвать свериться можно не чаще раза в сутки. Нажмёшь второй раз — приложение мягко ответит «уже позвали», без второго уведомления и без ошибки. Кнопка зовёт к разговору. Она не должна уметь долбить.
Голос — это то, чего не видно в списке функций, но именно он решает, держат продукт на телефоне или удаляют после третьего напоминания. У нас весь слой «голоса приложения» — это не отдельная фича с кнопкой, а тонкая ткань поверх всего продукта: 33 момента, в которых приложение могло бы надавить, а вместо этого говорит по-человечески.
И заодно этот слой честно показал дыры в самом продукте. Когда раскладываешь все 33 момента, в которые приложению есть что сказать, сразу видно, каких моментов в продукте ещё просто нет — нет кнопки, нет экрана, нет статуса. Голос подсветил, чего не хватает в механике.
Если в вашем продукте есть хоть одно сообщение пользователю — напоминание, ошибка, пуш — у вас уже есть голос. Вопрос только в том, занимались вы им или он сложился сам.
Самая дорогая работа здесь не техническая. Это решить, как продукт разговаривает с человеком в худший для него момент — когда тот что-то не сделал, ошибся, забыл. Большинство продуктов в этот момент по умолчанию стыдят. Просто потому что «вы просрочили задачу» — формулировка, которая пишется сама. А хорошая — требует, чтобы кто-то сел и подумал над тремя словами.
Дальше: продукт живой, тёплый и на проде — и всё равно регулярно ломался. Четыре истории про баги, которые проходили все проверки, и почему «зелёная сборка» врёт.
Продукт из этой статьи
Telegram-приложение, которое превращает обещания между людьми в игру: AI делает из договорённости пакт с названием, а вы вдвоём идёте к цели.
Подпишитесь на журнал QuboLab и получайте лучшие материалы первыми.