
Любому, кто осилил роман ВиктОра Гюго «Человек, который смеется», известно, что при дворе Английской Королевы Елизаветы I была должность «Откупориватель океанских бутылок».
Придворный, занимавший этот пост, собственно, и откупоривал бутылки. От 80 до 120 бутылок в год.
В тучный год он работал «не покладая штопора», каждые три дня извлекая очередную последнюю волю, прошение, мольбу, исповедь или свидетельство на суд Британской монархии.
В те времена люди относились к акту публичной коммуникации гораздо серьёзнее, чем сейчас.
И любой, кто вкладывал сообщение в бутылку, заливал пробку сургучом и препоручал её пучине, мог не без основания надеяться: сообщение прочитают и по нему вынесут какое-то суждение или решение. Если, конечно, бутылку вынесет на берег. Неизвестно было только, когда и где это произойдёт.
В современном мире — наоборот. Ты знаешь, что доставлено. Знаешь когда и куда. Но часто не знаешь главного: прочитано ли и будет ли прочитано.
Спам, обилие информации, клиповость мышления, неумение быстро читать и понятно писать — лишь верхушка айсберга причин, затрудняющих даже самую адресную коммуникацию.
Под катом я буду говорить о способах и инструменте, которые делают адресную письменную коммуникацию чуть более управляемой, а её инициатора — чуть более счастливым.
И пусть несчастливые станут счастливыми, а счастливые пусть переполнятся счастьем. Всех, кто пишет письма и сообщения, посылает каталоги, презентации, резюме, предложения и приглашения, прошу под кат.
Спамеры могут не беспокоиться… Хотя и для вас всё это справедливо тоже.
Одним ненастным мартовским днем…
…2026 года я обнаружил себя в ситуации, в которой уж и не чаял застать… ходящим на работу в офис. Ж8-0
Да ещё и, О ЧУДО!, в один офис со старинным моим товарищем! Сергей (а именно так его зовут) много лет занимается продажами разнообразного оборудования. Он и был инициатором нашего сотрудничества, учитывая совместное прошлое в этом деле.
Опуская детали, скажу сразу о задаче. Мне нужно было понять причины неудач в продажах отдельных продуктов в производственные цепочки и выработать некий алгоритм действий, приводящий к успеху «молодых и не очень» сотрудников.
Я назвал это:
Задача: внедриться в производственную цепочку
Итак… На территории клиента мои визави — конструкторы и специалисты, ответственные за обеспечение производства. Последние — не совсем снабженцы, но уже и не конструкторы.
Эти люди заняты. На любом производстве. И заняты они делами. А внедрение продуктов моей компании связано для них с изменениями в конструкторской и технологической документации. Поэтому они не хотят — да и не могут — общаться с нетерпеливыми амбассадорами, которые так жаждут продать.
Но дисциплина продаж есть дисциплина. Независимо от того, работаешь ли ты с цепочкой кооперации, перепродавцом или конечным потребителем, нужно спрогнозировать возможный спрос по каждому клиенту. Ведь за тобой точно так же стоит производственный процесс: номенклатура, план комплектования, производственный и финансовый планы и т.д.
Согласно следам, оставленным в информационной системе прилежными и не очень сотрудниками, типичная попытка продажи в этот сегмент выглядела так:
Продавец установил отношения с 70 производствами. На это уходит около двух недель. Отправил материалы. Вторым циклом контактов начинает собирать отказы. У отказов есть причины. И подозрительно часто они больше похожи на «отмазки» продавца…
И так не один и не два продавца.
Может, продавцы просто неудачники?
У любого продавца есть план продаж. Стремясь выполнить его «в моменте», он начинает заниматься клиентами с более прогнозируемой перспективой покупки. Пусть потребность таких клиентов и не столь регулярна, как у производственной цепочки.
И интеграция продукта в производственную цепочку остаётся незавершённой. Ведь каталога на компьютере конструктора недостаточно. Чтобы компании перешли от модели «покупатель — продавец» к модели кооперации двух производств, нужно сделать ещё несколько обязательных шагов.
При этом именно модель кооперации наиболее выгодна продающей компании. Коммерческие издержки повторных продаж здесь почти нулевые, а количество повторов — одно из самых больших во всём клиентском портфеле.
Чем помочь твоей нужде, о KAM?
Моё наблюдение ответило на главный вопрос: кооперация производств не может мериться усреднённой моделью других покупателей.
Для построения технологии работы с этим сегментом мне нужны новые индикаторы изменения состояния клиента. Они позволят обосновать затраченный ресурс продавца и одновременно дать отчётной системе понятную оценку перспективы продажи.
В техническом плане всё просто: мне нужно знать, когда конструктор уделил продукту внимание, когда вернулся к материалам, возможно — обсудил внедрение с коллегами. И, если получится, увидеть другие детали процесса.
Такое знание заодно позволит не тратить эмоции продавцов и ресурсы компании впустую. Повторные контакты с клиентом будут происходить «всегда вовремя». Бесплотные надежды на ускорение отдельной продажи уйдут, а ресурс перераспределится в пользу увеличения охвата сегмента.
Всё так… только нужен инструмент.
А что у нас в ящике с инструментами?
Самый простой инструмент — две галочки при отправке письма:
Отчёт о доставке — работает часто. Но нужного индикатора не даёт.
Отчёт о прочтении — как правило, не работает. А если работает, польза от этой индикации сомнительна.
Но я не унывал. Есть инструменты и посложнее…
А что если заменить в письме файлы на ссылки — на те же файлы на Яндекс Диске — и пропустить их через сокращатель?
Тогда мы узнаем:
Когда ссылку открыли.
Косвенную информацию о профиле открывшего.
Сколько раз открывали.
Классная идея. Попробовал. Получилось.
Но на практике оказалось неудобно:
Учёт нужно вести вручную.
Интеграция ссылки в переписку занимает время.
Автоматически построить связь «ссылка — клиент» непросто.
Поскольку сам механизм работал, а не подходили только учёт и способ обращения с ним, я решил соорудить «приспособу на коленке».
Полтора часа — и прототип из nginx для ссылок и n8n для статистики готов. Ещё полтора — и плохонький плагин для Thunderbird добавился в комплект.
Теперь я мог:
Быстро вставлять в письмо индивидуальные ссылки по заранее заданному словарю.
Контролировать доступ к ним.
Понимать, осуществлялся ли доступ с одного устройства или с разных.
Получать активность в пригодном для анализа виде.
Интерфейса статистики не было. Просто выгрузка в Excel. Но механизм работал. И давал свои плоды.
Сегмент дрогнул. Контакты стали более осмысленными.
Немного примеров. Из 80 отправленных адресных писем за первые 2,5 недели материалы открыли семь адресатов. С каждым до отправки был телефонный контакт. Люди были заинтересованы.
А на один завод, который я уже похоронил как клиента, получилось вернуться спустя два месяца после первого контакта. В плановом порядке, опираясь на мои индикаторы. Хотя отдавали мне его со словами: «Он дохлый. Но тебе для экспериментов годится».
Раз уж заработало…
Воодушевившись скоростью разработки, я добавил в инструмент несколько фич:
В письмо автоматически вставлялся «пиксель» — микрокартинка, которая при открытии письма запрашивается с сервера, но не видна пользователю. Механизм позволял установить:
дату и время каждого открытия письма;
в некоторых случаях — понять, пересылали ли письмо;
и срабатывал более чем у 70% моей аудитории.
Все мои ссылки стали OpenGraph. При пересылке письма в мессенджер показывалось превью с описанием и картинкой.
У ссылок появилось управление доступом:
время жизни;
ограничение количества переходов;
пароль;
привязка первого устройства — ссылка «запоминает», где была открыта, и в другом месте уже не открывается;
возможность вывести ссылку из оборота и вернуть обратно;
контролируемая задержка открытия.
Не всё, что просто тебе, просто коллегам
Всему коммерческому люду в компании идея понравилась. А блок, ответственный за ИТ и оргстроительство, в ответ на распоряжение подобрать продукты или сервисы с функциями прототипа занял жёсткую позицию.
Прямого продукта действительно не существовало. Но конечно что-то из DocSend, Bitly/Dub, MailTrack, Shlink могли быть запросто объедены шиной с внутренними сервисами компании. И все бы получилось... но так бывает, что когда чуть не хватает технического опыта, мы скорее отвергаем идею, чем стараемся ее реализовать.
В любом случае отказ сотрудничать работу мою не затруднил. Скорее наоборот — мотивировал поделку превратить в продукт.
Название: UPORTAL
Из поделки — в UPORTAL
Так из внутренней «приспособы» постепенно получился UPORTAL — сервис управляемых публикаций.
Смысл остался тем же, с которого всё начиналось: отправить человеку ссылку, файл или страницу, сохранить контроль над тем, что с ними происходит, и получить индикаторы дальнейших действий получателя.
Технически продукт состоит из трёх частей:
Плагин для Thunderbird — избавляет от ручной работы со ссылками в письме.
Сервер на nginx, JS и shhoook — отдаёт контент, управляет доступом, собирает события и предоставляет API и вебхуки.
Веб-интерфейс — публикации, статистика, словарь плагина, пользователи и настройки.
В центре — публикация
Довольно быстро выяснилось, что отдельная ссылка — неправильная единица учёта.
Я отправляю не ссылку. Я отправляю письмо человеку по определённому поводу. В нём могут быть каталоги, презентации, страницы, ссылки на сайт и пиксель.
Поэтому в центре UPORTAL появилась публикация — контейнер, объединяющий тему, адресатов и все связанные с сообщением ссылки.
Самих ссылок получилось четыре типа:
Редирект — ведёт на внешний ресурс: сайт, файл или папку в облаке.
Пиксель — невидимая картинка в письме, фиксирующая его открытие.
Даунлоад — отдаёт загруженный на сервер файл, сохраняя контроль над доступом к нему.
Страница — превращает Markdown в готовую HTML-страницу (на красивом TailWind CSS) с изображениями, видео и другими материалами.
Для файлов и страниц прямой URL к контенту пользователю вообще не выдаётся. Контент отдаётся динамически после перехода по короткой ссылке и проверки сессионных ключей. Это избавляет (хотя и не гарантирует) от большинства способов собрать ваш контент. Включая автоматическое попадание в поиск при публикации короткой ссылки.
Но вернёмся к Thunderbird
Но помните одну из проблем первого эксперимента?
Долгая интеграция самой ссылки в переписку.
Если для каждого письма нужно открыть веб-интерфейс, создать ссылку, скопировать её, вернуться в Thunderbird и ещё не забыть, какому клиенту она принадлежит, — приспособа снова начинает мешать работе вместо того, чтобы помогать.
Для этого и остался плагин Thunderbird - здесь можно посмотреть его работу.
В веб-интерфейсе пользователь заранее формирует свой словарь: например, «каталог», «презентация», «прайс», «сайт». В письме он просто выбирает нужные шаблоны.
При отправке плагин заменяет их реальными индивидуальными короткими ссылками, автоматически вставляет пиксель и создаёт в UPORTAL публикацию с темой письма и адресатами.
То есть большая часть рутины происходит именно тогда, когда пользователь нажимает привычную кнопку «Отправить».
Создать ссылку вручную через веб-интерфейс тоже можно. Но для электронной почты это скорее дополнительный способ, чем основной.
Что происходит после «Отправить»
И вот здесь мы возвращаемся к задаче, с которой началась вся история.
Письмо ушло. Что произошло дальше?
В «Управлении публикациями» видно, какие ссылки использовались, когда это происходило и с каких устройств. Для каждой ссылки ведётся лог активности во времени.
Но наблюдать — только половина задачи. Ссылкой можно управлять и после отправки: снять её с публикации или вернуть обратно, ограничить срок жизни или количество переходов, поставить пароль, добавить задержку выдачи или разрешить доступ только первому открывшему устройству.
То есть отправленное сообщение перестаёт быть окончательно выпущенной из рук океанской бутылкой.
И пусть UPORTAL скажет сам
Постоянно смотреть на статистику, конечно, не хочется. Хочется на девушек смотреть) Весной-то особенно.
Поэтому сервер умеет сообщать о событиях сам. Фазы активности получателя доступны через вебхуки: их можно отправлять во внешнюю БД, CRM, n8n или собственный обработчик.
А если интеграция не нужна — получать уведомления по конкретным ссылкам прямо в Telegram. В течение трёх минут после активности пользователя вы получите уведомление.
В UPORTAL достаточно связать свой токен (соответствует каждому пользователю) с Telegram-аккаунтом.
Для моей исходной задачи это означало именно то, чего я хотел: не звонить клиенту по календарю, а возвращаться к нему после появления осмысленного повода для следующего контакта.
Что получилось и как попробовать
Пройдя "испытание огнем и практикой" UPORTAL был готов стать самостоятельным. Он был собран в отдельный проект, а Community Edition я выложил на GitHub. Там же можно посмотреть код, устройство проекта и развернуть его самостоятельно одной тремя командами.
Если разворачивать Community Edition не хочется, посмотреть, как всё это работает "вживую", можно на готовом экземпляре UPORTAL. Там доступен тот же основной набор функций, который я описывал выше. Включая Telegram-оповещение. Все описанные функции готового экземпляра UPORTAL доступны без оплаты, регистрации и СМС. Там же есть чат для вопросов по развёртыванию и техническим деталям проекта.
Собственно, на этом описание продукта закончу.
Посвящения и благодарности
Превращение идеи в продукт — работа, которую проще бросить, чем довести до конца)
UPORTAL не получился бы без бережной и трепетной заботы моей музы.
Алёнушка, спасибо тебе за поддержку. Спасибо тебе за заботу. Спасибо за то вдохновение, которым ты наполнила каждую минуту нашего общения. Тех, кто задумал создать продукт, сложно понимать и воспринимать на всем пути. От странного решения ("а превращу я все это в нечто доступное всем") до финишной ленточки - продукта о который можно предложить любому. Все это я посвящаю тебе.
Отдельная благодарность моему соседу по камерекабинету...
Артур (ударение именно на первую "А". Артур немец. Не армянин), все время, пока мы разделяли общее пространство, ты был для меня примером трудолюбия, организации и стремления. Твоя предприимчивость, ORDNUNG и внутренняя требовательность к себе сделали безальтернативным доведение UPORTAL до полноценного сервиса. Уверен, ты будешь использовать результат моего труда с удовольствием. И вдохновлять своим примером окружающих.
Вместо заключения
В мире, где есть беспилотные автомобили, код пишет нейросеть, а наши дети узнают из TikTok о том, что это за профессия такая "геодезист", кажется уже нет места, где письменное слово имеет значение.
Знаете... Есть) И это, в том числе, b2b активные продажи. И как это было 25 лет назад, так это остается и сейчас. Взглянув одним глазом на искусство современных джидаев будни КАМов после 15 лет перерыва, я снова в этом убедился.
UPORTAL не продаст за вас. Он не научит вас писать или общаться с клиентами.
UPORTAL ускорит и приведет в порядок рутину. Сэкономит ваш ресурс. Сделает предсказуемыми ваши результаты в продажах.
Буду рад всем в комментариях. Буду рад всем в личном чате Хабра. Буду рад вопросам и замечаниям в комментариях или Issues на GitHub.
Хороших вам продаж и ... пусть океан выносит ваши бутылки куда следует!)

