Блог Интеграм

Рассказываем о проектах, обновлениях и событиях

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

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

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

На нашем конструкторе построен продукт, о котором мы рассказываем клиенту. Конструктор призван заменить таблицу Excel и Google sheets для малого и среднего бизнеса, добавив к нему средства построения интерфейса и автоматизацию. Такой подход поддерживают различные сервисы, вот некоторые из них:

airtable.com – замена Excel и Google-таблиц: этакий Excel на стероидах

creatium.io – конструктор сайтов, претендующий на «всё-в-одном»

bpium.ru – российский аналог Airtable с элементами автоматизации

directual.com – конструктор баз данных, процессов и форм

integram.io – конструктор баз данных и веб-приложений

Подобные сервисы предназначены для создания прототипов и MVP, но часто позиционируют себя как инструмент для полноценной разработки. И, надо заметить, на некоторых из них можно сделать серьезный проект, дотянув до продвинутой ERP-системы, и писать код при этом действительно придется мало.

Что умеют конструкторы no-code

Перечисленные сервисы обычно заявляют о таких ценностях:

  1. Всё просто и интуитивно понятно даже для новичка

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

  3. Большое количество проектов и довольных клиентов

  4. Если чего не хватает, то можно легко интегрироваться с другими сервисами

  5. Хорошие отзывы реальных пользователей

  6. Большое сообщество специалистов, готовых помочь

  7. Доступно множество шаблонов и наработок, бесплатных и платных

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

Локальная лицензия на установку конструктора на серверах заказчика, включающая сопровождение – устранение дефектов и установка обновлений.

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

Сопровождение – почасовая оплата пакетами по 10-20-50 часов. Это консультации и доработки по проекту, но чаще это просто нахождение в дежурном режиме в готовности быстро помочь в случае необходимости.

Наша целевая аудитория – бизнес от 50 до 700 человек, у кого есть свой отдел IT и/или бюджет для найма разработчиков со стороны. Чаще все таки разработкой занимаются свои сотрудники – 2-3 человека из тех, кто что-то программирует в компании, например, ERP и разную локальную автоматизацию. У них достаточно компетенций чтобы сопровождать IT-продукты или быстро написать что-то несложное.

Глоссарий

ЛПР – лицо, принимающее решение о покупке

Босс, ЛДПР – лицо, действительно принимающее решение (окончательное)

Действующие лица:

ЛПР – IT-директор или вроде того, человек, от которого все хотят что-то: директор хочет повышения показателей удовлетворенности пользователей IT-инфраструктурой и программами. Снизу и с боков его теребят те же пользователи со своими потребностями автоматизации. Польза от IT-директора – уменьшение беспорядка, сокращение издержек на IT, снижение рисков потери и кражи данных.

Босс – директор или владелец, он несет ответственность за компанию и управляет всеми её ресурсами. Его задачи: жизнеспособность бизнеса, чтобы отделы не конфликтовали, задачи выполнялись и был контроль.

Сотрудники – в основном, мощный костяк сопротивления переменам, просто люди, приспособившиеся к текущим условиям. Часто проект нацелен на уменьшение вреда от них (воровство, безответственность)

Энтузиасты – единичные сотрудники, ждущие перемен и помогающие проекту из совершенно разной мотивации

Потребность ЛПР – улучшать, укреплять и упрощать своё IT-хозяйство, в частности, внедрять и сопровождать новые продукты. Обычные его проблемы: нет нормальной управленческой отчетности, потому что программа многое не позволяет. Он следит за трендами IT и иногда изучает новые инструменты.

Драйвер проекта – Босс велит IT-отделу стать более гибким, взять под контроль больше задач, прямо сейчас выполнить самую важную из них, при этом иметь:

  • Чёткие временные и финансовые рамки проекта
  • Уверенность в успехе проекта
  • Значительное улучшение возможностей IT

Так возникает идея проекта, который состоит в замене главной IT-системы компании или создании новой большой системы для управления чем-либо ключевым (логистикой, заказами, договорами, объектами, проверками, аттестациями и т.д.). Например, давайте сделаем ERP или продвинутую CRM:

  • Соберем всю управленческую отчетность в одном месте
  • Наведем порядок с логистикой, учтем всё, что мечтали контролировать
  • Выкинем кучу CRM и экселей и внедрим нормальный инструмент
  • Перепишем нашу легаси систему
  • Заменим эксели в планово-экономическом и смежных отделах на программу
  • Задокументируем и запрограммируем весь наш крутой процесс (строительные фирмы и подрядчики)
  • Научимся прогнозировать расходы и доходы от проектов, в т.ч. расчет НДС, например, который раз в квартал приносит сюрприз своим размером

