AxIT | НИОКР | Битрикс24
23 subscribers
3 photos
1 video
15 links
Создание заказных и тиражных приложений для Битрикс24. Исследование кода и новых возможностей. Кейсы использования.

Список наших приложений: https://clck.ru/3QXDnS
Используете Битрикс24 — присоединяйтесь!


📩 обратная связь: @axit_support_robot
Download Telegram
Реализация динамической карточки

Конечно, для коробки это не сильно сложно реализуется и вполне выполнимо, но тут был запрос про облако.
Запрос показался интересным и конечно же мы начали свое исследование.

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

Это именно концепт, даже до MVP еще очень далеко. Основная сложность тут будет в качественной настройке и большом разнообразии. Но это дело наживное.

Добавили это к списку будущих приложений. Тиражная версия будет ограниченной, расширенная с дополнениями.

#ниокр
#текущее
👍1
Динамический вид детальной карточки

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

Исходный запрос, с чего все началось был примерно такой:
Есть сделки с большим количеством полей, на определенной стадии эти поля должны заполнять профильные специалисты, и чтобы им не искать нужные поля, можно ли как-то сделать динамический вид карточки, чтобы на определенном этапе им отображались только нужные поля, а другой стадии - другие.
This media is not supported in your browser
VIEW IN TELEGRAM
👍3🔥2🤔1
Отличный отзыв на приложение

Помните наше приложение "Работа с шаблонами задач" и обращение в техпод по поводу чек-листов?
Вдруг забыли - https://t.me/axit_rnd/15

Мы успешно отработали эту заявку, починили, протестировали и отписали клиенту, заявку закрыли как успешную.
И вот сегодня прилетел отзыв.

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

#отзыв
#текущее
👍5
Добавление товаров в сделку из определенного склада

Периодически всплывает такой вопрос.
Поискали существующее приложение, глянули штатный функционал. Не нашли.

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


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

Приступили к тестам.
Глянули доку, нашли методы, два.
Запросили товарную позицию в сделке. Поймали ИД склада. Обрадовались, т.е. данные присутствуют.
Сделали скрипт, повторяющий данный массив и сохраняющий в сделке. Выполнили. Товар зарезервировался из дефолтного склада.
Взяли весь полученный массив товарной позиции, поменяли только ИД склада, сохранили. Товар из дефолтного склада.
Хм. Сходили за чаем, ромашковым.

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

Попробовали не добавлять сразу все товарные позиции, а сделать ее обновление. Т.е. берем запись, читаем, меняем ИД склада, обновляем. Результат не изменился, получился опять дефолтный склад.

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

Посмотрели прямые методы работы реста по работе с товарными позициями, нет ли там инфы по обходному пути записи ИД склада для товарной позиции.
Не нашли.

Еще раз подняли доку. Нашли, что поле склада - только для чтения.
Приняли, что текущая гипотеза не сработала. Переходим к следующей.

Следующая гипотеза была:
а давайте выставим нужный склад дефолтным, добавим товарную позицию, а потом вернем нужный дефолтный склад.

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

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

Передаем в рест метод обновления установку склада по умолчанию.
Не работает. Странно.
Логируем входящие параметры в самом методе.
И опа! А нету наших параметров. На входящем префильтре режутся.
И эта гипотеза не сработала.
Печаль, беда.

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

#ниокр
🤔3👍1
Стикеры в чатах

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

Нам показалось это интересно и мы решили разобраться в этом вопросе, конечно же речь про облако в контексте приложений.
Необходимо было исследовать ряд возможностей:
- Добавление своих паков;
- Раздача паков на пользователей;
- Работа с изображениями, добавление\удаление, ну хотя бы просто добавление.

Добавление своих паков.
Тут проблем не возникло, сами паки успешно добавляются. Тут все просто и прозаично.
И это хорошо.

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

Работа с изображениями.
И тут засада, откуда не ждали.
Удаление - без проблем.
А вот добавление… Его просто нет :)
Точнее есть, но оно:
- Работает на компонентах б24, т.е. в ресте такой возможности нет;
- Не просто добавляет файлы, тут бы еще можно было поэкспериментировать с загрузками, а добавляет временный файл, который возвращает его uuidf (или как то так), это такой длинный идентификатор, вызывает метод добавления изображения ссылаясь на этот идентификатор, а потом удаляет по этому идентификатору временный файл.
На этом все и сломалось.

