Procedure operative quotidiane, gestione anomalie e troubleshooting — Ultimo aggiornamento: 24/03/2026
Il sistema funziona in autonomia. Ogni giorno vengono eseguite automaticamente queste operazioni:
| Orario | Operazione | Workflow n8n | Cosa fa |
|---|---|---|---|
| Notte | Import listini fornitori | Vari import schedulati | Aggiorna dati raw in tabella prodotti |
| 04:00 | Algoritmo Pricing | Algoritmo Pricing Giornaliero | Snapshot prezzi → controlli anti-errore → refresh vista → alert Telegram |
| 04:30 | Aggiornamento prezzi Amazon | Keepa - Aggiorna Prezzi Amazon | 100 EAN ogni 5 min, continuo |
| 05:00 | Sync Shopify | Shopify - Sync Prezzi e Stock | Aggiorna prezzi/stock, importa nuovi, gestisce orfani |
| 16:00 | Algoritmo Pricing (2ª) | Algoritmo Pricing Giornaliero | Stessa pipeline delle 04:00 |
| 17:00 | Sync Shopify (2ª) | Shopify - Sync Prezzi e Stock | Stessa sync delle 05:00 |
Quando arriva un alert dal bot Telegram, ecco come interpretarlo e agire:
| Codice | Significato | Azione richiesta |
|---|---|---|
| PS-01 WARNING | Prezzo fuori range (troppo basso o alto) | Nessuna. Fornitore escluso automaticamente per quel prodotto. |
| PS-03 WARNING | Prezzo troppo diverso dagli altri fornitori | Nessuna. Se il prodotto è in promo, il sistema genera solo un alert INFO (non esclude). Altrimenti verificare se il fornitore ha un listino aggiornato. |
| PS-05 WARNING | Prezzo Shopify cambiato >10% rispetto al giorno prima | Verificare che il cambio sia legittimo (promo, aggiornamento listino). |
| Codice | Significato | Azione richiesta |
|---|---|---|
| PS-02 HOLD | Prezzo cambiato >25% rispetto alla media 30 giorni | Il prezzo Shopify è congelato. Verificare se il cambio è reale o errore fornitore. |
| PS-05 HOLD | Prezzo Shopify cambierebbe >20% | Il prezzo è congelato. Verificare la causa. |
fornitori_esclusi per quell’EAN.fn_auto_risolvi_hold() risolve automaticamente gli HOLD dopo 3 giorni.
Quando il sito sarà operativo e ci sarà un operatore, rimuovere la chiamata dal workflow e tornare a risoluzione manuale.
| Codice | Significato | Azione richiesta |
|---|---|---|
| PS-01 CRITICAL | Prezzo a €0 o fuori range assoluto | Fornitore escluso. Verificare il feed del fornitore. |
| PS-02 CRITICAL | Prezzo cambiato >40% rispetto alla media | Fornitore escluso. Probabilmente errore nel listino. |
| PS-03 CRITICAL | Deviazione estrema dalla mediana fornitori (solo se non in promo) | Fornitore escluso. Se è una promo legittima, aggiungere a promo_whitelist (il report Telegram include un link NocoDB per farlo rapidamente). Riammissione automatica quando il prezzo rientra o il prodotto entra in promo. |
| PS-04 CRITICAL | Margine <9% sul landed cost | Prodotto in DRAFT (non visibile su Shopify). |
pricing_alerts (NocoDB) per i dettagli.fornitori_esclusi per vedere quali fornitori sono stati esclusi.prodotti per tutti i fornitori di quell’EAN.Se serve aggiornare i prezzi fuori dagli orari schedulati:
Se serve sincronizzare Shopify fuori dagli orari schedulati:
Se un listino non si è aggiornato:
prodotti che i dati siano aggiornati (colonna data_aggiornamento)ean_bloccati (via NocoDB o Supabase)ean, motivo, data_inserimentopromo_whitelist (via NocoDB)ean, fornitore, sconto_max_pct, data_inizio, data_fineSintomo: errori “Unauthorized” o “401” nei workflow Shopify.
shopify_token che il nuovo token sia presente con scadenza futuraSintomo: workflow con stato “Error” nella lista esecuzioni n8n.
Diagnosi:
Cause comuni:
| Errore | Causa | Soluzione |
|---|---|---|
ECONNREFUSED | Problema di rete VPS | Verificare connessione, riprovare |
timeout | DB o API non risponde | Riprovare dopo qualche minuto |
rate limit | Troppe richieste API | Attendere e riprovare |
relation does not exist | Tabella mancante in Supabase | Verificare schema DB |
Sintomo: https://n8n.srv1203683.hstgr.cloud non risponde.
# Connettersi alla VPS ssh root@srv1203683.hstgr.cloud # Verificare stato container cd /docker/n8n docker compose ps # Se container down, riavviare docker compose restart # Se non si riavvia, controllare log docker logs n8n-n8n-1 --tail 100
Sintomo: workflow impiegano molto più del solito, timeout frequenti.
REFRESH MATERIALIZED VIEW (non CONCURRENTLY) perché PgBouncer in modalità transaction non lo supporta. Durante il refresh (~2-3 secondi) le query sulla vista possono fallire.
Sintomo: i dati di un fornitore nella tabella prodotti hanno data_aggiornamento vecchia.
Sintomo: la tabella amazon_prezzi ha date vecchie.
keepa_coda: se vuota, fn_popola_keepa_coda() non è stata eseguitaIl backup viene gestito automaticamente da Supabase. Per un backup manuale:
Per dump manuale via CLI:
pg_dump "postgresql://postgres.ffcrmgkbhxjcvxidjmns:[PASSWORD]@aws-1-eu-west-1.pooler.supabase.com:6543/postgres" > backup_YYYYMMDD.sql
I workflow n8n sono sincronizzati automaticamente nella cartella workflows/ del repository Git. In caso di problema:
workflows/ del progettossh root@srv1203683.hstgr.cloud → docker compose restart| Problema | Chi contattare | Come |
|---|---|---|
| Errore listino fornitore | Referente commerciale del fornitore | Email / telefono |
| Problema Supabase | Dashboard Supabase / supporto | supabase.com/dashboard |
| Problema VPS / Hostinger | Supporto Hostinger | Pannello Hostinger |
| Problema Shopify | Supporto Shopify Partner | help.shopify.com |
| Problema Keepa API | Supporto Keepa | keepa.com |
| Problema tecnico sistema | Sviluppatore (Alberto Cabas Vidani) | Telegram |
MonosTech — Runbook Operativo — Ultimo aggiornamento: 24/03/2026