Приложение для сверки банковской отчетности, выполненное в low-code Приложение для сверки банковской отчетности, выполненное в low-code

Проект возникает не от хорошей жизни. Часто у участников присутствует заметный скепсис, а в четверти случаев на стороне заказчика можно даже наблюдать некоторое отчаяние. В любом случае, у инициаторов нет уверенности в успехе – по статистике 84% IT-проектов завершаются не в срок, вне бюджета или с худшей отдачей, чем ожидалось.

В половине случаев (50%) у ЛПР есть некое подобие ТЗ, иногда (25%) проработанное до степени готовности к точной оценке. В 75% случаев есть эксели и подобные таблицы/материалы/системы, которые используются как суррогат задуманного проекта, и по которым можно в принципе понять что происходит и создать нормальное IT-решение.

ЛПР ищет решения на рынке, потому что и сам стремится улучшить своё положение, получить бонус, пополнить резюме.

Как правило, выбор ЛПР таков, если смотреть по убыванию его риска:

А. Развивать самописные системы, которые есть в компании вместе с кучей экселей

Б. Закупить или доработать продукт из линейки 1С

В. Ничего не делать

Г. Найти готовый продукт

Д. Найти новый, более мощный, инструмент разработки или технологию

Е. Заказная разработка под ключ на стороне

В последних трёх случаях риск провала достаточно высок, и надо убедить ЛПР, что он всё предусмотрел и всё очень четко понимает. В этих случаях также наиболее высок риск саботажа со стороны сотрудников клиента.

Недостатки вариантов

А. Самописные системы, эксель – низкий бюджет, почти нет возможности для улучшения, нет бонусов и славы, очень долго

Б. 1С – очень дорого, сотни тысяч за точечные доработки или миллионы за проект и сопровождение, найм дорогостоящих консультантов, проблемы при обновлении

В. Ничего не делать – нет бонусов и удовлетворения амбиций, недовольство начальства

Г. Готовый продукт – сотни тысяч за коробку, которую придется долго дорабатывать, настроить под себя – нереально, есть ограничения, из которых не все известны сразу

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

Е. Заказная разработка – миллионы за проект и, если мы говорим о большом проекте в рамках компании, этот вариант весьма редко рассматривается, потому что люди со стороны сделают всё плохо, не зная специфики и не беря полную ответственность

Где здесь мы

Мы – это вариант Д, но с привлечением консультантов и, возможно, покупкой лицензии.

Схема сходу непривычна для ЛПР, поэтому даже сам формат решения ещё нужно донести. Обычно это требует около двух часов разговора с прогретым клиентом. То есть, с тем, кто уже что-то слышал, знает, где-то читал или просто сам является энтузиастом и изучает новое (таких не более 20%).

На холодную на нашем этапе развития – малоизвестный конструктор – зайти почти невозможно, если только не идти со стороны Босса, для чего сам Босс должен быть каким-то образом в теме.

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

Ещё небольшая часть уже находится в отчаянии, потому что уперлись в фатальные ограничения, например:

  • Зарубежный продукт перестал быть доступен
  • Excel не поддерживает больше миллиона строк
  • Больше нет возможности копировать эксели из месяца в месяц
  • Невозможно масштабировать бизнес на текущем IT-решении
  • IT-решение работает медленно и нет возможности это исправить
  • Нужно веб-приложение или сервис вместо локальной десктопной программы
  • Нужно интегрироваться с сайтом, чего не позволяет существующая архитектура

Знакомство с продуктом

Итак, ЛПР в надежде попадает в мир ноукода и начинает знакомство:

  • Понимает, что это за продукт и из чего он состоит, условия работы
  • Листает примеры решений и узнает среди них свой будущий проект
  • Убеждается, что компания работает давно и имеет достаточно клиентов
  • Тарифные планы продуманы и покрывают все случаи
  • Видит преимущества продукта в разных аспектах
  • Возможно, регистрируется в 1 клик, чтобы пощупать сервис
  • Может выбрать подходящий вариант начала работы
  • Решается заказать консультацию

При всей высоте ожиданий, простые таблицы с цветными метками радуют глаз При всей высоте ожиданий, простые таблицы с цветными метками радуют глаз

Если первый пункт сходу не сработал, то, вопреки мнению директологов, клиент – ЛПР – все таки прокручивает лендинг дальше. Это удивительная вещь, но мы получали звонки и выслушивали примерно такое: я просмотрел весь ваш сайт, почти ничего не понял, расскажите мне!

Сайт и звонок создают у клиента понимание, что, вероятно, он сможет успешно выполнить проект:

100% под себя, в отличие от коробки, при примерно той же стоимости С небольшим бюджетом, на порядок ниже, чем с 1С или заказной разработкой Дальнейшее обслуживание будет недорогим и понятным

