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).

Tech palette

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:

  1. SQL Ledger query for the given day and store profile
  2. Daily orders ingested
  3. Three pre-defined template Excel workbooks updated correctly (daily revenue, store revenues, daily customer handling) using openpyxl
  4. 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.

3. Invoice → customer email preparation (macOS Mail)

Mail.app draft generation

The flow:

  1. Invoice download from SQL Ledger
  2. Related order and customer email read from the UI
  3. 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

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:

  1. Data flowing from SQL Ledger / POS / accounting into Excel in a single run.
  2. The customer email draft being prepared with one button.
  3. 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.