Spedizioni

— imbuto a due blocchi (stessi bucket del Riepilogo); l'elenco sotto resta completo
Stato Ritardo / Consegna attesa Destinatario CellulareEmail N. Ordine Tracking WA Track Data inserimento Ultimo check Lavorazione ⓘ Segnalazione

Ogni export broadcast è registrato qui. Riscarica il CSV di un export: viene rigenerato dagli ordini registrati, con la stessa normalizzazione telefono (+39) e dedup.

Data / oraContattiOrdini inclusiFileAzioni

Segnalazioni "ordine non ricevuto" inviate dai clienti dal form pubblico. Usa Copia URL per cliente per condividere il link. Clicca una riga per il dettaglio completo; imposta lo stato e premi Salva.

RicevutoN. OrdineNomeEmailMessaggioStato

Area manager. Le soglie di ritardo sono calcolate in giorni lavorativi (esclusi sabato e domenica) a partire dalla presa in carico del corriere. Il salvataggio è immediato, senza riavviare nulla.

Tempo entro cui la consegna è considerata regolare.
Giorni lavorativi OLTRE il tempo standard dopo i quali l'ordine diventa «in ritardo».
Giorni lavorativi di sforamento oltre i quali il ritardo diventa «grave» (evidenza rossa).
Giorni lavorativi da aperta oltre i quali la riga della segnalazione diventa rossa.

Stati lead

Stati di lavorazione (colore, gruppo, ordine, richiesta importo). Uno stato usato da lead non si elimina: disattivalo.

OrdineNomeColoreGruppo ImportoAttivo

Stati ordine

Gli stati della tab ITALIA del Foglio, con i loro colori. Il gruppo (positivo / negativo / neutro) è quello che la Dashboard usa per contare — non è più incollato nel codice: uno stato nuovo entra nei conti da solo. Gli stati di sistema (🔒) reggono export, anti-frode e metriche: si possono ricolorare o disattivare, non eliminare né rinominare — il codice li usa per nome.

OrdineNome SfondoTesto GruppoAttivo Anteprima

IVA per paese

Aliquote IVA multi-paese. Risoluzione per ordine: override prodotto → paese destinazione → fallback Italia.

PaeseNomeStandard %Ridotta % Attivo

Riepilogo IVA per paese (derivato dai lead con importo, non riscrive i record):

Parametri lead

L'auto-assegnazione tocca solo i lead entrati da questa data in poi.

Assegnazione operatrici (round-robin)

Operatrici tra cui ruota l'assegnazione automatica al sync degli ordini WooCommerce (in ordine). Il turno è persistente e si consuma solo per un cliente nuovo; gli ordini dello stesso giro-cliente ereditano la stessa operatrice.

Se lo stesso cliente ha un ordine già assegnato entro queste ore, il nuovo ordine va alla STESSA operatrice (senza consumare turno). Default 24 = stessa giornata. È separata dalla finestra di 20 min del motore ManyChat.

Turno corrente:

Ogni caricamento è una lista. Eliminando una lista si cancellano a cascata TUTTE le spedizioni importate con quel file (eventi, alert e solleciti inclusi). Azione irreversibile.

Data importFile / ListaN. ordiniAzioni

Valore cliente nel tempo. I clienti si accumulano da tutti i file importati, identificati per cellulare (o email). Il totale speso è accurato solo per gli ordini importati da ora in poi. Clicca un cliente per la scheda con tutti i suoi ordini e ticket.

Cliente CellulareEmail Ultimo ordine Ordini Consegnati Falliti Totale speso Affidabilità

➕ Invita un operatore

Genera un link: l'operatore sceglie da sé la password e configura il proprio 2FA. Tu non la conoscerai mai — ed è il punto: una password che sanno in due non è più una password. Il link vale 72 ore, si usa una volta sola, e glielo mandi tu (WhatsApp, di persona: nessuna email da configurare).

Creazione manuale con password provvisoria — uso eccezionale (l'invito è la via normale: qui la password passa dalle tue mani, e resta scritta ovunque l'abbia mandata).