Что можно считать преимуществами варианта с конструктором

Основное – стоимость (скорость) разработки и доработок.

Второе – минимум ограничений, свойственных конструкторам.

Третье – высокая скорость работы и низкие требования к ресурсам.

Наконец – достаточно низкий порог входа для программиста: конструктору можно научиться за неделю, в то время как изучение языков программирования требует от полугода до 2 лет.

Обычно на первой встрече (очно или в зум/мит/мост) мы показываем многие вещи на лету: загружаем данные, настраиваем структуру данных, раздаем права, делаем отчеты и формы, выводим данные в виде графиков, объясняем работу шаблонизатора и SPA (режим Single page application).

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

Например, мы загружаем в базу данных пару десятков тысяч записей за полминуты, а потом показываем какова была нагрузка (порядка 20% ЦПУ и 80МБ памяти) на этот сервер, в котором 1 ядро и 1ГБ памяти, и на котором сейчас работают и другие пользователи.

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

Предложение на сайте, которое мы выдаем разогретому клиенту

  • Зарегистрироваться в 1 клики и протестировать сервис
  • Связаться с нами (телефон, мессенджер, заказ звонка, письмо)
  • Купить пакет аналитики 5-10 часов, чтобы получить оценку и затем ТЗ
  • Посмотреть дополнительные материалы (видео, примеры, статьи и т.д.)

Онбординг

Первый шаг (необязательно) – регистрация в сервисе, чтобы просто посмотреть, что это действительно работает. Возможно прохождение интерактивных уроков (около 1 часа), а может это просто прокликивание нескольких пунктов меню. Почему-то ЛПР почти всегда хочет сделать что-то своими руками.

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

Следующий шаг – контакт одним из способов, чтобы убедиться, что компания существует, там готовы работать и вообще адекватные:

  • Позвонить по телефону на сайте
  • Обратиться в телеграм с сайта
  • Заказать звонок
  • Написать письмо

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

После контакта идет заказ демонстрации или счета на оплату первой фазы – прототип, проработка ТЗ, иная аналитика. Обычно первая фаза – это 30-50 тысяч предоплаты, чтобы проверить на что способен подрядчик.

Что интересует ЛПР

В хорошем случае клиент достает ТЗ или его аналог и начинает спрашивать по списку – можно это, а это, а это, а с этим как? Иногда у него есть эксели, которыми он может поделиться. Бывает поток мыслей в Miro, MindMap или чём-то подобном. В худшем случае – это скрины экранов.

ЛПР просит показать многие вещи, хотя обычно не ожидает, что ему будут что-то показывать, а ожидает чистый маркетинг. В этом есть преимущество – когда вы можете показать что-то практически на любой вопрос.

Список вопросов примерно такой:

  • Базовые возможности. Что, у вас можно хранить таблички? А можно поля к ним добавлять? А связывать? А есть ли целостность данных? А как это выглядит – симпатично или нет? А справочники можно?
  • А сколько данных может хранить система? А как сильно она замедляется с ростом объемов? - - Долго ли вычислять что-то в миллионах записей?
  • Как делается импорт данных? А можно автоматически? А в каких объемах можно? А экспорт есть? А в 1С выгрузить/загрузить как?
  • Как организовано программирование бизнес-процессов? Как защитить их от дурака? Как вообще программируется изменение данных и всякие расчеты внутри?
  • Что с безопасностью? Ролевая модель есть? А можно дать доступ к отдельным полям? А можно назначить клиента менеджерам? А чтобы менеджер видел только своих клиентов? А чтобы босс видел всех?
  • Как сделать красивые рабочие места? Как сделать автоматизацию – взаимозависимые поля, расчеты и всё такое? Как перенести сюда формулы Excel?
  • Сколько это стоит – лицензия? А какие ограничения – по количеству пользователей, транзакций, установок и т.д.? Можно ли править код? Тестовые и прочие стенды сколько стоят?
  • Какой квалификации нужно быть нашему программисту, чтобы по вашим подсказкам сделать такой проект? А мелкие доработки пользователь сможет – отчет сделать или формулу поменять? А тут как с защитой от дурака?
  • Как будет организовано сопровождение? Какое время ответа в случае проблем? Как оформляется? Какая ваша ответственность?
  • Кому будет принадлежать интеллектуальная собственность на результат проекта? А мы сможем её продавать?
  • А что будет если вы завтра закроетесь, а мы подсели на вашу иглу? А как нам это тогда сопровождать? Где нам взять специалистов по этому конструктору?
  • А не изменятся ли ваши тарифы? Какие мы можем получить гарантии цен?
  • После ответов на все эти вопросы (те самые 2 часа) у ЛПР не остается сомнений в пригодности продукта и он занят мыслями, как будет продавать это Боссу.

