Портфолио и кейсы фрилансеров по интеграции сервисов по API

Иван Зарумный
Иван Зарумный 1 месяц назад
1С-Битрикс → Bitrix24: формы, корзина и защита заявок от спама
Унифицировал передачу заявок с действующего сайта на 1С-Битрикс в Bitrix24. В один технический контур были сведены обычные формы, обратный звонок, заявки на услуги, покупка в один клик и корзина, а защита от мусорных отправок была вынесена на серверную сторону до создания сущностей в CRM. Что сделано: — приведена к единой логике обработка нескольких типов заявок; — настроено формирование согласованного набора данных для Bitrix24; — добавлена серверная проверка входных данных; — добавлено скрытое поле-ловушка, проверка времени заполнения и ограничение частоты запросов; — подключены списки блокировки и отдельная обработка подозрительных контактов; — добавлен журнал запросов до побочных действий в CRM. Результат: формы и корзина получили единый маршрут до Bitrix24, а основные антиспам-проверки выполняются до создания лида или сделки. Стек: 1С-Битрикс, PHP, AJAX, Bitrix24, REST/API, серверная проверка, защита от спама.
Алексей Архипов
Алексей Архипов 1 месяц назад
Форма → API → CRM: проверка заявок и защита от дублей (демо)
Проверил локальный обмен заявками по HTTP между учебной формой и моделью CRM-реестра. Отправил четыре запроса с вымышленными данными. Две корректные заявки создали записи CRM-DEMO-001 и CRM-DEMO-002. Повтор с тем же внешним ID вернул статус «уже есть» без новой записи. Запрос с некорректным email получил ошибку проверки 422 и в реестр не попал. В исходных материалах сохранены код сервера и клиента и JSON-отчёт с результатами четырёх запросов. Три иллюстрации показывают маршрут данных, ответы API и итог. Это воспроизводимый локальный прототип, а не внедрение у заказчика. Живая форма, amoCRM/Битрикс24, авторизация, очередь повторов и уведомления не подключались. Для реальной интеграции потребуется согласовать поля, доступ к API, защиту данных и поведение при сбоях.
Анвар Нигъматянов
Анвар Нигъматянов 1 месяц назад
Панель проверки модели внутри Revit перед выдачей
Пример из практики. Экраны пересобраны заново, данные на них заменены — рабочие проекты закрыты NDA. Для кого. Для проектировщиков и BIM-специалистов, которые перед выдачей вручную проверяют, всё ли заполнено. Что делает. Проходит по элементам модели и проверяет обязательные параметры: марка, материал, объём. Сводит результат в таблицу и в три числа: сколько без замечаний, сколько с предупреждениями, сколько с ошибками. Почему это важно до выдачи. Элемент без марки не попадёт в спецификацию, а без материала посчитается неверно по объёмам. Обе ошибки всплывают уже у смежников или в смете, когда исправлять дороже. Панель открывается прямо в Revit, по клику на строку камера летит к элементу, отчёт выгружается в Excel. Стек: C# и .NET либо pyRevit, Revit API.
Анвар Нигъматянов
Анвар Нигъматянов 1 месяц назад
Установщик и автообновление для вашей программы
Пример из практики. Экраны пересобраны заново, данные на них заменены — рабочие проекты закрыты NDA. Для кого. Для тех, у кого уже есть самописная утилита, но пользуются ей полтора человека: у автора работает, у остальных нет. На что смотреть. Здесь показана та часть, которую почти всегда пропускают. Программу пишут, а доставку — нет: установщик, версии, обновление, откат. Обновление приходит само, ставится в один клик и показывает, что изменилось. Если новая версия оказалась хуже — возврат на предыдущую тоже в один клик, без переустановки и без обращения к разработчику. Стек: C# и .NET, сборка установщика, каналы обновлений.
Анвар Нигъматянов
Анвар Нигъматянов 1 месяц назад
MCP-сервер: ИИ-клиент работает с вашим сервисом напрямую
Пример из практики. Экраны пересобраны заново, данные на них заменены — рабочие проекты закрыты NDA. Для кого. Для тех, у кого есть своя система и есть желание спрашивать её обычными словами, а не собирать отчёты руками. Как работает. Ваш сервис превращается в набор инструментов, которыми ИИ-клиент пользуется напрямую: искать заявки, строить отчёт, создавать задачу. На что смотреть. На список того, что открыто наружу. Права важнее возможностей: отдаются только нужные операции, и почти все на чтение. В примере видно, как модель создала задачу, но не стала менять статус заявки — не потому что её попросили этого не делать, а потому что такого инструмента ей не выдали. Это принципиальная разница: запрет в инструкции обходится уговорами, отсутствие инструмента — нет. Стек: TypeScript или Python, протокол MCP, разграничение прав на уровне инструментов.
Анвар Нигъматянов
Анвар Нигъматянов 1 месяц назад
Договоры и акты собираются из строк таблицы пачкой
Пример из практики. Экраны пересобраны заново, данные на них заменены — рабочие проекты закрыты NDA. Для кого. Для тех, кто готовит однотипные документы по многу штук: договоры, акты, счета, коммерческие предложения. Как работает. Отмечаете строки в таблице, нажимаете кнопку, получаете готовые файлы в Word и PDF плюс реестр того, что сформировано. На что смотреть. Три места, где ручная подготовка даёт ошибки: сумма прописью, склонение ФИО и дата словами. Их правят руками чаще всего, и именно в них чаще всего остаётся текст от прошлого договора. Здесь все три считаются из строки таблицы. Шаблон остаётся вашим обычным файлом Word — поправить формулировку сможет юрист, без программиста. Стек: Python, docxtpl, выгрузка в Word и PDF.
Анвар Нигъматянов
Анвар Нигъматянов 1 месяц назад
Google Таблица собирает отчёт по кнопке и напоминает о зависших заявках
Пример из практики. Экраны пересобраны заново, данные на них заменены — рабочие проекты закрыты NDA. Для кого. Для команд, которые уже живут в Google Таблицах и не хотят переезжать в CRM. Что делает кнопка. Сводит листы за период в один, считает итоги по людям и этапам, кладёт результат на отдельный лист и отправляет ссылку руководителю в чат. Что делает сама таблица, без кнопки. Подставляет цены из справочника, считает НДС и маржу, подсвечивает строки без суммы и напоминает о заявках, которые не двигаются третий день. Почему это не макрос Excel. Таблица живёт в браузере, работает у всех одновременно и не требует установки. Скрипт лежит внутри самого файла: копируете таблицу — копируется и он. Стек: Google Apps Script, триггеры по времени и по правке.
Анвар Нигъматянов
Анвар Нигъматянов 1 месяц назад
84 файла Excel в одну сводную таблицу за один запуск
Пример из практики. Экраны пересобраны заново, данные на них заменены — рабочие проекты закрыты NDA. Для кого. Для тех, кто раз в месяц собирает десятки однотипных файлов от объектов, филиалов или менеджеров в одну таблицу. На что смотреть. Не на количество файлов, а на отчёт об обработке внизу. Ручная сборка ломается не на объёме, а на том, что у части файлов колонки называются иначе: где-то «Сумма», где-то «Стоимость». Скрипт сопоставляет такие колонки по словарю, а то, что сопоставить не смог, честно перечисляет по именам файлов. Без этого три листа из восьмидесяти четырёх теряются молча, и расхождение находится через месяц. Исходные файлы не изменяются: результат кладётся в новый. Стек: Python, pandas, openpyxl. Запуск двойным кликом или по расписанию.
Анвар Нигъматянов
Анвар Нигъматянов 1 месяц назад
Телеграм-бот записи: заявка, выбор даты, таблица и напоминание
Пример из практики. Экраны пересобраны заново, данные на них заменены — рабочие проекты закрыты NDA. Для кого. Для тех, у кого запись идёт в переписке, а потом теряется: договорились в чате, забыли перенести в таблицу, клиент не пришёл. Что на макете. Слева диалог клиента с ботом, справа таблица заявок, которая заполняется сама. На что смотреть. Диалог собран на кнопках, а не на свободном вводе. Бот, который «понимает всё», на практике собирает мусор: люди пишут дату десятью способами. Кнопки дают предсказуемые данные, а на свободный текст остаётся один шаг — телефон, и тот проверяется по формату до записи. Занятые слоты бот не предлагает, за сутки напоминает клиенту, а ответственному сразу пишет в чат. Стек: Python, aiogram, Google Sheets или база. Разворачиваю на сервере заказчика.
Анвар Нигъматянов
Анвар Нигъматянов 1 месяц назад
Сбор каталога сайта в таблицу: цены, наличие, артикулы
Пример из практики. Экраны пересобраны заново, данные на них заменены — рабочие проекты закрыты NDA. Для кого. Для тех, кто вручную переносит цены и характеристики с сайта поставщика в свою таблицу и делает это регулярно. Что на макете. Слева страница каталога, справа готовая таблица, снизу журнал сбора за один прогон. На что смотреть. На журнал. Сбор идёт с паузами и повторами, а не в сто потоков: так он не создаёт нагрузку на чужой сайт и не отваливается на первой же ошибке. Видно, как страница отдала ошибку сервера, скрипт подождал минуту и забрал её со второго раза. Отдельно: карточки без цены не выбрасываются молча. Они попадают в таблицу с пометкой — иначе о пропаже узнаёшь через месяц, когда цифры уже разошлись. Собираю только открытые данные и в рамках правил сайта. Обход защиты и авторизации не делаю. Стек: Python, Playwright, pandas. Запуск по расписанию или вручную двойным кликом.