Появилась гипотеза, как загружать файл, но под нее только стенд пару дней настраивать, пока отложили.
Второе неудачное исследование подряд, нужно срочно найти что-то положительное.

#ниокр
3🔥1🤔1
Поздравление с праздниками

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

При работе с клиентами, очень важно поддерживать контакт с ними. Чтобы клиентам было приятно, чтобы они вас не забывали, чтобы в случае возникновения вопросов не искали бы у кого спросить, а сразу обращались к вам. Да, когда вы только внедряете новый проект или новый функционал, вы находитесь в непосредственной связи с клиентом и он помнит о вас.
Но вот проект завершен, функционал настроен, люди обучены и понимают как работать и прямо сейчас уже ничего больше не надо. Тут нужно уже искать предлоги для выхода на связь с клиентом. Например, можно рассказывать о новинках, важно не перегнуть палку и понимать потребности клиента, чтобы не выходить с новинками SSO или там какой-нибудь LDAP (что это вообще такое).

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

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

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

У данного приложения интересная судьба. Мы его задумали почти два года назад, поискали в маркете, подходящего не нашли, ну и в течение 2х месяцев неспешно реализовали. Нашли базу, настроили, проверили, все работает, осталось оформить. Но какие-то факторы мешали этому, поэтому приложение простояло без дела почти девять месяцев, а потом родилось. Хоть оно и не получило должного развития, но считаем его полезным и нужным. Первое рабочее название было "Поздравление с профессиональными праздниками", но официальных таких праздников не очень много, поэтому решили расширить фокус и добавить другие праздничные дни.

Напоминаю название и ссылку:
"Поздравления с праздниками".
Находите, устанавливайте, пользуйтесь.

#приложения
👍4
Опять в интернете кто-то неправ

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

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

И что тут делать?
Писать в техпод? Они запросят скрины подтверждения и поставят в бэклог или вообще проигнорируют. Да и из-за большого временного лага весь запал иссякнет, ну неправ и неправ, забыли.

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

А иначе, как жить, когда в интернете кто-то неправ?

#текущее
💯2🔥1
Результат задачи

Что является результатом задачи? Наверное какое-то действие.
А как его оценить? Надо взять этот результат и проверить на соответствие заданию.

Поступила к вам задача, вы чего то по ней делаете, сделали, у вас готов тот самый результат. Т.к. задача у нас в Битрикс24, то и результатом будет какой-то текст и\или файлы. В нашем случае все просто. Зашли в задачу, описали свой результат, приложили файлы и можно закрывать задачу и отправлять ее на контроль. Вроде схема простая и не требует какой -то автоматизации. В общем да, все так и есть, для простых случаев ничего дополнительно делать не надо.

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

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

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

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

Сделали активити, рабочее название, ни за что не догадаетесь!
"Добавить результат задачи".
Запрашивает:
- Ид задачи, куда надо добавить результат;
- Описание результата, можно добавлять ббкоды, в рамках поддерживаемых самим функционалом результата;
- И возможность указать ИД файлов на диске, которые нужно приложить к результату. Поддерживается множественность, т.е. приложить можно больше одного файла.
Провели экспресс-тесты, они прошли успешно.

Приложение на оформлении, планируем отправить на модерацию к концу недели.
Тем не менее, все желающие могут написать нам, чтобы попробовать в работе данное приложение до его выхода в маркет. Написать можно хоть в наш техпод, так и в комментах.

📍Навигация по каналу.

#приложения
5🔥1
Сколько раз исполнитель может переносить сроки в задаче?

Это немного философский вопрос.
Я считаю - нисколько. Но Битрикс24 так не считает, поэтому сделал новую настройку для задач. В частности там есть:
- Проконтролировать задачу после завершения (это уже было и раньше);
- Разрешить исполнителю менять крайний срок (тоже было);
- Запрашивать причину (это новое)
- Ограничить по дате или количеству. Это новое и бомбическое.
Т.е. можно поставить задачу из бп и настроить такие параметры.

Один минус, нет сейчас таких настроек в активити создания задачи.
Ладно, идем в маркет, гуглим, а тоже ничего такого нет.
Странно, но не смертельно.