Упрощенная структура данных в no-code конструкторе Упрощенная структура данных в no-code конструкторе

Оформление и стоимость

Далее ЛПР идет к Боссу и продает ему этот выбор. Босс не колеблется с решением, если ЛПР сам уверен и может убедительно ответить всего на 2-3 вопроса. В рамках компании это незначительные затраты и всех больше волнуют риски, негатив и принципиальная реализуемость проекта. Торга обычно нет, он не имеет смысла, Босс и ЛПР воспринимают подрядчика как своего рода спасителя и не хотят его пока прессовать.

Обычно, можно с приемлемой точностью оценить проект в часах или деньгах, опираясь на количество сущностей, которые фигурируют в ТЗ или рассказе клиента, а также количество экранных форм и интеграций. Первую грубую оценку можно дать уже после первого общения с клиентом. Например, выслушаем около получаса, как устроено его пищевое производство, и говорим, что полностью своими силами сделаем его за 400 тысяч рублей, а как консультанты для его программистов – за 80 тысяч.

Ориентировочная стоимость проекта при выполнении его силами заказчика с помощью консультантов-аналитиков будет от 400 до 600 тысяч рублей, реже – в пределах миллиона рублей.

Для сравнения, подобный проект при заказной разработке будет стоить от 1.5 до 3 млн рублей при тех же существенных рисках.

Сопротивление программистов

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

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

Результаты опроса на Хабре в 2021 Результаты опроса на Хабре в 2021

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

Выводы

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

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

Заказчикам мы предлагаем взглянуть смелее на подобные предложения и не пожалеть немного времени на тестирование гипотезы с конструкторами. А разработчикам мы советуем изучить направление no-code и low-code разработки – там уже есть работающие инструменты и методики.

Спасибо!

В далекие 70-е годы всё программное обеспечение (ПО) разрабатывалось с нуля, а вычислительные мощности не позволяли создать визуальный конструктор без кода (No-code): он требовал бы на 2-3 порядка больше ресурсов. В 1000 раз больше ресурсов.

Далее, в 80-е, программисты использовали свои же, ранее написанные библиотеки программ. Библиотеки требовали в разы больше ресурсов на единицу полезного вычисления, чем написанный с нуля код. Зато этот подход ускорял разработку также в разы. Конструктор всё ещё требовал бы в 100 раз больше ресурсов, что было непозволительной роскошью.

Затем, в 90-е, программисты стали использовать также и сторонние библиотеки и инструменты разработки. Чужой инструментарий часто был закрыт, решения работали медленнее, страдала совместимость. Тем не менее, использование библиотек ускоряло разработку на порядок-два. Вычислительные мощности росли, поэтому все легко мирились с тем, что их требуется также на 2 порядка больше. Теоретически, конструктор требовал бы в 10 раз больше ресурсов.

В 90-х были последние известные попытки создать нечто подобное Интеграму, после чего идея, которая далеко не нова, была признана неработоспособной. Вот один из ярчайших эпизодов тех времен. Причина неудач: разработчик не опускался до деталей низкого уровня, по привычке 80-90-х годов таща за собой библиотеки и стереотипы разработки. Вместо фундаментальной проработки ядра ставка делалась на новейшие технологии.

В 2000-х мы наблюдали прежние темпы роста вычислительной мощности. Библиотеки программ стали шире, мощнее и устойчивее. Скорость разработки уже не росла пропорционально накладным вычислительным расходам, как это было в 70-90-е годы, она так и застыла на уровне 90-х годов.

Расчетная эффективность No-code и традиционной разработки сравнялась в нулевых годах

В 2003 году была спроектирована структура хранения данных будущего конструктора с предельной унификацией данных, а в 2006 был запущен первый проект в производственной компании (работает до сих пор). Конструктор использует простейшие технологии, основанные на наработках прошлого века, достаточно быстрые и надежные для своих задач.

В силу своей простоты, конструктор Интеграм требует в 10-100 раз меньше вычислительных ресурсов, чем любое современное приложение, выполняя те же задачи. При этом время и сложность «программирования» в конструкторе на порядок ниже.

No-code уже прочно занял нишу среди тех потребителей, кто недосягаем IT-гигантам из-за низкого бюджета, но потенциально составляет более 80% численности пользователей IT-услуг: весь малый и средний бизнес, ИП и самозанятые. Более того, почти все крупные IT-компании в том или ином виде тестируют и применяют решения без кода, что видно даже по рынку труда.

Рынок No-code разработки растет взрывными темпами и кормит своих адептов

