Automation · in daily use

Commerce automation

The automation behind a clothing manufacturer's catalogue. One Telegram upload updates YouTube, the team chat, product photos, descriptions, marketplace feeds and the CRM.

Commerce automation
Years
2025–2026
Status
In daily use, in-house
Scale
85 commits, 20 test files
Stack
aiogram 3 · FastAPI · Celery · Redis · Supabase · YouTube Data API · Gemini · OpenAI · FFmpeg · GitHub Actions
  • 6jobs from one upload
  • 85commits, March–September 2026
  • 20test files covering the pipelines
  • git pushis the whole deploy

The problem

Managers uploaded product videos to YouTube, wrote descriptions, resized photos and assembled files for Rozetka, Prom, Epicentr and the CRM by hand, for every product.

How it works

  1. 01

    Telegram bot

    Managers send a video or photos to a bot built on aiogram 3 with a small state machine for each upload.

  2. 02

    Queues

    A FastAPI webhook puts jobs on Celery queues backed by Redis, so slow uploads never block the chat.

  3. 03

    Video pipeline

    The original goes to YouTube; FFmpeg adds an overlay and the result is posted to the team group.

  4. 04

    Photos

    Multi-photo uploads are converted to 600×900 JPG for the store.

  5. 05

    Descriptions

    Gemini writes YouTube copy with model failover, retries and quota handling. Feed texts come from OpenAI and pass an AI check before publishing.

  6. 06

    Feeds and CRM

    XML/YML feeds for Rozetka, Prom and Epicentr, and price sync with SalesDrive.

  7. 07

    Deploy

    git push runs GitHub Actions on a self-hosted Windows runner, restarts the NSSM services and reports to Telegram.

Telegram botaiogram 3, FSMWebhookFastAPIQueuesCelery + RedisYouTubeoriginal videoTeam groupFFmpeg overlayJPG 600×900product photosGemini ⇄ fallbackretries, quotasMarketplace feedsRozetka · Prom · EpicentrSalesDrivepricesGitHub Actions → Windows runnerNSSM services, Telegram report

Limits I know about

  • Business volumes stay internal, so this page shows how the system works rather than sales numbers.

Need something like this?

Tell me about your task and data. I will answer with how I would approach it.

Discuss a project →