Начинаем исследование.
Методы изменения настроек есть. Вроде даже все подходящие.
Отдельный вопрос, что выносить.
- Автоматически указывать крайний срок в новых задачах. Это сомнительная история, мы же говорим про текущую задачу, зачем нам новые, тем более крайний срок в них. Отбрасываем.
- Пропускать выходные дни. У нас бп, крайний срок мы все равно как то вычисляем, поэтому прибавлять все дни или только рабочие, это изменение только функции вычисления дней. Тоже отбрасываем.
Остальное берем в разработку.
На все параметры есть изменения.

Решили не дублировать весь функционал создания задачи, учитывая, что он не самый простой. Добавим только изменение настроек.
Делаем активити, проверяем, все работает.
У нас уже есть клевое приложение по задачам "Набор роботов для работы с задачами", добавляем туда новое активити. Искать "Настройки задачи". Оно уже сейчас есть в маркете, можно устанавливать и пробовать. Запрашивает ИД задачи и параметры настройки.

Вроде все норм.
А теперь берем ситуацию.
У нас есть БП, где мы ставим задачу, конечно же ставим параметр "Остановить процесс на время выполнения задачи", нам же нужно подождать когда задача будет выполнена.
Но дело в том, что создание задачи есть, пауза есть, а куда добавить наше новое активити - непонятно.
Т.е. задача стоит и надо как-то внутрь добавить изменение настроек.

Как выйти из этой ситуации?
Решение простое.
Надо сделать параллельное выполнение.
В левой части у нас активити создания задачи. А в правой наше новое активити по изменению настроек, куда передаем параметром ИД созданной задачи.
Проверили, все отлично отрабатывает, задача создается в ожидании, настройки успешно применяются.

Вы пользуетесь этим функционалом?

📍Навигация по каналу.

#задачи
#приложения
🔥3👍2
Свои пункты в главном меню

Намедни анализировали как повысить заметность своего приложения на порталах клиентов.
Да, когда оформляем приложение в ЛК, там есть пункт - добавить пункт в главное меню.
Но:
- Может мне надо назвать пункт по-другому, а не по названию приложения;
- Может быть куча дублей. Например у нас все названия приложений начинаются на: "Самое лучше приложение …". В результате в главном меню куча "Самое лучшее …" (дальше не входит) и непонятно куда жать;
- Надо как то выделить пункт своего приложения, например символом или логотипом.

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

Но тут подумалось.
Когда устанавливаешь приложение и оно добавляет свой пункт в раздел "Приложений", логика понятна. И когда удаляешь приложение, пункт тоже удаляется. Отличная и понятная логика.
А вот когда добавляешь свой пункт уже из приложения, то с удалением приложения он не будет удаляться и останется с нерабочей ссылкой.
Это будет не совсем правильно и будет вызывать негатив пользователей. Конечно, мы знаем, что наши приложения не удаляют, но вдруг у кого рука дрогнет и удалит.
Данный вариант имеет право на жизнь, но чуток сомнителен.

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

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

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

📍Навигация по каналу.

#ниокр
👍1
День недели (четвертый четверг)

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

Приложение "Набор роботов для работы с датами"
Само приложение содержит в себе несколько активити. Чтобы не засорять список активити приложений, мы сделали возможность установки только тех , которые вам нужны. Если же такая необходимость пройдет, всегда можно удалить такое активити.

Настройка активити типовая для всех наших приложений такого типа. Есть пункт в меню, открыв который вы видите список всех доступных активити и их статус. Если нужное активити еще не установлено, то нажав на соответствующую кнопку его можно установить.

Так вот.
Активити "День недели".
Это активити позволяет вычислить дату определенного дня недели.
Например, третий понедельник или четвертая пятница.
Чтобы была какая то привязка, то есть отдельное поле, так называемая, точка отсчета. Если поле пустое, то считается от текущей даты, но туда можно указать любую другую валидную дату и отсчет уже пойдет от нее.

Такие вещи как:
- Третий понедельник после 04.06.2026;
- Вторая среда после 01.01.2027;
- Пятая пятница после 05.05.2025 - в общем тоже не проблема.
Такие задачи легко решает это активити.
В возвращаемых результатах будет указана рассчитанная дата.

📍Навигация по каналу.

#приложения
🔥4
Разница в датах

Продолжение рассказа про приложение "Набор роботов для работы с датами".

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

