Spedizioni
| Stato | Ritardo / Consegna attesa | Destinatario | Cellulare | 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 / ora | Contatti | Ordini inclusi | File | Azioni |
|---|
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.
| Ricevuto | N. Ordine | Nome | Messaggio | Stato |
|---|
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.
Stati lead
Stati di lavorazione (colore, gruppo, ordine, richiesta importo). Uno stato usato da lead non si elimina: disattivalo.
| Ordine | Nome | Colore | Gruppo | Importo | Attivo |
|---|
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.
| Ordine | Nome | Sfondo | Testo | Gruppo | Attivo | Anteprima |
|---|
IVA per paese
Aliquote IVA multi-paese. Risoluzione per ordine: override prodotto → paese destinazione → fallback Italia.
| Paese | Nome | Standard % | Ridotta % | Attivo |
|---|
Riepilogo IVA per paese (derivato dai lead con importo, non riscrive i record):
Parametri lead
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 import | File / Lista | N. ordini | Azioni |
|---|
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 | Cellulare | 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).
| Username | Ruolo | Stato | 2FA | Ultimo accesso | Azioni |
|---|
🛡 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
Area manager. Sincronizzazione WooCommerce: gli ordini WC vengono importati automaticamente ogni ora; qui puoi forzare un pull immediato e vedere l'ultimo esito. Il catalogo prodotti/SKU (usato per il match dei prodotti degli ordini) si gestisce ora in Prodotti / SKU e Brand.
🔄 Sincronizzazione WooCommerce
Storico export
Le spedizioni in corso, in sola lettura. Se qualcosa non va, apri una segnalazione: resta scritta e la vedono tutti.
Cosa sta finendo. In sola lettura: serve alla produzione per sapere cosa preparare, non a modificare le giacenze.
ManyChat — Connettore (account unico aziendale)
Motore d'invio — coda e dry-run
Cosa AVREBBE inviato il CRM (ultime 24h) — da confrontare con la colonna INVIATO dello SheetInvio 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:
- Sheet → Apps Script →
SyncManyChat.gs→MC_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). - CRM → ACCENDI qui sopra (conferma esplicita).
- Fai un ordine di prova reale → deve arrivare UN solo messaggio, dal CRM.
- 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.
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.
| Operatrice | chat_id | Ultimo test | Stand-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
@userinfobote copia l'Id(un numero positivo). - Gruppo: aggiungi
@userinfobotal 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).
| Operatore | Peso | Assegnati |
|---|
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.
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.
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.