Начиная с 2015 года я использую в своих проектах только Интеграм, временами применяя конструкторы страниц Tilda, GrapesJS и Webflow для проработки визуальной части: эта связка даёт максимально возможную скорость разработки приложений. Не верите? Легко убедиться, попробовав повторить этот простой путь создания приложения за 15 минут в любой другой платформе или их комбинации.

Хотите попробовать научиться программировать без кода? Регистрируйтесь в 1 клик и пройдите 5 интерактивных уроков по системе (это займет 60-90 минут).

Спасибо!

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

enter image description here

Презентация проекта с уникальным предложением заинтересованным клиентам.

Если кратко:

Excel дает вам полную свободу, но всё надо делать вручную

SaaS сервисы загоняют вас в рамки шаблонов

Интеграм позволяет создать максимально автоматизированную модель

Интеграм дает возможность использования взаимозависимых списков: мы ограничиваем набор значений в подчиненном выпадающем списке, ориентируясь на ограничения родительского выпадающего списка.

Например, при заполнении адреса некоего объекта нам надо показать в списке только улицы выбранного города, а в списке домов – только дома выбранной улицы.

enter image description here

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

В меню Структура иерархия для этого примера выглядит так:

enter image description here

Обратите внимание, что у ссылок на Улицу и Дом есть ссылочный реквизит, указывающий на родительский объект: город улицы и улица дома.

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

enter image description here

Аналогично добавляется Улица для Дома.

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

Причина в том, что улицы и дома, и даже города, не являются уникальными. Уникальны только комбинации Улица–Город и Дом–Улица, поэтому в списках необходимо отображать информацию о родителе.

В таблицах родители справочных значений не показываются для компактности, но в выпадающих списках мы видим детальную информацию. Вот набор данных для примера из этой заметки:

enter image description here

Глубина связанности списков может быть любой, например, можно также включить Область в набор полей Объекта и выбирать город после выбора области.

Есть ещё такое ограничение, что среди прочих колонок, если таковые есть, ссылка на родителя должна быть левее всех. То есть, если мы ограничиваем дома по улицам, то колонка Улица должна идти до колонки Серия, которая тоже является справочной.

enter image description here

Обращение по API

При обращении за данными для выпадающего списка методом _ref_reqs необходимо передать в запросе два параметра: ID текущего объекта (параметр id) и ID значения из родительского списка (параметр r):

enter image description here

Запрос АПИ будет выглядеть примерно так:

https://app.integram.io/dtp/_ref_reqs/4152?JSON&id=4182&r=4162

В предыдущей статье я рассказывал, как мы использовали лайфхак с оплатой за конверсии в Яндекс.Директе. Помимо скрытой кнопки, которая появлялась по определённому и вполне логичному событию, мы также активно использовали так называемые «мусорные» ключи для привлечения рекламы по рекомендациям Яндекс.Директа.

Что такое мусорные ключи?

Это абстрактные ключевые слова, не несущие самостоятельного смысла, примерно как на картинке выше. Стоимость клика по ним может быть какой угодно, но мы ограничиваем её минимальной ценой, порядка 30 копеек за клик. Они могут быть нерелевантными к основной тематике вашего бизнеса, но при этом показываются, фактически, случайным пользователям, которые в итоге видят вашу «нерелевантную» рекламу.

Как это работает

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

Преимущества мусорных ключей

Низкая стоимость клика: Поскольку этих ключей много, цена за клик по ним может быть любой и, в некоторых случаях, значительно ниже, чем по популярным запросам. Мы ограничиваем цену и неизбежно получаем по ней какой-то трафик.

Широкий охват: Использование большого количества таких ключей позволяет охватить более широкую аудиторию, даже если она не является целевой.

Конверсия: Несмотря на то, что доля целевого трафика невелика, она всё же конвертируется в продажи. Это особенно эффективно, когда у конкурентов заканчиваются деньги на целевые ключевые слова, и ваша реклама начинает показываться за копейки.

Пример из практики

Мы заменяем Excel, которым пользуются многие предприниматели. Поэтому наш первоначальный набор ключей включал такие слова, как "кружка», «ложка», «миска», «нож», «подстаканник», «подлокотник», «Мерседес» и «BMW». Далее Директ начинает радостно подсказывать связанные, по его мнению, слова, размножая наш бессмысленный набор ключей до допустимого предела поряка 200 штук. В итоге, человек, который ищет шильдик для своего автомобиля, видит боковым зрением нашу рекламу о замене Excel и кликает по ней. За 30 копеек.

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

Минусы

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

Вывод

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

Неделю назад мы начали активное продвижение нашего Конструктора Интеграм, и, кроме прочего, я много общаюсь с директологами. Все они спрашивают о моем предыдущем опыте и сколько денег я готов закинуть в топку Яндекс.Директа.