У нас еще развернулась дискуссия, а что считать промежутком в "месяц", достаточно ли будет считать промежуток в 30 дней или надо считать по другой формуле. Весь удельный вес дня в разрезе месяца сильно зависит от того, какой это месяц.
Например удельный вес дня в феврале почти на 3% больше, чем в месяцах, где количество дней 31.
И что между 05.01 и 05.02 проходит сильно больше дней, чем между 05.02 и 05.03.
Более того, вес дней в феврале почти на десять процентов больше дней в месяце, где тридцать один день.
На что нам ответили (цитата не точная) "не морочьте нам голову, тридцать дней для расчета - вполне хорошая оценка". На этом и сошлись.

И, несмотря на то, что бОльшую часть расчетов с датами в БП можно выполнить в рамках штатного функционала, с различной степенью трудозатрат, тем не менее, мы выпустили дополнительное активити "Разница между датами".
Работает очень просто.
На входе две даты со временем, в возвращаемых параметрах:
- Разница в минутах;
- Разница в часах;
- Разница в днях;
- Разница в месяцах;
- И! разница с месяцах с точностью до первого знака после запятой.

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

📍Навигация по каналу.

#приложения
🔥5
Новый шаблон навигации

Напомню, у нас есть параллельный проект, не связанный с Битрикс24.
Проект "навигация по телеграмм каналу". Сам бот и канал с описанием (invite_axit_promo - а это инвайт, который надо ввести при регистрации в боте)
Это проект предназначенный для создания удобной навигации по каналу. Автор канала сам его настраивает и заполняет, все делается в соответствующем боте.
Есть тестовый демо период с полным функционалом.

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

Новый простой блочный шаблон с поиском содержит в себе:
Блоки:
- 4 блока;
- цвет блока;
- список ссылок с описанием в каждом блоке;
- поиск по заголовкам и описанию;
- возможность делать ссылки на внешние ресурсы.

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

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

📍Навигация по каналу.

#текущее
#навигация
👍2
AxIT | НИОКР | Битрикс24
Вот так сейчас он выглядит.
Вызвать можно:
- из закрепа, нажав на кнопку "Навигация";
- из отдельного поста, нажав кнопку "Навигация";
- внизу поста, нажав на "📍Навигация по каналу."
👍1🔥1
Отслеживание перехода по ссылке

Сегодня расскажу про наше приложение "Короткая ссылка с триггером".
Это сокращатель ссылок.
Но что отличает это приложение от, довольно большого, количества подобных приложений?

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

Рассмотрим пару кейсов.
Сделали мы пакет документов для клиентов, отправили ему ссылку на всю папку, кстати, такую ссылку можно сделать через наше приложение "Набор роботов для работы с диском", но об этом в другой раз.
Так вот, сделали доки, отправили клиенту, а там сроки горят, ну, как обычно.
Посмотрел клиент, не посмотрел, чтобы каждые 5 мин его не теребить, как отследить это событие?

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

Чего достигаем.
- Сокращаем лаг в коммуникациях с клиентом;
- Не беспокоим до момента, когда он пошел по нашей ссылке. Вариант, когда клиент тянет сроки, тут не рассматриваем;
- Производим эффект магии (магию мы любим). Пошел посмотреть, а тут тебе сразу звонок. Магия;
- Наша сделка сразу прыгнула дальше по воронке.

Или вот еще кейс.
У нас оффлайн мероприятие. Мы выдали раздатку с нашим сайтом. Как определить кто пришел с нашего мероприятия?
Ладно адрес нашего сайта или бота, клиент еще как то наберет, но вот UTM метки точно не будет набирать (конечно же у нас метки трехэтажные, чтобы не было просто).

Наше приложение поможет и в этом вопросе.
Оно генерирует QR код, в который можно зашить нужную UTM метку для статистики.
Т.е. сделали ссылку с адресом и нужной UTM меткой, сгенерировали QR код, напечатали этот код на раздатке (или наклеили сверху, это сильно проще). И всё.
Клиенты отсканировали код, перешли на сайт, метка зачлась в статистику. Через Х дней смотрим статистику, кто вообще перешел и какой отклик.
Можно даже не просто на сайт сделать переход, а на какую-то страницу, которая не выведена в общий доступ, для специального предложения участникам оффлайн мероприятия. Тут поле для раздолья и автоматизаций.

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

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

📍Навигация по каналу.

#приложения
🔥2
Будни нашего техпода