3-64 caratteri: lettere minuscole, numeri, punto, trattino, underscore.
UsernameRuoloStato2FAUltimo accessoAzioni

🛡 Ruoli e permessi

Spunta cosa ogni ruolo vede (voci della sidebar) e cosa può fare (capacità). Le modifiche hanno effetto al prossimo login degli utenti di quel ruolo. Il vero blocco è lato server: togliere una voce la nasconde, ma il cancello che conta è l'API. Ogni modifica resta scritta nell'audit.

Prodotti / SKU

Gestione dei prodotti. Brand e categoria si scelgono dai dropdown. Disattivazione = soft-delete (reversibile).

Importa catalogo SKU

Import massivo da CSV. Colonne attese: sku, nome, categoria, brand, prezzo. Anteprima con righe scartate prima del salvataggio; i brand/categorie mancanti vengono creati.

Brand

Ordini in attesa di conferma. La data la metti tu; quando arriva, l'ordine va confermato per spedirlo.

Storico export

Le spedizioni in corso, in sola lettura. Se qualcosa non va, apri una segnalazione: resta scritta e la vedono tutti.

ManyChat — Connettore (account unico aziendale)

Salvata nel DB (mai in git), mostrata mascherata. Una sola chiave per l'azienda. Attuale: —

Motore d'invio — coda e dry-run

Cosa AVREBBE inviato il CRM (ultime 24h) — da confrontare con la colonna INVIATO dello Sheet

Invio WhatsApp «SPEDITO» (tracking) SEPARATO

Manda al cliente il link di tracciamento quando l'ordine passa a SPEDITO (import track). Interruttore indipendente dall'invio principale: puoi spegnere solo questo se dà problemi, senza fermare le conferme ordine. Nasce SPENTO.

🏷 Tag consulente (assegnazione ManyChat) SEPARATO

Applica al contatto ManyChat il tag della consulente (da assegnata_a), così una Assignment Rule di ManyChat instrada la chat all'agente. NON invia messaggi: aggiunge solo un tag a un contatto già esistente. Interruttore indipendente dagli invii. Nasce SPENTO.

Interruttore per consulente