Рассказ о моём опыте внезапно всех удивляет, в частности, сегодня я задал такой вопрос одному из специалистов: «Я получил 17 тысяч кликов на Директе, как думаешь, во сколько они мне обошлись?»

Ответ был: «Тысяч 200, наверное»

Предыдущий эксперт оценил мне 17000 кликов в 1.1 млн рублей, и это две границы диапазона значений, которые называют директологи за такую цель по конверсиям.

В то время как правильный ответ: «2500 рублей», что на пару порядков меньше оценки специалиста. Выше скрин из Директа со статистикой по кампании, а ниже приведена картина из Яндекс.Метрики, которая принимала весь это трафик.

enter image description here

Действительно, советы Директа приводят к определенным расходам бюджета без какой-либо гарантии результата. Этот сервис Яндекса прямо спрашивает о моих доходах со сделки и цинично предлагает отдать не менее 50% выручки в качестве рекламных расходов. Рекомендует 60%. При этом всём, суммы моей выручки являются моим ожиданием от кампании, а вот выручка директа — это реальный процент от этой воображаемой суммы.

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

Итак, в чем суть лайфхфака, который, как будто, не знают директологи? Казалось бы, очевидная вещь: мы ставим стратегию оплаты за конверсии, а целью считается нажатие на кнопку. Всего-то надо скрыть эту кнопку изначально на странице, и показывать по нажатию на другую кнопку. В нашем случае вначале должна быть нажата кнопка «Бронировать»:

enter image description here

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

Затем живой посетитель (не бот!) видит ссылку на страницу оплаты и принимает решение — купить ему услуги эксперта сейчас или же мучаться со своими экселями ещё какое-то время:

enter image description here

Интересно подобное попробовать самому? Подождите! Читайте статью про мусорные ключи и оставайтесь с нами, чтобы узнать больше.

Далее будет немного булшита букв от ИИ, как завершение статьи. Вы можете это не читать, это исключительно для SЕО. Спасибо!

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

Ключевым моментом является анализ и тестирование. Не стоит слепо доверять автоматическим рекомендациям — они могут привести к неоправданным расходам. Вместо этого, важно экспериментировать, отслеживать результаты и адаптировать кампании под свои цели.

Таким образом, успех в онлайн-продвижении зависит не только от размера бюджета, но и от умения эффективно его распределять.

Сегодня мы рассмотрим как подключить данные из веб-сервиса Интеграм к средству визуализации данных. Это может быть полезно, когда данных много и над ними требуется провести сложные или многочисленные вычисления. Обычно в подобной ситуации весь набор данных загружается в Power BI и обрабатывается там, однако это не всегда удобно и часто не под силу рабочей станции, где развернут Power BI.

enter image description here

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

В вашем Интеграме можно создать множество таблиц и запросов к ним, самостоятельно или с помощью аналитика Интеграм.

Список таблиц Интеграма

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

Структура данных в Интеграм

Мы создадим пользователя в таблице пользователей Интеграм и зададим ему пароль, который будем использовать для доступа из Power BI – жмем замок и не забываем сохранить сгенерированный пароль. Пароль будет задан и скопирован в буфер, и это изменение на форме надо сохранить. Можете сами придумать пароль и вбить его.

Редактирование отдельного пользователя для доступа к API

У пользователя есть Роли – в данном случае api, и для неё должен быть задан доступ к запросам, например, так:

Состав роли api

Далее в Интеграме выбираем нужный нам запрос к данным (или делаем его в конструкторе запросов) и запускаем:

Отчет по запросу в Интеграме

Скопируем адрес запроса и припишем к нему ключ JSON_KV, чтобы получить самый популярный формат JSON, который содержит только названия и значения колонок:

https://integram.io/alex/report/11278?JSON_KV

В Power BI есть такой источник данных как Интернет – выберем его при создании нового подключения:

enter image description here

Зададим адрес нашего отчета и нажмем ОК:

enter image description here

Далее вам понадобится ввести данные для доступа к Интеграму. Самый простой способ – выбрать Базовый, ввести пользователя и пароль, который вы задали ранее, и выбрать уровень доступа как на рисунке – на уровне имени вашей базы данных в Интеграме.

enter image description here

Когда вы сохраните эту форму, то получите набор данных, заданный отчетом Интеграма, и далее вы можете преобразовывать эти данные и использовать как угодно, как вы привыкли.

Данные из отчета Интеграма в Power BI

Итак, если вы хотите получить всю мощь для управления базой данных без необходимости изучать теорию СУБД и SQL, то вы можете изучить Конструктор Интеграм или попросить нашего аналитика помочь вам. Вся визуальная часть по-прежнему будет делаться в привычном для вас и вашего клиента инструменте.

Регистрация и 5 интерактивных уроков по Интеграму – здесь. Это достаточно просто!

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

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