Знаете, создание приложения - это не самый простой процесс:
- У вас есть ряд гипотез для приложений;
- Вы их как то ранжируете;
- Проводите эксперименты;
- Делаете MVP;
- Проводите какой-то опрос;
- Делаете тесты работоспособности;
- Оформляете карточку приложения;
- Описания, картинки, видео, вычитки, очепятки и ашыпки - отдельная больная тема;
- Прошли модерацию, возможно даже, не с первого раза;
- Выкатили;
- Собрали обратную связь;
- Сделали доработки.

Вроде все, пора почивать на лаврах.
Но это только начало.
Дальше идет процесс эксплуатации и поддержка пользователей.

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

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

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

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

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

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

📍Навигация по каналу.

#техпод
4🔥1
AxIT | НИОКР | Битрикс24
Результат задачи Что является результатом задачи? Наверное какое-то действие. А как его оценить? Надо взять этот результат и проверить на соответствие заданию. Поступила к вам задача, вы чего то по ней делаете, сделали, у вас готов тот самый результат. Т.к.…
Запись файла с диска в сделку

У нас вышло приложение, о котором писали ранее (всего то месяц прошел):
"Добавить результат задачи"
Как и было описано, на вход принимает ИД задачи, текстовый комментарий и ИД файлов с диска. Добавляет комментарий к указанной задаче и отмечает его как результат.
Тут все прозаично и ожидаемо.
Так же у нас есть приложение по получению результатов задачи. Там тоже все прозрачно. На вход ИД задачи, на выходе текстовое описание, ИД файлов на диске. Это по последнему результату задачи.

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

Но поговорить хотел не об этом.
Расскажу наши тесты по поводу преобразования файлов.
Вот возьмем задачи, чтобы было в тему, файлы результатов работы задачи. И поля CRM сущностей.
Это два разных типа файлов и передача между ними не самая простая.
Рабочая связка - это передача из CRM в задачу. Мы достаем файл из CRM, записываем его на диск, получаем ИД файла на диске и записываем в задачу (в результат задачи). Это решается штатно через БП. Уверен, это умеют все.

А вот обратное движение.
С задачи (результата) мы получили ИД файла на диске. И как его записать в поле сделки?
Можно записать через БП напрямую и это даже сработает, ну, с какой-то долей вероятности, если вы с ИД файлами попали. Но файл будет совсем другой.
Это разные типы данных, даже если они и пересекаются по ИД, они будут ссылаться на совершенно разные файлы. Правильное преобразование через БП работает только на старших тарифах и работает совершенно неочевидно, хотя и корректно.

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

Теперь чуть подробней.
Мы сделали активити "Получить ИД файла для переноса", которое можно найти в нашем приложении "Набор роботов для работы с диском". Как оно работает, на вход ИД файла на диске, на выходе ИД файла для записи в сделку.
И!
Оно успешно записывает!

Но есть подводные камни.
Как работает система хранения файлов в модуле диск. Есть таблица, там есть ИД файла на диске и уникальное произвольное имя. И есть вторая таблица, где сопоставляется это уникальное произвольное имя с правильным именем файла. А еще есть третья таблице, где есть соответствие ИД файла на диске и ИД самого файла. В процессе запроса происходит связка этих таблиц и выдается ИД файла на диске с правильным именем.
Но нам то нужен не ИД файла на диске, а ИД самого файла, т.е. связка происходит неполной. Мы получаем нужный ИД файла + произвольное имя файла.
Т.е. в сделку записывается правильный файл, но у него совершенно некорректное имя файла.

К слову сказать, просмотр этих файлов работает корректно. Попробовали на docx\xlsx документах. Они открылись и правильно отобразились все данные при просмотре.

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

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

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

А как вы записываете файлы с диска в сделку?

📍Навигация по каналу.

#приложения
#ниокр
🔥2
Операции с массивами

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

Там есть:
- Достать элемент массива;
- Удалить элемент;
- Взять последний элемент;
- Посчитать количество;
- Посчитать суммы;
- Сортировка;
- Количество уникальных элементов;
- Даже создание таблицы в паре вариантов есть.
Чуть подробнее про все это я расскажу в другой раз.

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

И тут.
Неожиданно к нам в техпод пришло два обращения.

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

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

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

А какой мелочи не хватает вам в активити?

📍Навигация по каналу.

#текущее
#техпод
#приложения