Spegnere una consulente qui sospende solo il suo tag: l'alias resta risolto e l'ordine NON finisce fra i «da verificare» (quello succede se l'alias è sconosciuto/disattivato).

⚠️ Assegnazione da verificare

Operatrici presenti negli ordini ma non mappate a un tag: finché sono qui, le loro chat non vengono taggate. Mappale nella tabella alias per sbloccarle.

Log tagging (ultimi)

Solo i TAG_KO (rete/token/tag inesistente) richiedono intervento. TAG_SALTATO è una condizione attesa (alias non risolto o consulente sospesa), non un errore.

Recupero carrelli falliti NON ATTIVO

In attesa della sorgente «carrelli falliti» (oggi il CRM non li riceve). L'interruttore è SEPARATO da quello dell'invio: anche acceso, il job non trova candidati. Si accenderà in una sessione futura.

🔀 Procedura di switch (manuale, reversibile)

Precondizione: dry-run comparativo pulito per qualche ora di ordini veri. Poi, in ordine:

  1. Sheet → Apps Script → SyncManyChat.gsMC_ATTIVO: false → salva. Nello stesso momento: spegnere il riordino 45gg lato Sheet (modulo da identificare sul progetto Apps Script — SyncManyChat.gs o RecuperoLead.gs; mai i due riordini accesi insieme).
  2. CRMACCENDI qui sopra (conferma esplicita).
  3. Fai un ordine di prova reale → deve arrivare UN solo messaggio, dal CRM.
  4. Monitora la coda qui sopra + Diagnostica per le prime ore.

Rollback (30 secondi): CRM SPEGNI → Sheet MC_ATTIVO: true (+ riordino Sheet riacceso). L'idempotenza protegge dai doppi sugli ordini a cavallo.

Telegram — Connettore ordini assegnati SEPARATO

Quando un ordine viene assegnato a un'operatrice, il bot le manda una notifica su Telegram. Un solo bot per l'azienda; il token è in .env (mai qui). Nasce SPENTO: accendilo solo dopo aver inserito i chat_id qui sotto.

Dove finiscono le notifiche di un'operatrice senza chat_id. Vuoto = nessun fallback.

Destinatari (smistamento)

Una riga per operatrice del round-robin. Il chat_id è validato al salvataggio. Testa invia un messaggio reale a quel chat_id (max 10 test/ora). Stand-by sospende l'invio senza perdere il chat_id.

Operatricechat_id Ultimo testStand-by Azioni

Coda invii

Notifiche in attesa e fallite. I falliti (dopo 3 tentativi) si ritentano a mano qui; l'invio vero lo rifà il worker. Gli invii riusciti non compaiono.

Come ottenere il chat_id

  • Chat privata: l'operatrice scrive a @userinfobot e copia l'Id (un numero positivo).
  • Gruppo: aggiungi @userinfobot al gruppo, copia l'ID (formato -100…), poi rimuovilo.
  • In entrambi i casi va poi aggiunto il bot della piattaforma (il bot) al gruppo, oppure premuto Avvia nella chat privata col bot, altrimenti non può scrivere.

Tutte le note di tutti i lead. Filtra per operatore o testo; clicca «Apri lead» per la scheda.

Pesi di assegnazione

Motore weighted a debito massimo (piatto, solo operatori). La somma dei pesi deve essere 100 per salvare. Peso 0 ammesso (escluso dall'assegnazione).

OperatorePesoAssegnati
Somma: 0/100

Rimpiazzi operatori

Quando un operatore esce, i suoi rientri vanno al sostituto indicato.

Backup

Log

Manutenzione sistema

Elementi eliminati (soft-delete): ripristinabili o eliminabili in modo definitivo.

Compensi collaboratori — utile del mese meno i compensi riconosciuti ai collaboratori

Solo spedizioni ancora in transito e oltre la consegna attesa (deduplicate per tracking, nel periodo scelto). Non comprende giacenze, consegne fallite o errori di tracking: per questo il numero è più basso del KPI «In ritardo» di Spedizioni, che invece conta tutti gli stati. È lo stesso conteggio del badge ⏰ nella sidebar.

🔴 ROSSO = ≥2 pacchi rifiutati, o blacklist manuale: i suoi ordini non entrano in lista export finché un manager non preme «Approva comunque» sul singolo ordine. 🟡 GIALLO = 1 pacco rifiutato, una giacenza non ritirata, o primo ordine in contrassegno sopra soglia: segnala, non blocca. Lo score si ricalcola da solo a ogni cambio di stato di un ordine, e una volta al giorno su tutto lo storico.

Caricamento…

Gli ordini CONFERMATI in attesa di conversione, giorno per giorno. Convertire significa portarli in IN LISTA ESPORTAZIONI: entrano nella lista del giorno, da cui si genera il file per Sasha. Guarda l'anteprima prima di convertire: dopo, il contrassegno è già stato deciso.

0 selezionati
Lista convertita

File nel modello del corriere: 26 colonne, CAP come testo (lo zero iniziale è sacro: «00100» che diventa 100 è un pacco che non arriva), ITA1, importi a 2 decimali, un prodotto per riga, contrassegno una volta sola per destinatario.

Carica il file che Sasha rimanda (stesso modello, con la colonna TRACK/LDV compilata). Anteprima → conferma: gli ordini prendono il tracking, la data di spedizione di oggi e passano a SPEDITO, e da lì il worker li segue in Spedizioni.

📤 Da pushare su WooCommerce (via Sheet)

⚠️ Il push su WooCommerce resta su Apps Script: qui la checklist di cosa manca di là.

File datati crmadp_AAAA-MM-GG.db.gz, mai sovrascritti; le 3 copie più recenti sono protette dalla rotazione. Il backup notturno via cron resta attivo in parallelo.

Elimina backup più vecchi di N giorni

Cancellazione manuale, in aggiunta alla rotazione automatica del cron (che resta invariata). L'ultimo backup valido non viene mai eliminato.