Novetex store and back-office automations — the full ecosystem
By Péter Ujvári · May 4, 2026 · 9 min read · Client: Novetex Matrac (Showroom + Duna Plaza)
TL;DR
The daily operation of Novetex's two main stores (Showroom and Duna Plaza) was automated on a hybrid Python + Swift/SwiftUI + Playwright + n8n stack. Six core modules run in production: manual invoice processing into SQL Ledger, daily revenue Excel automation, invoice → customer email preparation (macOS Mail), cash-register close verification, attendance and order data extraction, plus single-purpose helper utilities. The architectural principle: human in the critical send/approval step, automatic logging, backup before any Excel modification, one-click execution via Apple Shortcuts integration.
Overview
The daily operation of Novetex's two main stores (Showroom and Duna Plaza) consists of many small repetitive back-office tasks: invoice processing, report generation, cash-register close, customer email preparation. Each on its own takes 5–30 minutes — together 2–4 hours a day. With a hybrid automation stack, these processes are handled by one-click background automations, while human judgement remains at the critical points (e.g. sending email, closing the cash register).
1. Manual invoice processing, SQL Ledger and reporting
Native macOS app (Swift / SwiftUI)
Store-context selection (Showroom vs. Duna Plaza), invoice-image and order-PDF path configuration, user-initiated launch of the background process. The UI replaces the command line — the store staff can launch it themselves.
Python service / package
Structured record extraction from invoice and order documents using an OpenAI-API-supported extraction module. From the data: Excel writing, email sending and data entry / form filling on the SQL Ledger UI. A central pipeline links the steps — one command runs the entire processing path.
Cloud trigger
Flask-based watchdog + main HTTP server (webhook), callable from n8n workflows. ngrok exposes the non-public service to the outside. The processing can be triggered remotely or on a schedule from n8n.
macOS operations
launchd agents, watchdog and shell launchers ensure the background processes run stably and survive restarts. On failure: automatic restart and logging.
2. Daily revenue and management/statistical Excel automations
Showroom daily run
In a single run:
SQL Ledger query for the given day and store profile
Daily orders ingested
Three pre-defined template Excel workbooks updated correctly (daily revenue, store revenues, daily customer handling) using openpyxl
Automatic .bak backup before write — no data loss on failure
Duna Plaza daily revenue / day close
A separate Excel automation with openpyxl — handling Duna Plaza's different file structure. Hybrid path: browser layer with Playwright (Node), calculation and Excel writing in Python, where appropriate.
Mail.app draft prepared with the attachment and template subject/body
The solution intentionally does not auto-send — the human reviews and sends. Two variants: Showroom and Duna Plaza, both with Apple Shortcuts + terminal launcher + Shortcut rebuild scripts.
4. Cash register: invoice entry and close verification
Duna Plaza cash-register automation
Playwright-based invoice entry automation. Shortcut installation, run logs, screenshot archive on failure for debugging.
Shared Excel-based cash-register close / verification module
openpyxl module with detailed logging and meaningful exit codes (the calling Apple Shortcut knows what happened). Apple Shortcuts integration, store-specific launchers (Duna Plaza, Showroom).
5. Attendance and order data extraction
Automatic attendance sheet filling
Browser automation with Playwright — Duna Plaza and Showroom variants. The daily attendance admin runs in minutes.
Order list processing
Login, filtering, list traversal, dynamic extraction of order details. Output in console / structured form, e.g. for product-group / "EL" filter revenue analysis.
6. Helper utilities and maintenance scripts
Bulk fixes for Excel statistics workbooks (dates, blocks, cell ranges) — versioned fix scripts aligned to the existing report structure.
Operator accelerators: e.g. "tables on/off"-type Apple Shortcuts + shell back-end for cloud-stored Excel.
Other single-purpose Python scripts for SQL Ledger and store routines (complaint intake, new customer, quote, morning till) — targeted automations on demand.
Architectural principles
Human in the critical send / approval step.
Email sending, cash-register close and management sign-off are not automatic. The automation takes the process to a finished draft or verified state — from there the human clicks "send". This produces at least 10× fewer errors than full automation.
Logging, one-click launch (Shortcuts), backup before Excel modification.
Every script returns a meaningful exit code. Every Excel write is preceded by a .bak backup. Every long-running process is logged — what happened can be reconstructed afterwards.
Same business patterns for two stores (Showroom vs. Duna Plaza) with separated, reusable code.
The two stores work differently (different POS, different Excel structure), but 70% of the logic is shared. The codebase is structured so that adding a new store is configuration + 1–2 new modules, not a full rewrite.
Environment caveat (important)
Most of the solution is optimised for macOS, local file and iCloud paths, Mail.app and launchd. On Replit or a clean Linux cloud the same code does not all run the same way — the logic and API/Excel parts are portable, the macOS-specific parts are not. This is a deliberate choice: the existing store machines run macOS and the user is already used to the Mail.app + Shortcuts ergonomics.
What's the lesson for other companies?
Automating a store or SME's back-office processes is not one big "AI project" — it's 10–20 smaller scripts that together return 2–4 hours a day. The fastest ROI does not come from a chatbot but from:
Data flowing from SQL Ledger / POS / accounting into Excel in a single run.
The customer email draft being prepared with one button.
The attendance sheet / cash-register close happening without human typing.
AI (extraction, classification) becomes valuable when you have unstructured input — e.g. a PDF invoice or a free-text customer submission. The rest is better done with classic automation, because it is more predictable and cheaper.
Got similar store or back-office processes that eat hours of your day? Send an email and let's spend 30 minutes seeing what can become one-click on your side.