Настройка состоит из таких шагов:

  1. Регистрация (1 минута)
  2. Создание опроса (2 минуты)
  3. Регистрация бота (1 минута)
  4. Настройка запроса для обращения к боту (6 минут)

Итак, погнали!

1. Регистрация

Регистрируемся в Интеграме через гугл в 1 клик или по почте здесь:

integram.io

2. Создание опроса

Делаем форму опроса, в меню Опросы создаем новый:

Создаем новую таблицу для нашего опроса

Создаем новую таблицу для нашего опроса:

enter image description here

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

enter image description here

Заявка на оценку будет невидимым полем, в котором будет храниться время создания заявки. Далее добавляем первое видимое поле – Имя создателя заявки – его можно выбрать из списка существующих в Интеграме полей. Нажимаем Добавить.

enter image description here

Теперь добавим поле Описание проекта – туда можно будет вбить несколько строк, поэтому выберем для него такой тип.

enter image description here

Осталось добавить ещё 1 поле – почту, на которую придет запрошенная информация. Выбираем Email из списка – он там есть.

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Теперь сделаем поля описания и почты обязательными, и наша форма готова.

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Теперь мы сделаем ссылку на наш опрос и получим код для вставки нашей формы на любой сайт. Переходим в настройке по кнопке слева вверху и делаем 3 клика, которые нам советует Мастер опросов – красная ссылка – нажмите здесь:

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Теперь мы можем скопировать отсюда ссылку на опрос или код для сайта:

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Откроем ссылку в режиме инкогнито и увидим форму глазами нашего клиента:

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Если мы заполним и отправим эту форму, то увидим результат в нашей новой таблице заявок в Интеграме:

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Видео-инструкция по созданию простой формы опроса:

https://rutube.ru/video/549098cbb63fb386a1cf1958eaa6bf40/

3. Регистрация бота

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

Находим @BotFather в Телеграме и регистрируем нового бота и имя для него:

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

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

Заходим к нашему новому боту и нажимаем Start / Начать – теперь мы готовы принимать здесь сообщения от него.

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

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

4. Настройка запроса для обращения к боту

Создадим новый запрос bot в меню Запросы:

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Добавим туда 3 вычисляемых поля, назвав первые два из них Email и Описание.

Нажать «вычисляемое» и поменять имя добавившейся колонки Нажать «вычисляемое» и поменять имя добавившейся колонки

К третьему вычисляемому полю примените функцию abn_URL, и должна получиться такая заготовка запроса:

Конструктор запросов умеет вычислять поля и обращаться вовне

У таблицы заявок каждое поле имеет свой код, и нам нужно скопировать их в формулы вычисляемых полей, как на рисунке. Для перехвата параметра используется конструкция 'request.tNNN', где NNN вы меняете на своё значение. Вставьте 'request.tNNN' в формулы первых 2-х колонок и исправьте NNN на ваши номера – их видно при подведении курсора к заголовку колонки таблицы.

Посмотрите эти номера в вашей таблице и заполните здесь формулы

Итак, этот запрос отобразит вам здесь переменные, переданные из вашей формы POST-запросом. Про это потом можно почитать тут, если интересны детали. А пока идём дальше.

В получившемся запросе нажмите кнопку, выделенную красным овалом, чтобы заполнить дополнительные свойства запроса.

Из конструктора запросов вы попадете на форму редактирования запроса

Здесь вам надо заполнить 2 поля: первое это адрес API бота, а второе - текст сообщения, состоящий из двух пришедших параметров – Email и Описание. Можете скопировать ссылку под картинкой и заменить коды своими значениями, полученными от BotFather.

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

https://api.telegram.org/bot[код BotFather]/sendMessage?chat_id=[чат ID]&text=[Email]-[Описание]

Последнее, что нам требуется сделать – это использовать этот запрос для обращения по API при создании записи в таблице заявок.

Для этого мы идем в меню Структура, где кликаем на заголовок прямоугольника Заявка на оценку и выбираем из выпадающего списка внизу « --- добавить новое --- »:

«добавить новое» – это первое значение в выпадающем списке колонок

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

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Теперь завершающий штрих, мы используем имя запроса, чтобы вычислить значение по умолчанию. Впишем в поле новой колонки bot имя запроса bot и сохраним это изменение значком дискеты.

Нажмите Enter или иконку диска, чтобы сохранить изменение

Теперь при заполнении формы будет вычисляться значение по умолчанию, которое мы здесь задали, – Интеграм найдет наш запрос bot, выполнит его, перехватит переданные параметры и передать их боту на отправку. Пробуем ещё раз отправить форму:

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Заявка будет отправлена, данные сохранены, а мы немедленно получим сообщение в Телеграм:

