Workflow Conferme d'Oodine

Processo di validazione prezzi e date di consegna

Fase 1. Analisi con OCR
L'Agente monitora la casella email, scarica i PDF delle conferme d'ordine e usa l'OCR per "leggere" date e prezzi, collegandoli automaticamente all'ordine corrispondente nel gestionale.
Fase 2. Controllo incrociato
Confronta riga per riga la conferma con l'ordine originale. Verifica due variabili critiche: prezzo unitario (per proteggere i margini) e data consegna (per proteggere la pianificazione).
Fase 3. Gestione eccezioni
Se rileva discrepanze, attiva l'operatore umano: l' Addetto agli Acquisti per negoziare i prezzi o il Responsabile della Programmazione per gestire i ritardi critici che impattano la produzione.
AGENTE AI
LOGICA
UMANO (Eccezione)
COMPLETATO
graph TD %% STILI classDef ai fill:#fce7ff,stroke:#bb31c7,stroke-width:2px,color:#0a0a28,rx:5px,ry:5px; classDef human fill:#fee2e2,stroke:#ef4444,stroke-width:2px,color:#991b1b,rx:5px,ry:5px; classDef decision fill:#fff7ed,stroke:#f97316,stroke-width:2px,color:#9a3412,rx:50px,ry:50px; classDef success fill:#dcfce7,stroke:#10b981,stroke-width:2px,color:#064e3b,rx:5px,ry:5px; classDef input fill:#f1f5f9,stroke:#64748b,stroke-width:2px,stroke-dasharray: 5 5,color:#334155; Start["📥 Email Fornitore con PDF"]:::input --> Parse("🤖 AI: OCR Intelligente & Estrazione"):::ai Parse --> SearchPO{"🔍 Ordine Esiste?"}:::decision SearchPO -->|No| AlertPO["👤 Alert: Ordine non trovato"]:::human SearchPO -->|Sì| CheckPrice{"💶 Prezzo Coincide?"}:::decision %% LOGICA PREZZO CheckPrice -->|No| CalcDiff["🤖 Calcola Variazione"]:::ai CalcDiff --> Tolleranza{"< Soglia?"}:::decision Tolleranza -->|No| HumanPrice["👤 BUYER: Accetta Aumento?"]:::human %% LOGICA DATA CheckPrice -->|Sì| CheckDate{"📅 Data Consegna Coincide?"}:::decision Tolleranza -->|Sì| CheckDate CheckDate -->|Sì| UpdateERP["🚀 Aggiorna ERP: CONFERMATO"]:::success CheckDate -->|"No (Ritardo)"| CheckPlan{"⚠️ Impatta Produzione?"}:::decision CheckPlan -->|"No (Stock ok)"| UpdateDate["🤖 Aggiorna Data ERP + Alert"]:::ai CheckPlan -->|"Sì (Rischio Fermo)"| HumanPlan["👤 PLANNING: Riprogramma/Sollecita"]:::human %% CHIUSURA UpdateDate --> UpdateERP HumanPrice -->|Rifiuta| RejectEmail["📧 Email Contestazione"]:::input HumanPrice -->|Accetta| UpdateERP HumanPlan --> UpdateERP