[Кейс] как я упростила создание UTM с помощью DeepSeek

Предыстория: рутина, которая съедала время Как SMM я часто сталкиваюсь с задачей: создавать UTM-ссылки для постов в соцсетях. Сейчас я веду три и для каждой у меня есть свои условные коды и параметры. Дело пустяковое, а время съедает.

Руками это выглядело так: открываешь ссылку, вручную (или через ИИ) добавляешь ?utm_source=telegram&utm_medium=social&utm_campaign=…, отдельно формируешь редиректы (это чтобы ссылка не выглядела жутко) вида https://домен/231126_030/, проверяешь, ничего не перепутала — и так для каждой соцсети, а потом передать это всё админу для донастройки. Я понимала, что эту задачу можно автоматизировать, но с нуля писать бота — это сервер, код, деплой… И тут я решила: а давай попробуем с DeepSeek!

Первый промт Я написала: «Напиши чат-бота для телеграм. UTM должны содержать источник, тип трафика, кампанию (генерировать из ссылки). Формат вывода: название соцсети, ссылка с UTM, переадресация. Дату публикации запрашивать у меня». Я даже не знала, что такое python-telegram-bot или aiohttp. Просто сказала: «Вот что мне нужно, сделай».

Первая версия: код есть, но он не работает DeepSeek выдал структуру: bot.py, config.py, utils.py, requirements.txt. Я скачала, попыталась запустить — и ничего не работало.

Проблема №1: Python не установлен. python --version — пустота. Оказалось, на компьютере вообще не было Python. Установила Python 3.12.8. Заработало! Проблема №2: Python 3.14 на Render. Задеплоила, а он взял Python 3.14.3 — бета-версию. Бот падал с ошибкой RuntimeError: There is no current event loop. Пришлось фиксировать версию 3.12.8 через файл .python-version и переменную окружения. Проблема №3: Markdown ломал ответы. Telegram выдавал Can’t parse entities. Убрала всё форматирование — отправляю обычный текст. Проблема №4: Бот засыпал на Render. Бесплатный тариф усыпляет сервисы. Добавили веб-сервер на aiohttp с health check — бот перестал засыпать. Проблема №5: Conflict при перезапуске. Ошибка terminated by other getUpdates request — старый экземпляр не отключился. Решение: подождать 2-3 минуты.

Эволюция бота Добавили иностранные соцсети — коллега ведёт другую группу соц.сетей: однообразие формирование данных — друг качественной аналитики. Сделали два режима: русские и иностранные. Убрали хардкод доменов — теперь бот работает с любыми ссылками, автоматически извлекая домен. Улучшили обработку ошибок: проверка ссылки и даты, человечные сообщения, глобальный error handler.

Развёртывание Изначально я хотела развернуть бота на Render для круглосуточной работы. Но потом поняла: «Этот функционал нужен для рабочих задач, а их я решаю на рабочем компьютере». Так появилась идея локального запуска. Создали универсальный .bat файл без жёстких путей. Теперь я просто кликаю на run_bot.bat — и бот работает.

Что получилось Бот поддерживает 8 соцсетей (3 русских и 5 иностранных), работает в двух режимах, автоматически определяет домен и генерирует кампанию из ссылки. Создаёт редиректы с датой и кодом соцсети, выдаёт сводку. Обрабатывает ошибки с понятными сообщениями. Запускается локально с любого ПК.

Что я узнала DeepSeek — отличный напарник: не просто пишет код, но и объясняет ошибки, предлагает решения. Python оказался проще, чем я думала. Ошибки — это нормально, главное читать логи. Универсальность важна: бот работает с любыми доменами и ссылками. Рабочий компьютер — идеальное место для рабочего бота, не всегда нужен сервер.

Заметка разработчикам: я ни в коем случае не кодер и не вайбкодер, я просто люблю баловаться с нейросетями. Чур, не ругаться на меня и DeepSeek 🙈

[Кейс] как я упростила создание UTM с помощью DeepSeek | Сетка — социальная сеть от hh.ru