Форма заявок на сайт с оповещением в Телеграм за 10 минут (no-code)

Теперь вы знаете, как это делается, и по аналогии сможете создавать свои решения самостоятельно или обратившись за помощью к адептам Интеграма.

Спасибо!

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

Файлы можно загрузить вручную в меню Файлы:

enter image description here

Меню Файлы, папка templates – защищенные шаблоны

Если вы используете VS Code, то в нем есть плагин Run On Save, с помощью которого можно закидывать файлы в шаблоны Интеграма – в меню Файлы в папку templates. Он имитирует ручную загрузку с правами пользователя, роль которого имеет доступ к файлам.

В его настройках json можно использовать такой json, заменив {ВашаБД}, {ТокенАвторизации} и {ТокенXSRF} своими значениями:

{
  "folders": [
    {
      "path": ".."
    }
  ],
  "settings": {
    "emeraldwalk.runonsave": {
          "commands": [
        {
          "match": "integram-front/templates/.*html$",
          "cmd": "curl -v POST -H "Connection: close" -H "Content-Type: multipart/form-data" -H "x-authorization: {ТокенАвторизации}" -F "_xsrf={ТокенXSRF}" -F "add_path=" -F "upload=Загрузить" -F "rewrite=true" -F "userfile=@${file}" https://integram.io/{ВашаБД}/dir_admin/?JSON&templates=1"
        }
      ]
    }
  },
}

По аналогии можно сохранять файлы стилей и скриптов в папку download.

Заведите в своем Интеграме роль api и пользователя с этой ролью: enter image description here Роль с доступом на изменение файлов

Сгенерируйте этому пользователю токены в новом рабочем месте api и пользуйтесь своим любимым редактором! enter image description here По адресу /api теперь есть API-explorer

Спасибо и успехов!

Хочу рассказать (видео-формат youtube, rutube) про удобный инструмент для редактирования данных из разных таблиц в виде единой таблицы, как в Excel. Для наглядности мы часто собираем данные в отчеты, где их удобно изучать. Теперь эти данные можно редактировать прямо в отчете, и они будут компактно храниться в таблицах Интеграла, в отличие от Excel.

Интеллектуальный отчет для редактирования данных в таблицах

Рассмотрим отчет на примере простого набора связанных таблиц: услуги сервисного центра разделены по категориям, каждая услуга имеет разные цены, в зависимости от модели оборудования. Для оказания услуги требуются какие-то детали, которые закупаются по разным ценам у разных поставщиков.

Мы видим здесь 5 связанных уровней данных, по которым у нас построен запрос Мы видим здесь 5 связанных уровней данных, по которым у нас построен запрос

Запустить специальный режим работы с отчетом можно вот этой кнопкой в конструкторе запросов.

Интеллектуальный отчет для редактирования данных в таблицах

Здесь можно удобно и быстро фильтровать данные, сортировать их по нескольким колонкам – по убыванию или возрастанию, но самое главное – здесь их можно редактировать.

Интеллектуальный отчет для редактирования данных в таблицах

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

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

Интеллектуальный отчет для редактирования данных в таблицах

Теперь мы можем задать свойства новой услуги – указать её категорию и стоимость этой услуги для определенных моделей оборудования. Подходящие модели мы выбираем из справочника.

Интеллектуальный отчет для редактирования данных в таблицах

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

Интеллектуальный отчет для редактирования данных в таблицах

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

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

Интеллектуальный отчет для редактирования данных в таблицах

Это будет стоимость услуги для iPhone 12 и, задав цену, мы выбираем эту модель из выпадающего списка.

Интеллектуальный отчет для редактирования данных в таблицах

Давайте добавим цены двух деталей для услуги – гидры и шлейфа. Теперь похожим образом указываем для них закупочные цены от разных поставщиков. Таблица растягивается и трансформируется по мере ввода данных.

Интеллектуальный отчет для редактирования данных в таблицах

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

Интеллектуальный отчет для редактирования данных в таблицах

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

Интеллектуальный отчет для редактирования данных в таблицах

Вы можете удалить записи, просто стерев значения, например, цену закупки. Также очистятся значения полей удаленной записи, а после обновления отчета, пропадут и соответствующие лишние строки.

Интеллектуальный отчет для редактирования данных в таблицах

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

Вот эти 4 колонки позволят вам редактировать данные в отчете. В самом отчете идентификаторы будут скрыты.

Конструктор запросов и Структура таблиц Конструктор запросов и Структура таблиц

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

Для вашего удобства при наведении курсора на поле первой колонки таблицы в конструкторе запросов появляется кнопка [ID], по которой поле с ID и нужным именем добавляется автоматически:

enter image description here

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

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

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

Спасибо!