Grupe, profesori si evenimente pe zile si ore — curs 90 minute
Tip Orar:
☀️ Perioada „Activitati vara"In aceasta fereastra, copiii alocati temporar pe grupe de vara apar in grupele de vara (Orar / Prezenta / Catalog). In afara ei revin automat la grupele de origine.
Saptamana:
📅 Orar Grupe
👩🏫 Orar Profesor
📅
Nicio grupa
Monitorizare Leads
De la primul contact la inscrierea in grupa
📊 Rate de conversie–
🔍
Copil
Parcurs
Varsta
Parinte
Telefon
Locatie
Grupa Demo
Status
Contact
Actiuni
Registru Leads
Istoric complet al inregistrarilor si modificarilor de leads
0 selectati
🔍
Data/Ora
Actiune
Copil
Parinte
Telefon
Locatie
Grupa
Status
Status curent
Sursa
Detalii Sursa
Observatii
Actiuni
Demo
Toate demo-urile — programate si efectuate
🔍
Data Demo
Copil
Varsta
Parinte
Telefon
Locatie
Grupa
Profesor
Status
Actiuni
Istoric Actiuni
Istoric complet pe persoana: contact → demo programat → demo efectuat → inscris/pierdut + apeluri, mesaje, feedback-uri
🔍
Service
Tichete de service catre Administrator — sesizeaza o problema, primesti rezolvarea
🔍
Nr.
Utilizator
Deschis
Problema sesizata
Rezolvare
Rezolvat
Status
Actiuni
Catalog Firme
Entitati juridice cu locatii alocate
🔍
Denumire
CUI
Nr. Reg. Com.
Adresa
IBAN
Banca
Reprezentant
Locatii
Actiuni
Catalog Locatii
5 centre Neuron English West
🔍
Cod
Denumire
Adresa
Telefon
Responsabil
Grupe
Profesori
Elevi
Actiuni
Catalog Profesori
Personal didactic activ
🔍
Nume complet
Pozitie
Telefon
Email
Locatie
Grupe
Elevi
Actiuni
Catalog Grupe
Click pe denumire pentru a vedea elevii grupei
🔍
Cod
Tip
Denumire (click)
Locatie
Profesor(i)
Nivel
Varsta
Zi / Ora
Elevi
Niveluri copii
Nivel scolar
Actiuni
Evenimente
Workshop-uri, tabere, open-day — copiii raman in grupa de baza
📆 Evenimente
👥 Participanti
🔍
Cod
Denumire (click)
Tip
Perioada
Locatie
Participanti
Status
Actiuni
🔍
Tip
Nume
Detalii
Locatie
Evenimente
Actiuni
Catalog Copii
Baza de date cursanti
Înscris între–
🔍
0 selectati
Prenume⇅
Nume⇅
Grupa
Clasa
Nivel limba
Participare
Status
Platforma
Parinte
Telefon
Email
Nr. contract
Actiuni
✓ Prezenta Copii
Inregistrare prezenta, registru istoric si rapoarte tiparibile
📝 Inregistreaza Prezenta
📒 Registru Prezenta
🔄 Recuperari 0
⚡ Initializare Recuperari
📊 Rapoarte
✅ Activi
⏸ Inactivi
💻 Platforma
🚪 Retras
👥 Copii din grupa
➕ Copii din afara grupei (recuperari / demo / observatori)
📝
Selecteaza o grupa si data pentru a incepe
🔍
Data
Grupa
Copil
Profesor
Status
Observatii
Actiuni
🔔 Reminder WhatsApp pentru recuperari programate ASTAZI
0
Lista de mai jos contine toti copiii cu recuperare programata astazi (stare „deschis"). Apasa 💬 Trimite WhatsApp pentru fiecare parinte — se trimite automat template-ul Meta desemnat ca „🔔 Default reminder recuperare" (configurat in Setup → 📱 WhatsApp Business, cu maparea parametrilor prin placeholdere).
🔄 Toate recuperările programate (deschise, închise, neefectuate)
Copil
Data absență
Grupa absentă
Profesor (înscrie)
Data recuperare
Grupa recuperare
Profesor (recupereaza)
Stare
Observații
Acțiuni
⚡ Inițializare recuperare
Folosește acest tab pentru a programa o recuperare unui copil fără a trece prin modalul „Înregistrează Prezența". Apasă Recuperare nouă, alege copilul din lista cu căutare — locația, nivelul de limbă, grupa și nivelul grupei se completează automat — apoi continuă spre fereastra obișnuită de programare a recuperării.
💡 Recuperările create aici apar în tab-ul 🔄 Recuperări, identic cu cele programate din pagina de prezență.
📋 Configureaza raportul
💡 Alege Perioada, apoi restrange in cascada dupa Locatie → Profesor → Grupa. Pentru un raport individual, cauta si alege un Copil (are prioritate fata de cascada).
📊 Rapoarte
Copiii cu status Inactiv — in intervalul de inactivitate acestia nu apar in inregistrarea prezentei. Foloseste filtrele pentru a restrange dupa locatie, grupa sau copil.
📊 Raport — numar copii inactivi pe luni (respecta filtrele Locatie/Grupa/Copil)
Copil 0
Locatie
Grupa
Inactiv de la
Inactiv pana la
Stare azi
Copiii cu status Platforma — pe durata intervalului nu mai participa la grupe (nu apar in inregistrarea prezentei), dar continua lucrul pe platforma si raman in evidenta centrului. Foloseste filtrele pentru a restrange dupa locatie, grupa sau copil.
📊 Raport — numar copii pe platforma pe luni (respecta filtrele Locatie/Grupa/Copil)
Copil 0
Locatie
Grupa
Pe platforma de la
Pe platforma pana la
Stare azi
Copiii activi in perioada selectata — inscrisii (mereu activi) plus cei cu status Inactiv/Platforma al caror interval NU acopera perioada (deci sunt activi atunci). Fara filtre de data, se arata copiii activi azi. Foloseste filtrele pentru locatie, grupa, copil sau o fereastra de date.
Kinders
Pre-starters
Young Learners
Cambridge English
📊 Raport — numar copii activi pe luni (respecta filtrele Locatie/Grupa/Copil/Nivel)
0 selectati
Copil 0
Locatie
Grupa
Pauza definita
Interval pauza
Stare
Copiii cu status retras — au incheiat colaborarea cu centrul. Fara filtre de data se arata toti retrasii. Fereastra de date filtreaza dupa data retragerii; copiii retrasi fara data setata nu pot fi incadrati intr-o luna si sunt exclusi cand folosesti fereastra de date.
Kinders
Pre-starters
Young Learners
Cambridge English
🚪 Retras intre
→
📊 Raport — numar retrageri pe luni (respecta toate filtrele, inclusiv perioada)
Copil 0
Locatie
Grupa
Nivel
Data retragerii
Vechime in centru
Stare
📋 Registru Feedback
Feedback-uri trimise spre validare, validate si pregatite pentru trimitere catre parinti
📋 Registru
✅ Acoperire feedback
0 selectate
Data / Ora
Profesor
Copil
Locatie / Grupa
Fisier
Status
Validat de
Trimis de
Actiuni
Profesor
Locație
Alocați
Acoperiți
Lipsă
Acoperire
🏅 Evaluari sponsor
Raportare periodica (6/12 luni) pentru copiii sponsorizati — note de abilitati si observatii, per grupa
E excelentB bineS satisfacatorN/A not applicable
🏅 Campanie noua
✕
🗣️ Testimoniale
Colectare testimoniale de la parinti (poarta NPS), moderare si publicare pe site
Data
Locatie
Autor / Copil
Scor
Testimonial
Consimt.
Canal
Google
Stare
Actiuni
📝 Testare
Teste de nivel online — invitații individualizate, corectare automată a grilelor și validare de manager
📨 Testări
✅ Validare0
📁 Sesiuni beneficiar
🧩 Șabloane
➕ Trimite testare
✕
🔗 Link de testare
✕
📥 Import evaluați (.xlsx)
✕
Fișier .xlsx cu coloanele: beneficiar_special, nume_evaluat, prenume_evaluat, numar_telefon, email.
Se creează o sesiune de evaluare + câte o invitație per rând, grupate sub beneficiar. Telefonul și emailul sunt opționale — necesare doar pentru trimiterea automată pe canalul respectiv.
niciun fișier
📨 Importul doar creează invitațiile (rămân „De trimis"). Trimiterea o faci separat, cu selecție multiplă + alegerea canalului (WhatsApp / email), din tabul Sesiuni sau Testări.
🧩 Șablon test
✕
✏️ Întrebare
✕
📈 Evoluție KPI lunară
✕
✅ Rezultat test
✕
📚 Biblioteca de Resurse Didactice
Fise activitati, planuri lectie, vocabular, evaluari si alte materiale
🔍
Cod
Tip
Nume Resursa
Descriere
Fisier
Data adaugare
Adaugat de
Actiuni
📄 Administrare Contracte
Contracte parinti — registru, upload si generator template
🔍
Nr. Contract
Data
Copil
Parinte
Grupa
Locatie
Tip
Status
Fisier
Actiuni
💲 Administrare Preturi
Tabel de conditii de pret (firma/locatie + referinta). Valoarea facturata a unui copil = suma conditiilor active + avantajele Loyalty.
Cod
Descriere
Firma
Locatie
Referinta
Detaliu
Valoare
Valabil de la
Pana la
Activ
Actiuni
⭐ Program Loialitate
Avantaje pentru clientii activi: vechime, recomandari, plata in avans, participare, frati inscrisi.
🎯 Eligibili
🎁 Avantaje acordate
⚙️ Reguli
🏷️ Tipuri avantaj
Copil
Locatie
Regula
Conditie
Valoare curenta
Avantaj
Actiuni
Copil
Locatie
Avantaj
Detaliu
Acordat
WhatsApp
Status
Actiuni
Reguli de loialitate
Fiecare regula leaga una sau mai multe conditii obiective (vechime, recomandari, plata in avans, engagement, frati inscrisi) de un avantaj. Cand sunt mai multe conditii, toate trebuie indeplinite (SI). Salvarea persista in setari.
Tipuri de avantaj
Defineste tipurile de avantaj folosite de reguli. Fiecare are un mod de aplicare: procent (% reducere), suma fixa (RON reducere pe luna) sau descriptiv (text, non-monetar). Reducerile (procent/suma) se scad din valoarea facturata. Salvarea persista in setari.
💵 Financiar
Rapoarte financiare — valoarea totală facturată (cu reduceri Loyalty) pentru copiii activi într-o perioadă.
📊 Rapoarte Financiare
🧾 De facturat
🧾 Facturare SmartBill
🏛️ Beneficiari speciali
💡 „Valoare totală facturată" = suma valorilor lunare pe lunile în care copilul e activ — de la luna semnării contractului, până în luna retragerii/încheierii inclusiv, înscris și fără pauză; luna începută = lună întreagă. Valoarea lunară = cea calculată din Administrare → Prețuri (preț de bază − discount avans/frați), adică „Valoare totală facturată (1 lună)" din fișa copilului, redusă cu reducerile Loyalty active (tip „reducere", status acordat/folosit). Un copil retras fără dată de retragere nu apare.
Totaluri pe locație
Defalcare pe luni
💡 Ce trebuie facturat fiecărui copil activ în luna selectată (de la luna semnării contractului, fără pauză inactiv/platformă, până în luna retragerii inclusiv). Valoarea de facturat = suma condițiilor de preț potrivite (grupă/platformă, fără evenimente) minus reducerile Loyalty active. Copiii fără condiții configurate folosesc abonamentul manual din fișă.
De facturat
Copil
Locație
Grupă
Condiții de preț
Avantaje
Valoare de facturat (RON)
Beneficiar Special
Tip facturare
Entitate pentru facturare
Facturi de emis
Validare
Firmă
Client
Tip
Linii (elevi)
Total (RON)
Stare
Acțiuni
💡 Beneficiari speciali = terți plătitori (sponsori, instituții, firme partenere). Îi poți lega de o condiție de preț prin câmpul „Condiție dedicată" din Administrare → Prețuri.
Nume
Adresă
Reprezentant
Status
Acțiuni
🏛️ Beneficiar special
✕
💰 Adaugă încasare
✕
Dacă integrarea SmartBill e activă și factura e emisă, încasarea se trimite la SmartBill (POST /payment).
📄 Fișă financiară
✕
📋 Fișă acțiuni
✕
🔍
💬 Chat
Chat-ul e disponibil ca widget floating (bula 💬 jos-dreapta).
Apasa pe bula 💬 din coltul jos-dreapta pentru a deschide chat-ul.
📲 Conversații WhatsApp
Mesaje primite de la părinți pe numărul dedicat + răspunsuri (fereastra de 24h Meta)
Selectează o conversație din stânga pentru a vedea mesajele.
🔎 Audit Log
Jurnal complet al operațiilor (creare / modificare / ștergere) pe toate tabelele — doar administrator
Data / ora
Utilizator
Operație
Tabel
Entitate
Modificări
Detalii
🔎 Detalii operație
Setup
Administrare utilizatori, permisiuni si configurare Mr. Neuron
👥 Utilizatori
🔑 Configurare AI
ℹ️ Informatii
📚 Catalog Utilizatori
Utilizatorii sunt sincronizati cu profesorii. Click pe „Sincronizeaza" pentru a crea automat conturi pentru toti profesorii noi.
🔍
Cod
Utilizator
Email
Login
Rol
Permisiuni
Profesor
Actiuni
🔑 Configurare Anthropic Claude API
Mr. Neuron foloseste modelul Claude selectat mai jos pentru a raspunde la intrebari despre datele tale. Apelurile catre Claude trec prin Cloudflare Worker-ul propriu (acelasi ca WhatsApp, configurat mai jos) — cheia API nu mai ajunge in browser.
🔒 Cheia Anthropic (sk-ant-... de la console.anthropic.com) se seteaza o singura data ca secret pe Worker (ANTHROPIC_API_KEY, in dashboard-ul Cloudflare), nu in aplicatie. Astfel nu e vizibila niciunui utilizator, nici macar adminilor.
📱 WhatsApp Business — Trimitere automata
Conecteaza CRM-ul la WhatsApp Cloud API printr-un Cloudflare Worker propriu (proxy securizat). Permite trimiterea de template-uri Meta (cu aprobare prealabila) si mesaje text/imagine in fereastra de 24h. Cheia este pastrata in Supabase, criptata, accesibila doar adminilor.
Cand e dezactivat, butoanele „Trimite pe WhatsApp" din CRM nu apar.
URL-ul complet al Cloudflare Worker-ului (fara „/" la final).
Cheia configurata pe Worker ca secret (WA_API_KEY). Deschide TOATE rutele: WhatsApp, email, AI, facturare. Vizibila doar administratorilor si managerilor.
Cheia primita de profesori in locul celei de sus. Pe Worker deschide doar /send-template si /send-image (trimiterea de feedback), NU facturarea sau AI-ul. Seteaz-o si ca secret WA_API_KEY_SEND pe Worker.
⚠️ Necompletata — momentan profesorii primesc cheia completa de mai sus (pot apela inclusiv facturarea si AI-ul). Genereaza o cheie noua, pune-o ca secret WA_API_KEY_SEND pe Worker, redeployeaza Worker-ul si completeaz-o aici.
✉️ Email (Resend)
Trimite emailuri (ex. invitatii de testare) prin Resend, folosind acelasi Worker si aceleasi credentiale (Worker URL + API Key de mai sus). Cheia Resend (RESEND_API_KEY) si adresa expeditor (RESEND_FROM) se seteaza ca secrete pe Worker, nu aici.
Cand e dezactivat, butoanele „Trimite pe email" din CRM nu apar.
📋 Template-uri configurate
Template-urile trebuie sa fie deja aprobate in Meta Business Manager inainte de a fi listate aici. Numele trebuie sa fie exact cel din Meta (slug, fara spatii). Bifeaza „Default feedback" la maxim un template — va fi pre-selectat la trimiterea PNG-urilor de feedback.
Niciun template configurat. Adauga unul cu butonul de mai sus.
📄 Oferta comerciala (PDF per locatie)
Din pipeline.html, un lead poate primi pe WhatsApp oferta comerciala (PDF) corespunzatoare locatiei lui de interes. Trimiterea foloseste template-ul marcat 📄 Default oferta (creat in Meta cu header de tip DOCUMENT), iar PDF-ul e atasat de la URL-ul de mai jos. Linkurile trebuie sa fie publice HTTPS (Meta le descarca) — ex. gazduite pe site-ul WordPress sau Cloudflare.
Cand e dezactivat, butonul „Trimite oferta" din pipeline.html nu apare.
Folosit cand locatia lead-ului nu are un PDF dedicat (sau lead-ul nu are locatie).
PDF per locatie
🧡 Mesaj automat de bun venit la lead nou
La fiecare lead nou (cu telefon), CRM-ul trimite automat un template WhatsApp de „bun venit" catre parinte, prin Worker. Se logheaza ca activitate automata (whatsapp-auto) si NU conteaza ca „contact" — nu inlocuieste apelul/mesajul tau. Template-ul trebuie sa fie aprobat in Meta.
Cand e bifat, mesajul pleaca DOAR la lead-urile cu sursa meta-lead-form sau google-forms. Lead-urile adaugate manual (telefon, recomandare, walk-in) NU primesc mesajul automat.
Slug-ul exact al template-ului aprobat in Meta (fara spatii).
💡 Daca template-ul are variabile ({{1}}, {{2}}…), maparea lor ({nume_parinte}, {nume_copil}, {nume_locatie}) se face in setari.lead_welcome_config.paramTemplates. Template-ul curent e text fix (fara variabile).
🤖 Agent AI — raspunde automat mesajelor WhatsApp
Cand un parinte raspunde la un mesaj al centrului, agentul (Mr. Neuron) poate raspunde automat, server-side pe Worker, in fereastra de 24h. Regim hibrid: raspunde la intrebari generale (program, locatii, preturi, cum functioneaza cursurile) si escaladeaza la un om orice e sensibil (plati, inscrieri, reclamatii, date despre un anume copil). Se logheaza ca whatsapp-ai (NU conteaza ca „contact"). Daca un coleg raspunde manual, agentul se opreste pe acea conversatie.
Recomandat cateva zile la inceput: vezi in „Audit / Registru" ce AR fi raspuns (actiune whatsapp-ai), fara sa trimiti nimic real.
Agentul raspunde doar din ce scrii aici. Ce nu e acoperit → escaladeaza automat la un om. Nu pune date despre copii individuali.
Se adauga inaintea primului raspuns catre un numar. Lasa gol ca sa nu se prezinte.
Plasa anti-bucla.
Daca un coleg a raspuns in ultimele X ore, agentul tace pe acea conversatie.
⚠️ Agentul ruleaza pe Cloudflare Worker — dupa ce modifici whatsapp-worker.js trebuie redeployat manual. Necesita secretul ANTHROPIC_API_KEY pe Worker.
La înscrierea unui lead venit din reclamă, CRM-ul trimite conversia înapoi la platformă (prin același Cloudflare Worker), ca aceasta să atribuie corect rezultatul și să optimizeze campaniile. Identificatorul de atribuire se captează la lead. Token-urile stau ca secrete pe Worker. Valoarea trimisă = valoarea contractului copilului.
📘 Meta (Conversions API)
Atribuire prin lead_id (Lead Ads) sau fbclid (trafic spre formularul de site). Secrete Worker: META_CAPI_DATASET_ID, META_CAPI_TOKEN — vezi meta-offline-conversions-setup.md.
Când e dezactivat, click-id-urile se captează și se stochează în continuare, dar nu se trimite nimic.
Recomandat Purchase (cu valoare) sau un eveniment custom (ex. Inscriere).
Folosită pentru valoarea conversiei (Meta + Google).
🔵 Google Ads (Data Manager API)
Atribuire prin gclid captat din formularul de site, trimis prin Data Manager API (înlocuiește uploadClickConversions, blocat din 15 iun 2026). Secrete Worker: GOOGLE_CLIENT_ID/SECRET/REFRESH_TOKEN (scope datamanager), GOOGLE_ADS_CUSTOMER_ID, GOOGLE_ADS_CONVERSION_ACTION_ID — vezi google-ads-offline-conversions-setup.md.
Pentru auto-tagging gclid, asigură-te că în Google Ads e activat „Auto-tagging" și că reclamele duc spre formularul de site.
🧾 Facturare SmartBill
Emitere facturi din „Financiar → Facturare SmartBill". Credentialele (email + token API) sunt secrete pe Worker: SMARTBILL_CREDENTIALS (JSON CUI→{email,token} cu cheia default). Seria de factură + regimul TVA se setează per firmă în Cataloage → Firme.
Lasă bifat până ești sigur de configurare. Dezactivează pentru emitere reală.
🗣️ Testimoniale — configurare
Setări pentru modulul Testimoniale: template-ul WhatsApp folosit la „Cere testimonial" și adresa formularului public de la care pornesc linkurile generate.
Numele exact al template-ului Meta aprobat (3 variabile body: nume părinte, prenume copil, link). Vezi testimoniale-whatsapp-template.md.
Codul de limbă al template-ului din Meta (ex. ro).
Linkurile de la „Cere testimonial" pornesc de aici, cu ?t=<token>&loc=<locatie>.
Se acordă la validare/publicare, o singură dată per testimonial, pentru testimoniale atribuite unui copil (la QR generic anonim: atribuie întâi copilul în fereastra de moderare) și fără beneficiar special.
Tipurile se gestionează în Program Loialitate → Tipuri.
După modul tipului: % (procent), RON (sumă fixă) sau text (descriptiv).
💡 Pragul NPS de rutare spre Google și linkurile de recenzie Google (per locație) se configurează direct în testimonial.html (NPS_PRAG / GOOGLE_REVIEW_URLS), fiindcă formularul public e un fișier static, separat de CRM.
💬 Context Agent AI — Mesaje WhatsApp
Acesta este system prompt-ul trimis catre AI cand un profesor cere generarea unui mesaj WhatsApp. Personalizeaza-l pentru a se potrivi cu vocea brand-ului si regulile centrului tau.
💡 Sfaturi pentru un prompt bun:
• Specifică tonul (politicos, cald, formal, prietenos)
• Indică lungimea (ex. „maxim 4-6 propoziții")
• OBLIGĂ folosirea placeholderelor per-destinatar: {nume_parinte}, {nume_copil}, {nume_profesor}
• Indică formula de început/final (ex. „Bună ziua, {nume_parinte}!" / „Cu drag, Teacher {nume_profesor}")
• Restricționează emoji-urile și cere răspuns FĂRĂ introduceri/explicații
• Folosește variabilele de context{COPIL_EXEMPLU}, {GRUPA}, {LOCATIE} pentru a oferi AI-ului context dinamic la generare.
🔀 Fallback-uri cand datele lipsesc
Daca un destinatar nu are nume parinte completat (sau alte campuri), aceste valori vor fi folosite in locul placeholderelor:
🔔 Template WhatsApp — Reminder Recuperare
⚠️ Doar referinta/preview. Trimiterea reala a reminderului foloseste acum template-ul Meta desemnat „🔔 Default reminder recuperare" (Setup → WhatsApp Business). Acest text liber se mai foloseste doar ca model de continut si in preview-ul „👁 Vezi mesaj" cand nu exista un template Meta desemnat.
System prompt-ul folosit cand profesorul cere generarea observațiilor în Formular Feedback. Personalizeaza-l pentru a se potrivi cu stilul pedagogic al centrului tau.
💡 Sfaturi pentru un prompt eficient:
• Specifică lungimea (ex. „3-5 paragrafe, 200-350 cuvinte")
• Indică tonul (cald, profesional, specific, evita generalitatile)
• Structura: puncte tari → exemple concrete → zone de imbunatatire → recomandare
• Foloseste variabilele de context{NUME_COPIL}, {NIVEL} etc. pentru a oferi AI-ului datele concrete
• FĂRĂ formula de salut sau încheiere — doar conținutul observațiilor
• Limba: română corectă, persoana a 3-a (despre copil), nume direct (nu „copilul")
🤖 Context Mr. Neuron — Chat conversational
System prompt-ul folosit de pagina Mr. Neuron din meniu. Defineste personalitatea, rolurile si regulile asistentului conversational.
0 caractere💡 Variabila auto-injectata: {DB_CONTEXT} — JSON-ul complet al CRM-ului
💡 Sfaturi pentru un prompt eficient:
• Definește rolurile agentului (asistent CRM, consultant pedagogic, etc.)
• Specifică limba (română, profesional dar prietenos)
• Indica regulile pentru intrebari cu date interne (folosește doar cifre exacte)
• Folosește {DB_CONTEXT} in locul in care vrei ca AI sa vada datele CRM
• Pentru materiale didactice indica varsta, nivelul CEFR, structura
ℹ️ Despre sistemul de utilizatori
Arhitectura cloud: Datele sunt stocate securizat in Supabase (PostgreSQL gazduit in Frankfurt, EU), conform GDPR. Sincronizare automata intre toti utilizatorii. Fisierele atasate (PNG-uri feedback, resurse biblioteca) sunt in Supabase Storage privat, accesibile doar dupa autentificare.
Autentificare: Email + parola gestionate prin Supabase Auth. Parolele sunt criptate (bcrypt) si nu sunt vizibile niciodata in clar. Sesiunile expira automat dupa o perioada de inactivitate.
Securitate la nivel de rand (RLS): Fiecare interogare e filtrata in baza de date in functie de rolul utilizatorului. Profesorii vad doar copiii din grupele lor; datele financiare (contracte, abonamente) sunt vizibile doar administratorilor si managerilor.
Imutabilitate (ISO 9001): Registrul de actiuni, inregistrarile de prezenta si feedback-urile validate nu pot fi sterse sau modificate dupa salvare — garanteaza audit trail complet.
Roluri si permisiuni:
Administrator — acces complet la toate functionalitatile, inclusiv Setup, date financiare si configurari AI
Manager Centru — acces la toate cataloagele si rapoartele, fara Setup. Vede datele financiare.
Manager Locatie — acces la dashboard, leads, grupe si copii (limitat la locatia administrata). Vede datele financiare doar pentru locatia sa.
Profesor — acces la orar, prezenta, feedback si copiii grupelor sale. NU vede datele financiare (contract, abonament) — GDPR strict.
Permisiunile pot fi personalizate individual pentru fiecare utilizator, indiferent de rol.
Note tehnice: Datele se sincronizeaza automat la fiecare actiune. Internet necesar pentru utilizare. Cheia API Anthropic (Mr. Neuron) este secret pe Cloudflare Worker si nu ajunge in browser.
🛠️ Mentenanta date prezenta
Inregistrarile cu status „recuperare" pe grupa proprie a copilului (cele bifate gresit din dropdown-ul vechi de status) pot fi corectate automat in „absent". Acest buton scaneaza toate inregistrarile, afiseaza exemple, cere confirmare si apoi aplica corectia.
Recuperarile reale (la grupa unde copilul a venit ca extern) NU vor fi atinse. Aceasta operatiune este sigura si reversibila — fiecare entry corectata are istoric in Supabase.
📁 Proiecte
Administrare simultana a mai multor proiecte — task-uri, echipa, Kanban / Lista / Timeline
Proiect nou
✕
Task nou
✕
💡 Ctrl/Cmd-clic pentru selecție multiplă. Task-ul devine „blocat" cât timp un predecesor nu e finalizat.
👥 Echipa proiectului
✕
🗂️ Coloane Kanban
✕
Adauga / redenumeste / reordoneaza coloanele. Marcheaza „Final" coloana care inseamna task terminat (acele task-uri se considera indeplinite).
📋 Proiect din șablon
✕
Niciun șablon salvat încă. Deschide un proiect existent și apasă „💾 Șablon" ca să creezi unul.
💡 Task-urile, etapele și dependențele se generează cu termenele calculate față de data de start aleasă.
📊 Încărcare echipă
✕
Task-uri deschise per responsabil, din toate proiectele vizibile. Roșu = întârziate.
🎯 Faze / Milestones
✕
Grupează task-urile pe faze cu dată țintă (ex. Autorizații → Amenajare → Lansare). Atribui task-urile la o fază din fereastra task-ului.
📋 Sedinte si Task-uri
Gestionare sedinte, agenda, decizii si transformare in task-uri
📋 Sedinte
✅ Task-urile mele
📊 Toate task-urile
🔍
🔍
🔍
Adauga Firma
✕
Config per firma emitenta. Credentialele (email+token) NU se pun aici — sunt secrete pe Worker (SMARTBILL_CREDENTIALS).
Adauga Locatie
✕
Adauga Profesor
✕
Adauga Grupa
✕
Grupa NU se oprește în perioada de vară — rulează normal, la fel ca în anul școlar.
💡 Lasă gol → CRM-ul calculează automat din nivelurile copiilor înscriși. Setează manual doar pentru cazuri excepționale (predai sub nivelul majorității).
Adauga Eveniment
✕
💡 Pentru un eveniment de o zi: Data start = Data final. Pentru mai multe zile: completeaza intervalul, apoi adauga sesiunile in detaliul evenimentului.
🛠️ Ticket nou de service
✕
💡 Ticketul ajunge la Administrator, care iti va raspunde cu rezolvarea. Vei vedea raspunsul in lista de mai jos.
Ticket
✕
👤 —
🕒 Deschis: —
Eveniment
✕
📅 Sesiuni
👥 Participanti
✓ Prezenta
Adauga Sesiune
✕
Adauga Participant
✕
👶 Copii inscrisi
🎯 Leads
🔍
Adauga Copil
✕
Date Copil
Date Parinte
Contract & Abonament
⚠️ Adăugare directă în catalog. Folosește această opțiune doar dacă acest copil NU se află deja în fluxul de LEAD (Contact / Demo programată / Demo efectuată). Dacă există ca lead, convertește lead-ul din pipeline — altfel același copil ajunge agățat și în Leads, și înscris în catalog.
💡 Nivel+ = copilul stăpânește nivelul curent și e pregătit să treacă mai sus, dar promovarea oficială se face doar după examinarea Cambridge.
💰 Contract & Abonament (date financiare cu acces restrictionat)
👥 Frați posibili neinițializați
✕
Copii care împart același număr de telefon al părintelui (deci, probabil, frați) la care câmpul „Nr. frați" nu reflectă mărimea familiei. „Nr. frați corect" = numărul de copii din grup − 1. Verifică grupurile cu părinți diferiți — telefonul poate fi reutilizat, nu neapărat frați.
📱 Trimite Feedback pe WhatsApp
✕
Parametrii template-ului
💡 Valorile sunt pre-completate din datele feedback-ului — pot fi editate inainte de trimitere.
Adauga Lead
✕
💡 Tasteaza prenume / nume / grupa. Foloseste săgețile ↑ ↓ si Enter pentru selectare.
📅 Programare Lectie Demonstrativa
⚠️ Demo fără grupă alocată — mesajele WhatsApp (programare / reminder) vor afișa „—" în locul grupei. Alege „Grupa Demo" mai sus.
Selecteaza o data sugerata sau introdu manual:
⏰ De reluat (follow-up)
Parchează lead-ul până la o dată viitoare — iese din pipeline și reapare automat la data aleasă.
🚫 Motiv pierdere
🔀 Fuzioneaza lead-uri duplicate
⏰ Amână / Reluare
Parchează lead-ul până la o dată viitoare. Iese din pipeline și reapare automat la data aleasă.
📞 Loghează apel
Înregistrează un touch pentru lead — intră în istoric și în calculul SLA (timp de răspuns).
📥 Import Lead din Formular Online
Lipește aici datele unui lead de pe Meta Business Manager (Leads Center → Lead Ads) sau Google Forms (Responses → exportă CSV/JSON).
Sistemul recunoaște automat formatul: JSON Meta, JSON Google Forms, CSV (1 rând) sau text simplu linie-cu-linie.
📋 Preview lead
🔄 Programează recuperare
📋 Detalii absență
✓ potrivire exactă cu nivelul copilului ·
≈ aproape de nivel ·
~ adiacent ·
⚠ distanță mare
⚡ Recuperare nouă — inițializare
Alege copilul — câmpurile de mai jos se completează automat. Apoi apasă Continuă pentru a deschide fereastra de programare a recuperării.
—
—
—
—
📦 Import Bulk din Meta (CSV)
Import simultan al unui CSV exportat din Meta Business Manager → Leads Center → Export CSV.
Sistemul detectează coloanele standard Meta (Created, Name, Email, Phone, Form) și filtrează automat lead-urile suspecte (nume de companii, all-caps, caractere speciale).
📋 Preview parse
✓ Raport import
Elevi Grupa
✕
Elevi:
Nume
Data nasterii
Varsta
Clasa
Participare
Status
Platforma
Nr. Contract
Abonament
Parinte
Telefon
Actiuni
🔄 Schimba Grupa
✕
🎓 Nivel limba
✕
Varianta cu + inseamna „a terminat nivelul, e pregatit pentru urmatorul".
Modificarea se jurnalizeaza in registru pe numele tau.
☀️ Adauga copii in grupa de vara
✕
🔍
☀️ Grupa de vara
✕
Copiii raman alocati grupei lor de origine (an-scolar) — sunt doar mutati TEMPORAR, pe durata perioadei de vara. Alege „— Scoate din grupa de vara —" pentru a anula alocarea.
⏸ Schimba status pe interval
✕
🏆 Raport Recomandari
✕
#
Nume
Prenume
Locatia
Grupa
Recomandari aduse
A fost recomandat
➕ Recomandare manuala
Leaga un cursant care a recomandat (recomandator) de cel recomandat, pentru recomandarile care nu au venit printr-un lead.
🎯 Raport Atribuire (UTM)
✕
Doar lead-urile cu UTM captat (trafic spre formularul de site).
#
Campanie
Leads
Demo
Înscriși
Pierduți
Rată conversie
⏱ Raport SLA (timpi de răspuns)
✕
#
Grup
Leads
% primul contact
Timp mediu 1ul contact
% în cadență
Timp mediu decizie
Înscriși
📄 Raport status leads (locații × surse)
✕
Cohortă după data intrării lead-ului. Statusul = cel curent.
Detalii Copil
✕
Adauga Utilizator
✕
💡 Format: 1 litera prenume + 2 litere nume (ex: Ema Redis → ERE)
🔑 Parola acces
💡 La editare: lasa campul gol pentru a NU modifica parola existenta. Doar administratorii pot seta/modifica parole.
💡 La schimbarea rolului, permisiunile implicite se actualizeaza automat. Poti bifa/debifa individual.
🛡️ Autentificare în doi pași (2FA)
✕
Adauga Sedinta
✕
🤖 Task-uri generate de Agent AI
✕
Revizuieste task-urile sugerate de AI. Poti edita textul, schimba responsabilul sau debifa pe cele nedorite inainte de a le salva.
💾 Gestionare Date si Sincronizare
✕
📊 Statistici inregistrari
☁️ Stocare în Cloud (Supabase)
Datele sunt stocate securizat în Supabase (PostgreSQL gazduit in Frankfurt, EU), conform GDPR. Browser-ul nu mai pastreaza nicio copie locala a datelor: tot ce vezi se incarca de fiecare data din cloud, deci pe calculator nu raman date personale nici dupa inchiderea aplicatiei.
Cache local de date—
Date personale pe acest calculator—
📥 Export Date (Backup)
Descarca un fisier JSON cu TOATE datele (cataloage, leads, registru, sedinte, taskuri, useri, setari, tickete service, evenimente, contracte + tabele Supabase: whatsapp_log, relatii). 💡 Exporta dintr-un cont de Administrator pentru date complete (cele financiare lipsesc altfel). Fisierele binare din Storage (PNG feedback, biblioteca) NU sunt incluse — pentru ele foloseste backup-ul SQL (backup-db.ps1).
☁️ Sincronizare cache local → Cloud
Trimite datele din cache-ul local (browser) la Supabase. Util după Import Excel/JSON ca să persiste datele după reload.
Operațiunea actualizează datele existente în cloud cu cele din cache local (UPSERT). ⚠️ Recomandare: înainte de a apăsa, fă Export JSON pentru siguranță.
📂 Import Date (Restaurare)
⚠️ Import-ul inlocuieste complet datele existente. Fa un export inainte pentru siguranta.
📊 Import din Excel (pe categorii)
Adaugare sau actualizare pe baza fisierelor Excel exportate anterior. Combina datele cu cele existente.
⚠️ Actiuni distructive
Operatii ireversibile. Fa un export inainte de a continua.
➕ Adauga copil din afara grupei
✕
Bifează dacă elevul recuperează înainte de a lipsi. Se creează un credit care acoperă automat prima absență viitoare din grupa lui (max. 3 credite active). Doar pentru status „Recuperare".
💡 Locatie goala = conditia se aplica pe toate locatiile firmei. La grupa/eveniment, „— toate —" acopera tot ce e legat de locatie. „Conditie dedicata" leaga conditia de un beneficiar special (catalog in Financiar → Beneficiari speciali).
💠 Preț special
✕
Înlocuiește abonamentul copilului pe intervalul dat. În afara intervalului se aplică regula din „Administrare → Preturi".
💡 Pentru un copil nou (preț nou din start): lasă „de la" gol și pune „până la" = ziua dinaintea startului regulii noi (ex. 30.09), ca din octombrie să revină pe regulă. Butonul „✨ Preț nou" face asta automat.
👥 Preț special pentru mai mulți copii
✕
Ce aplic
💡 „Ajustare procentuală/sumă" se calculează din prețul de regulă curent al fiecărui copil (Σ condițiilor de abonament, azi). Copiii fără preț de regulă sunt săriți la aceste moduri.
💡 Click pe „Generează / Dezvoltă cu AI": dacă lași gol → AI generează de la zero pe baza datelor. Dacă completezi câteva note schematice → AI le dezvoltă într-un text fluent, păstrând conținutul tău.
💡 La salvare, se va genera un fișier Word (.docx) descărcabil și înregistrat ca atașament WhatsApp în Istoric Actiuni.
✗ Respinge Feedback
✕
⚠️ Feedback-ul va fi marcat ca respins. Profesorul poate vedea motivul si poate genera o noua versiune.
🗣️ Testimonial
✕
➕ Cere testimonial
✕
Un singur link/QR reutilizabil, afisat in centru. Raspunsurile sunt anonime.
✍️ Adauga testimonial manual
✕
Pentru testimoniale primite offline (verbal, WhatsApp) sau deja afisate pe site. Cele cu stare „Publicat" + consimtamant apar pe site prin widget.
📚 Adauga Resursa
✕
💡 Notă: Fișierele sunt stocate securizat în Supabase Storage (Frankfurt, EU). Limita maximă: 90 MB per fișier. Accesibile doar utilizatorilor autentificați.
📦 Upload Bulk Resurse
✕
📁
Trage aici un folder sau fisiere
sau click pentru a selecta
0 fisiere selectate
Total: 0 KB
Fisier
Tip *
Nume resursa *
Descriere (🤖 AI per rand)
Pregatire...
0 / 0
⚙️ Gestionare Tipuri Resurse
✕
💡 Codul de 3 litere se foloseste pentru a genera ID-uri auto pentru fiecare resursa (ex: FAC-001 pentru „Fisa de Activitati"). Tipurile deja folosite in resurse NU pot fi sterse.
Tipuri inregistrate
Tip nou de resursa
✕
📚 Selectează Resurse din Bibliotecă
✕
💡 Bifează resursele pe care vrei să le adaugi în formularul de feedback. Resursele deja adăugate sunt afișate cu fundal verde.
🔍
Selecție: 0
Cod
Tip
Nume Resursa
Descriere
Fisier
Adaugat
📅 Gestionare Perioade Orar
✕
💡 Defineste intervalele pentru fiecare tip de orar. An Scolar (grupe regulate) · Activitati Vara (grupe tematice cu profesori multipli) · Vacanta (fara activitate).
Perioade inregistrate
Adauga Perioada
✕
❓ Ghid de Utilizare CRM
✕
🔍
💡 Sfat: poti deschide acest ghid in orice moment din meniul lateral → Help
📞 Inregistrare apel telefonic
✕
💡 Rezumatul va fi salvat ca eveniment „📞 Call efectuat" in Istoric Actiuni. Daca ai selectat mai multi copii, vei completa rezumatul individual pentru fiecare.
0 caractere — fii cat mai specific pentru viitoarele consultari
📷 Vizualizare imagine
✕
⚠️
Confirmare
Esti sigur?
📦 Upload Bulk Contracte
✕
📁
Trage aici fisierele .pdf sau .docx
sau click pentru a selecta — max 20 MB / fisier
Fisiere selectate:
💡 La upload, contractele se inregistreaza cu Nr Contract = numele fisierului fara extensie. Copilul, parintele si restul detaliilor se completeaza ulterior prin Editare. (Matching AI automat vine la Pas 6.)
🧹 Fisiere orfane in Storage
✕
🔁 Curăță duplicate (după Nr Contract)
✕
Grupuri de contracte cu acelasi Nr Contract. Pentru fiecare grup, selecteaza care ramane (verde); restul vor fi sterse din DB local, cloud si Storage.
🤖 AI Match — Contracte nelegate
✕
Mr. Neuron analizeaza contractele fara copil legat. Regex pe nume fisier mai intai (rapid, sigur), apoi AI pentru restul. Confidence ≥0.8 = auto-acceptabil.
📥 Template Contract
✕
📁 Template master (.docx, per user)
Se verifica...
Template-ul tau personal. Trebuie sa contina placeholderele de mai jos. Daca nu ai unul, descarca scheletul-exemplu de la Optiunea 1, modifica-l in Word si reincarca-l aici.
💡 Bloc conditional beneficiar: pentru un singur template care merge si la persoana fizica si la juridica, foloseste sectiuni docxtemplater — {#IS_JURIDIC}…{/IS_JURIDIC} (apare doar la firma) si {^IS_JURIDIC}…{/IS_JURIDIC} (apare doar la persoana fizica). Tag-ul de inceput/sfarsit trebuie pus pe un rand separat.
OPTIUNEA 1: Descarca template gol
Daca exista template master, il descarci ca atare. Daca nu, primesti un schelet-exemplu cu placeholderele ca text (pe care il poti modifica si re-uploada ca master).
OPTIUNEA 2: Genereaza pre-completat din date copil
Acelasi template (master sau schelet-exemplu), cu campurile inlocuite automat din datele copilului selectat. Daca vrei sa-l adaugi in registru, foloseste „+ Adauga Contract" cu fisierul descarcat.
📄 Editeaza Contract
✕
💡 Tasteaza prenume / nume / grupa. ↑ ↓ navigare, Enter selectare.
💡 Persoana juridica: contractul se incheie cu firma beneficiara. Datele se salveaza pe fisa copilului (Contract & Abonament).
🏢 Date firma beneficiara (se salveaza pe fisa copilului)
📐 Valoare calculata
—
(incarca un fisier nou mai jos pentru a-l inlocui)
📁 Template contract (.docx) — folosit la „Genereaza si descarca"
Se verifica...
Acelasi template folosit si in „📥 Template". Trebuie sa contina placeholderele {NUME_COPIL}, {NR_CONTRACT}, {DATA_CONTRACT}, {FIRMA_DENUMIRE} etc.
📄 Adauga Contract Eveniment
✕
—
💡 Contract de eveniment — nu necesita inscrierea lead-ului ca elev. Se genereaza si se descarca .docx (fara inregistrare salvata).
🏢 Date firma beneficiara
📐 Valoare calculata — conditii non-abonament
—
📁 Template contract eveniment (.docx)
Se verifica...
Template SEPARAT de cel standard. Trebuie sa contina {CONDITII_SELECTATE}, {VALOARE_TOTALA_FACTURATA}, {EVENIMENTE} etc. Daca lipseste, se foloseste scheletul-exemplu.
💬 Chat
Selecteaza un canal
Selectează un canal sau utilizator pentru a începe.
🦉 Mr. Neuron
🔐
Cheie API neconfigurata
Trebuie sa configurezi cheia API Anthropic in pagina Setup pentru a folosi Mr. Neuron.