FAQ — Probleme frecvente și soluții
Răspunsuri rapide la cele mai comune întrebări. Dacă problema ta nu e aici, caută în bara de search sau consultă ghidul departamentului tău.
Autentificare & Acces
Nu mă pot loga — rămân pe pagina de autentificare
Cauze posibile:
- Parola e greșită (atenție la majuscule)
- Contul e dezactivat de administrator
- Cookie-urile browserului sunt blocate
Soluție:
- Încearcă butonul „Am uitat parola" de pe pagina de login
- Dacă nu funcționează, cere administratorului să verifice contul la
/admin/staff→ caută utilizatorul → verifică dacă e activ - Încearcă în browser incognito sau alt browser
Văd mesajul „Acces interzis" sau sunt redirecționat la dashboard
Cauza: Rolul tău nu are permisiunea necesară pentru acel modul.
Soluție:
- Solicită administratorului să verifice rolul tău la
/admin/roles - Găsește rolul asignat contului tău și activează permisiunea lipsă
- Deloghează-te și loghează-te din nou după modificare
Nu văd un modul în sidebar deși ar trebui să fie acolo
Cauza: Modulul nu e activat pentru rolul tău SAU modulul nu e instalat pe instanță.
Soluție:
- Verifică la
/admin/roles→ rolul tău → dacă modulul apare în listă - Dacă nu apare deloc în listă, contactează administratorul — modulul poate necesita un pachet suplimentar
Leads & Pipeline
Lead-ul creat nu apare în pipeline (Kanban)
Cauza: Lead-ul a fost creat fără un status asociat pipeline-ului activ.
Soluție:
- Deschide lead-ul → verifică câmpul Status
- Verifică la
/admin/leads/pipelinescă statusul lead-ului e inclus în pipeline - Dacă lead-ul are status „Junk" sau „Pierdut" — nu apare în Kanban (comportament normal)
Lead-urile din formularul web nu apar în CRM
Cauza: Formularul nu e corect configurat sau domeniul site-ului blochează requestul.
Verificare:
/admin/leads/forms→ deschide formularul → copiază codul embed din nou- Verifică că domeniul site-ului e în lista de domenii permise (dacă există setare CORS)
- Testează trimitând manual formularul și verificând imediat în
/admin/leads
Lead-urile din Facebook Ads nu sosesc automat
Cauza: Webhook-ul Facebook nu e configurat sau token-ul a expirat.
Soluție:
/admin/facebookleadsintegration→ verifică dacă App ID, App Secret și Page Token sunt completate- Verifică în Facebook Business Manager că webhook-ul CRM e înregistrat și activ
- Testează cu butonul „Test" din configurarea Facebook
Scorul MA al lead-ului nu crește deși a deschis emailurile
Cauza: Email clientele cu Apple Mail Privacy Protection (MPP) blochează tracking-ul de deschidere.
Explicație: MPP pre-încarcă pixelul de tracking fără ca utilizatorul să deschidă efectiv emailul — dă false positives SAU blochează complet.
Soluție: Folosește click-urile pe linkuri ca semnal principal (mai fiabil decât opens). Configurează trigger-urile MA pe click = 1 în loc de open = 1.
Facturi & Plăți
Factura trimisă nu ajunge la client (email)
Cauze posibile:
- SMTP neconfigurat sau cu credențiale greșite
- Adresa de email a clientului lipsește sau e greșită
- Emailul a ajuns în spam la destinatar
Soluție:
- Verifică setările SMTP la
/admin/settings→ Email Settings → trimite un email de test - Verifică că clientul are email completat la
/admin/clients - Roagă clientul să verifice folderul Spam și să adauge adresa ta la lista albă
Factura rămâne cu statusul „Netrimisă" deși am apăsat Trimite
Cauza: Eroare SMTP silențioasă sau timeout.
Soluție:
- Verifică log-ul de email la
/admin/utilities/pipe_logsau/admin/utilities/activity_log - Testează SMTP din
/admin/settings→ Email → buton Test - Ca workaround: descarcă PDF-ul facturii și trimite manual din clientul tău de email
Plata înregistrată nu închide factura (rămâne Parțial plătită)
Cauza: Suma plătită este mai mică decât totalul facturii cu TVA inclus.
Verificare: Deschide factura → compară Total (cu TVA) cu suma plătită înregistrată.
Soluție: Înregistrează o plată suplimentară pentru diferența rămasă. Verifică că modul de rotunjire al TVA-ului e corect în setări.
Comisionul nu s-a calculat deși factura e plătită
Cauze posibile:
- Agentul nu are o politică de comision asignată
- Perioada de așteptare configurată (
commission_calculate_after_days) nu a expirat - Factura nu a fost generată dintr-o propunere/comandă legată de agent
Soluție:
/admin/commission/applicable_staff→ verifică că agentul are o politică activă- Verifică setarea de zile de așteptare în politica de comision
- Dacă factura e creată manual (nu din propunere), comisionul trebuie adăugat manual
eFactura (ANAF)
eFactura returnează eroare la trimitere
Erori frecvente și soluții:
| Eroare | Cauza | Soluție |
|---|---|---|
| „Token invalid" sau „Token expirat" | Tokenul ANAF a expirat | /admin/billing/efactura → buton Regenerare → reautorizare cu certificatul digital |
| „CIF invalid" | CIF-ul clientului lipsește sau e greșit | Deschide clientul → completează câmpul CIF (fără prefix RO) |
| „Adresă lipsă" | Adresa de facturare a clientului e incompletă | Completează adresa completă (stradă, oraș, județ, cod poștal) |
| „Undefined variable" | Bug XML generat | Retry — sistemul face automat fallback la endpoint alternativ |
→ eFactura
eFactura e validată de ANAF dar nu găsesc PDF-ul semnat
Soluție:
- Deschide factura → buton eFactura → Descarcă arhivă
- Arhiva ZIP conține: XML-ul semnat + PDF-ul generat de ANAF
- Dacă butonul nu apare, statusul facturii nu e încă „Validat (OK)" — verifică statusul cu butonul Verifică status
Depozit & Stoc
Stocul unui produs apare negativ
Cauza: O ieșire de stoc (livrare, bon de consum) a fost înregistrată fără o recepție prealabilă.
Soluție:
- Verifică istoricul stocului la
/admin/warehouse/warehouse_history→ filtrează după produs - Identifică tranzacția care a generat negativul
- Creează un Aviz de Recepție retroactiv pentru a corecta stocul
- Pe viitor: blochează ieșirile fără stoc din
/admin/warehouse/setting→Allow negative stock = No
Cantitatea din Packing List nu se potrivește cu stocul disponibil
Cauza: Stocul a fost rezervat de alt Packing List sau comandă.
Soluție:
- Verifică stocul disponibil real în
/admin/warehouse/commodity_list→ coloana Disponibil (stoc total − rezervat) - Verifică ce alte PL-uri au rezervat stocul respectiv
- Dacă marfa a sosit dar nu e recepționată: creează Avizul de Recepție mai întâi
AWB-ul nu se generează din Packing List
Cauze posibile:
- Greutatea sau dimensiunile coletului lipsesc
- Adresa de livrare a clientului e incompletă
- API-ul Innoship/Curier nu e configurat
Soluție:
- Verifică că Packing List-ul are completate: greutate (kg), lungime, lățime, înălțime
- Verifică adresa clientului — trebuie stradă + oraș + județ + cod poștal
- Testează conexiunea API la
/admin/innoship/settingssau/admin/couriers/settings
Achiziții
Comanda de achiziție nu poate fi confirmată
Cauza: Lipsesc câmpuri obligatorii: furnizor, cel puțin un articol, sau data livrare.
Soluție: Deschide PO → completează toate câmpurile marcate cu * → salvează → confirmă.
Avizul de recepție nu actualizează stocul
Cauze posibile:
- Avizul e în status Draft (nevalidat)
- Depozitul destinație nu e selectat
Soluție:
- Deschide avizul → verifică statusul — trebuie să fie Validat/Finalizat
- Verifică că câmpul „Depozit destinație" e completat
- Dacă e validat dar stocul nu s-a actualizat: verifică
/admin/warehouse/warehouse_historypentru tranzacția respectivă
Proiecte & Timesheets
Task-urile nu apar în timesheet-ul angajatului
Cauza: Angajatul nu e asignat la task sau la proiect.
Soluție:
- Deschide task-ul → câmpul Responsabili → adaugă angajatul
- Verifică că proiectul are angajatul în echipă (
/admin/projects→ proiect → tab Members)
Proiectul facturat arată ore care nu corespund cu timesheet-ul
Cauza: Timesheet-urile nu au fost marcate ca Facturabile sau s-au filtrat greșit.
Soluție:
/admin/staff/timesheets→ filtrează după proiect → verifică coloana Billable- La generarea facturii din proiect: verifică că toate orele billable sunt selectate în dialogul de facturare
Marketing & Comunicare
Emailurile din Marketing Automation nu se trimit
Cauze posibile:
- SMTP neconfigurat sau limita zilnică atinsă
- Campania MA e în status Draft (nepublicată)
- Lead-ul nu îndeplinește criteriile segmentului
Soluție:
- Verifică limita zilnică:
/admin/ma→ Settings →email_sending_limit - Verifică că campania e Activă (
published = 1) nu Draft - Deschide campania → Segmente → verifică că lead-ul apare în membrii segmentului
WhatsApp — mesajele trimise nu ajung la client
Cauze posibile:
- Numărul clientului nu e în format internațional (
+40...) - Template-ul mesajului nu e aprobat de Meta (WABA)
- Fereastra de 24h a expirat (pentru conversații inițiate de business)
Soluție:
- Verifică formatul numărului: trebuie
+40XXXXXXXXX(fără spații) /admin/whatsapp/templates→ verifică statusul template-ului — trebuie Aprobat- Dacă fereastra a expirat: poți trimite doar template-uri pre-aprobate (nu mesaje libere)
HR & Payroll
Angajatul nu apare în raportul de salarizare
Cauza: Angajatul nu are un contract activ în HR Profile sau tipul de contract e greșit setat.
Soluție:
/admin/hr_profile/contracts→ verifică că angajatul are un contract activ cu datele corecte- Verifică tipul de angajare (CIM, colaborator, etc.) — influențează ce apare în payroll
Pontajul importat din foaia de prezență nu corespunde cu sistemul
Cauza: Formatul datei sau al orelor din fișierul importat nu corespunde cu setările sistemului.
Soluție:
- Verifică formatul datei așteptat la
/admin/hr_payroll/manage_attendance→ Import → descarcă template-ul - Asigură-te că fusul orar din setările CRM corespunde cu cel din sistemul de pontaj extern
Rapoarte & Date
Raportul de vânzări arată cifre diferite față de facturi
Cauza frecventă: Raportul de vânzări calculează plățile încasate (cash basis), nu valoarea facturilor emise (accrual).
Explicație: O factură emisă pe 30 mai și plătită pe 5 iunie apare în raportul lunii iunie, nu mai.
Soluție: Folosește filtrul de dată pe Data facturii (nu data plății) dacă vrei accrual accounting.
Dashboard-ul arată date din perioadă greșită
Cauza: Widget-urile DataPulse au o perioadă implicită configurată diferit.
Soluție: Click pe widget → icon setări → schimbă perioada (această lună, trimestru, an). Setarea se salvează per utilizator.
Integrări
WooCommerce — comenzile nu sosesc în OmniSales
Cauze posibile:
- Webhook-ul WooCommerce nu e configurat în CRM
- API key-urile WooCommerce sunt greșite sau expirate
- Produsele din WooCommerce nu sunt mapate la produsele CRM
Soluție:
/admin/woocommerce→ verifică că API URL, Consumer Key și Consumer Secret sunt corecte- Verifică că webhook-ul e activ în WooCommerce → Settings → Advanced → Webhooks
- Testează conexiunea cu butonul Test Connection din setările WooCommerce CRM
Workflow Automation — acțiunea automată nu se execută
Cauze posibile:
- Workflow-ul e dezactivat
- Condiția de trigger nu e îndeplinită exact
- Cron-ul serverului nu rulează
Soluție:
/admin/workflow_automation→ verifică că workflow-ul are statusul Activ- Deschide workflow-ul → verifică condițiile — sunt toate îndeplinite pentru înregistrarea testată?
- Verifică log-ul de execuție dacă există →
/admin/utilities/activity_log
Vânzări — Propuneri și Facturi
Propunerea a expirat — clientul nu mai poate accepta din portal
Cauza exactă (din cod): Butoanele Accept/Decline sunt afișate în portalul client numai dacă open_till >= TODAY. Când data expiră, butoanele dispar complet fără niciun mesaj de eroare — clientul vede propunerea dar nu poate interacționa cu ea.
Câmpul: tblproposals.open_till (date)
Soluție — 2 variante:
Varianta A (recomandată): Deschide propunerea în admin → editează câmpul Valabilă până la → setează o dată în viitor → salvează → trimite din nou clientului.
Varianta B (schimbă statusul): Schimbă manual statusul propunerii la Open (1). Codul detectează că open_till e în trecut și extinde automat data cu +7 zile de la momentul schimbării. Clientul poate accepta în fereastra de 7 zile.
Statusuri propunere: 1=Open · 2=Declined · 3=Accepted · 4=Sent · 5=Revised · 6=Draft
Nu pot converti propunerea în factură — butonul lipsește
Cauza exactă (din cod): Butonul „Convertește în Factură" apare numai dacă toate condițiile sunt îndeplinite simultan:
invoice_id IS NULL— propunerea nu a fost deja convertităestimate_id IS NULL— propunerea nu a fost deja convertită în devizstatus != 7— nu e într-un status intern blocat- Staff-ul are permisiunea
invoices → Create
Verificare rapidă:
- Dacă propunerea are deja un
invoice_idsetat — a fost convertită anterior; butonul e înlocuit cu un link direct la factură - Dacă propunerea e legată de un lead fără client asociat — butonul apare dar e dezactivat (gri,
cursor: not-allowed) - Dacă propunerea nu e asociată niciunui client sau lead — idem, dezactivat
Soluție:
- Verifică permisiunile la
/admin/roles→ rolul tău →Invoices → Create - Dacă propunerea e pe un lead, convertește mai întâi lead-ul în client (
Convertește în Clientdin fișa lead-ului) - Dacă factura există deja, găsește linkul ei direct din tab-ul Invoices al propunerii
Factura recurentă nu s-a generat automat
Cauza exactă (din cod, Cron_model.php, funcția recurring_invoices()): Sunt 5 motive distincte pentru nongenerare:
| Cauza | Câmpul DB | Verificare |
|---|---|---|
| Recurența e dezactivată | tblinvoices.recurring = 0 |
Deschide factura → activează recurența |
| Ciclurile s-au epuizat | cycles == total_cycles și cycles != 0 |
Verifică cycles și total_cycles pe factură |
| Setare „doar facturi plătite" activă | invoices_create_invoice_from_recurring_only_on_paid_invoices = 1 în Settings |
Factura sursă trebuie să fie status = 2 (Paid) |
| Factura sursă e în Draft | status = 6 |
Facturile Draft sunt excluse permanent din cron |
| Cron-ul rulează la ora greșită | invoice_auto_operations_hour în Settings |
Cron-ul verifică strict ora curentă față de ora configurată (implicit 9:00); dacă serverul rulează cron-ul la altă oră, nu se execută nimic |
Soluție pentru cron la oră greșită: /admin/settings → Cron Job Settings → verifică ora configurată și asigură-te că cron-ul serverului rulează la acea oră. Alternativ, testează din admin (declanșarea manuală ignoră verificarea orară).
Client duplicat — cum îl identific și rezolv
Cum detectează sistemul duplicatele:
VAT/CIF — unic în baza de date; sistemul refuză salvarea unui client cu același VAT (cu sau fără prefix „RO"). Verificare:
tblclients.vatnormalizat fără prefix.Companie (warning în dashboard) — dacă există clienți cu același câmp
company, apare un widget de avertizare. Nu blochează, doar informează.Anti-double-click — dacă un client cu același
companysauvata fost creat în ultimele 5 secunde, sistemul redirecționează la cel existent în loc să creeze duplicat.
Funcție de merge: NU există în cod. Clienții duplicați trebuie rezolvați manual:
- Identifică clientul duplicat (cel cu mai puține documente asociate)
- Mută documentele (facturi, proiecte) la clientul „principal" — editează fiecare document
- Șterge duplicatul (dacă nu mai are documente asociate)
Nu pot șterge un client
Cauza exactă (din cod, Clients_model.php, funcția delete()): Sistemul verifică existența documentelor asociate și returnează eroarea referenced dacă găsește:
| Document | Comportament |
|---|---|
Facturi (tblinvoices) |
Blochează dacă modul GDPR e dezactivat |
Comenzi de Vânzare (tblestimates) |
Blochează dacă modul GDPR e dezactivat |
| Credit Notes | Blochează dacă modul GDPR e dezactivat |
Lead-uri (tblleads) |
Blochează întotdeauna |
Comenzi OmniSales (tblcart) |
Blochează întotdeauna |
Proiecte (tblprojects) |
Blochează întotdeauna |
| Tichete | Nu blochează — se șterg automat |
| Contracte | Nu blochează — se șterg automat |
Soluții:
- Cu GDPR activat (
/admin/settings→ GDPR): permite ștergerea cu anonimizare automată a documentelor (conform opțiunilor GDPR). Aceasta este calea legală corectă. - Fără GDPR: mută sau șterge mai întâi toate facturile, devizele, lead-urile, comenzile și proiectele asociate, apoi încearcă din nou ștergerea clientului.
OmniSales & E-commerce
Comanda online are status greșit față de WooCommerce
Cauza exactă (din cod, Omni_sales_helper.php): Statusurile sunt mapate bidirecțional, dar nu toate statusurile OmniSales au mapare inversă spre WooCommerce.
Mapare WooCommerce → OmniSales (completă):
| WooCommerce status | OmniSales index |
|---|---|
pending / pending_payment |
2 |
processing |
1 |
confirm |
3 |
shipping |
4 |
completed / finish |
5 |
refunded |
6 |
return |
7 |
cancelled |
8 |
on-hold |
9 |
failed |
10 |
ready |
15 |
| orice status necunoscut | 0 (Draft) |
Mapare inversă OmniSales → WooCommerce (parțială — doar 6 statusuri): 1→processing · 2→pending · 5→completed · 6→refunded · 8→cancelled · 9→on-hold
Important: Statusurile OmniSales 3 (Confirm), 4 (Shipping), 7 (Return), 15 (Ready), 16 (Stock Unavailable) nu se sincronizează înapoi la WooCommerce. Acestea sunt statusuri interne CRM.
Soluție: Verifică că setarea omni_order_statuses_are_allowed_to_sync include statusurile pe care vrei să le primești. Statusurile „necunoscute" WooCommerce devin automat Draft în OmniSales.
Produsul din comanda online nu apare în comandă
Cauza exactă (din cod, Omni_sales_model.php, funcția add_order_woo()):
Matching-ul se face exclusiv pe câmpul SKU: tblitems.sku_code = WooCommerce line_item.sku
3 scenarii:
| Situație | Ce se întâmplă |
|---|---|
| Produsul WC are SKU și există în CRM | Match corect → apare în comandă |
| Produsul WC are SKU dar NU există în CRM | Sistem creează automat produsul în tblitems cu datele din WooCommerce |
| Produsul WC nu are SKU setat | Produsul este ignorat complet — nu apare în comandă, nu se creează |
Soluție: Asigură-te că toate produsele din WooCommerce au SKU completat. Verifică în WooCommerce Admin → Products → fiecare produs → câmpul SKU. Fără SKU, produsele nu pot fi importate în CRM.
Returul din e-commerce nu a generat Credit Note
Cauza exactă (din cod): Credit Note-ul NU se generează automat la retur. Funcția add_order_return() din Omni_sales_model.php:
- Creează înregistrarea returului în
tblwh_order_returns - Actualizează statusul comenzii originale la 11 (full return) sau 12 (partial return)
- Creează o comandă nouă de tip retur (
original_order_idsetat) - Nu apelează nicio funcție de Credit Note
Credit Note trebuie creat manual:
- Mergi la factura originală aferentă comenzii
/admin/credit_notes→ Adaugă Credit Note → selectează factura sursă- Completează produsele returnate și cantitățile
- Trimite Credit Note-ul la client
Manufacturing (Producție)
Ordinul de producție nu poate trece în Planned
Cauza exactă (din cod, Manufacturing_model.php): La tranziția în planned, sistemul verifică stocul disponibil pentru fiecare componentă din BoM:
inventory_number (din tbl_inventory_manage) < qty_to_consume → flag = 1 → MO blocat
Dacă oricare componentă are stoc insuficient, MO nu trece în Planned și afișează mesajul: [Denumire produs] not_enough_inventory, available_quantity: X.
Ce se întâmplă cu materialele parțial disponibile: Sistemul rezervă ce există (qty_reserved = stoc_disponibil) și marchează restul ca lipsă. Poți trece MO în Planned chiar și cu materiale parțiale — butonul de mark_as_todo face asta — dar MO va genera automat o Cerere de Achiziție pentru diferența.
Soluție:
- Verifică mesajul de eroare exact — îți arată ce produs lipsește și câtă cantitate e disponibilă
- Fie creezi o recepție pentru materialele lipsă (Aviz de Recepție)
- Fie aprobați MO cu materiale parțiale și urmărești Cererea de Achiziție generată automat
Produsul finit nu a intrat în depozit după MO Done
Cauza exactă (din cod, mo_mark_as_done()): La marcarea MO ca Done, sistemul:
- Verifică că
qty_reserved != 0pentru cel puțin o componentă — dacă toate componentele auqty_reserved = 0, funcția returneazăfalseși nu creează nimic - Creează un Aviz de Livrare intern (consumul materialelor)
- Creează un Aviz de Recepție pentru produsul finit în
finished_products_warehouse_id
Condiții obligatorii pe MO:
finished_products_warehouse_id— depozitul destinație trebuie setatproduct_id— produsul finit trebuie specificat- Cel puțin o componentă cu
qty_reserved > 0
Soluție:
- Verifică că MO are Depozit produse finite completat
- Verifică că componentele sunt rezervate (
qty_reserved > 0) — dacă sunt toate 0, apasă din nou „Verifică disponibilitate materiale" - Introdu cantitatea produsă (poate diferi de cantitatea planificată) în dialogul de confirmare
Work Order blocat în „Waiting for another WO"
Cauza exactă (din cod): Un WO rămâne în status waiting_for_another_wo atâta timp cât WO-ul anterior din secvența rutei nu e marcat ca finished. Câmpul care controlează dacă WO-urile pot rula în paralel este start_next_operation pe operațiunea din Routing.
Soluție:
- Varianta normală: Finalizează WO-ul anterior (
Mark Done) — WO-ul curent trece automat înready - Dacă vrei operațiuni paralele: Editează Routing-ul → operațiunea anterioară → activează
Start Next Operation Before Finishing— permite WO-ului următor să înceapă fără să aștepte finalizarea
Finance & Contabilitate
Export SAGA gol sau incomplet
Cauza exactă (din cod, Export.php): SAGA exportă facturile din tblinvoices cu filtrul:
status != 6 (Draft) AND date BETWEEN data_start AND data_end
Nu există filtru pe status Paid — facturile nepaid sunt incluse dacă sunt în perioada selectată. Exportul e gol dacă:
- Perioada selectată e greșită — facturile sunt în altă lună
- Toate facturile sunt Draft (status 6) — singurele excluse
- Câmpul
dateal facturii (data emiterii) e în afara perioadei, chiar dacădue_datee în perioadă — SAGA foloseștedate, nudue_date
Soluție: Verifică data emiterii facturii (nu scadența) și asigură-te că se încadrează în intervalul exportului. Facturile Draft trebuie finalizate (status != 6) înainte de export.
Cursul valutar aplicat pe factură e greșit
Cauza exactă: La crearea facturii, cursul valutar (currency_rate) al fiecărei linii este luat din cursul de schimb la momentul creării. Cursul nu se actualizează automat ulterior.
Câmpul: tblitems_in.currency_rate per linie de factură; tblfinanceinvoices.currency_id pe factură
Soluție:
- Dacă factura e în Draft: șterge și recreează cu cursul corect, sau editează manual liniile
- Dacă factura e trimisă: emite un Credit Note pentru diferența de curs → factură nouă cu cursul corect
- Pe viitor: actualizează cursul de schimb înainte de emiterea facturilor la
/admin/currencies→ editează moneda → actualizează rata
Settings & Administrare
SMTP cu 2FA (Gmail / Outlook) — emailul nu se trimite
Cauza: CRMConnect suportă autentificare SMTP standard (user + parolă) cu SSL sau TLS. Nu suportă OAuth2/XOAUTH2.
Gmail cu 2FA: Nu poți folosi parola contului Gmail. Trebuie să creezi o App Password:
- Contul Google → Security → 2-Step Verification → App passwords
- Generează o parolă pentru „Mail" → copiaz-o
/admin/settings→ Email → SMTP Host:smtp.gmail.com, Port:587, Encryption:tls, User: adresa Gmail, Password: App Password (nu parola contului)
Outlook / Microsoft 365 cu 2FA:
- Dacă organizația permite SMTP AUTH: folosești parola normală cu
smtp.office365.com:587:tls - Dacă SMTP AUTH e dezactivat de admin IT: trebuie activat din Microsoft 365 Admin Center → Users → Mail settings → Authenticated SMTP
- Alternativă: creează un App Password din Microsoft account settings
Verificare: /admin/settings → Email → buton Test Email — trimite un email de test și arată eroarea exactă dacă SMTP eșuează.
Seria facturilor a ajuns la un număr greșit
Cauza: Numărul facturii e stocat în tblinvoices.number (integer) și prefixul în tbloptions cu cheia invoice_prefix (default INV-). Nu există un contor separat — sistemul calculează MAX(number) + 1 la fiecare factură nouă.
Câmpul DB: tblinvoices.number (integer, incrementat automat)
Dacă numărul a sărit (ex: de la 100 la 1000 din greșeală):
- Deschide factura cu numărul greșit → edit → activează Manual Invoice Number → introduci numărul corect
- Facturile viitoare vor continua de la
MAX(number) + 1— deci resetul manual al unei facturi nu afectează numerotarea automată dacă există deja facturi cu numere mai mari
Prefix greșit: /admin/settings → Sales → Invoice Prefix → modifică. Afectează doar facturile noi, nu cele existente.
Tichete & Suport
Emailul clientului nu creează ticket automat (email pipe)
Cauza exactă (din cod, Tickets_model.php, funcția insert_piped_ticket()):
Există 4 motive pentru care email pipe-ul eșuează:
| Motiv | Mesaj în Pipe Log | Soluție |
|---|---|---|
| Email de la adresă neînregistrată + setare „only registered" activă | Unregistered Email Address |
/admin/settings → Tickets → dezactivează Allow only registered clients to open tickets |
| Setare „only replies" activă | Only Replies Allowed by Email |
Dezactivează Accept only replies from email — nu pot fi create tichete noi |
| Limită anti-spam depășită | Exceeded Limit of 10 Tickets within 15 Minutes |
Adresa a trimis >10 emailuri în 15 min — blocat temporar automat |
| ID ticket în subiect dar ticket negăsit | Ticket ID Not Found |
Clientul a modificat subiectul emailului și a eliminat [Ticket#ID] |
Configurare corectă email pipe:
/admin/settings→ Tickets → Email Piping → IMAP/POP3 host, port, user, parolă- Adresa de email configurată trebuie să primească emailurile clienților
- Cron job trebuie să ruleze și să apeleze URL-ul de pipe
Verificare: /admin/utilities/pipe_log — afișează toate emailurile procesate cu statusul lor
Ticketul nu e asignat agentului corect
Cauza: Asignarea automată la departament funcționează pe baza adresei de email destinatar (din setările departamentului). Dacă un email ajunge la o adresă nepotrivită sau departamentul nu are agent implicit setat, ticketul rămâne neasignat.
Soluție:
/admin/settings→ Tickets → Departments → verifică că fiecare departament are Email corect configurat- Setează un agent implicit (Default Assignee) pe departament — ticketele fără asignare specifică merg la el
- Configurează Workflow Automation cu trigger
Ticket Created→ acțiuneaAssign to Staffcu reguli pe departament sau subiect
Depozit & Inventar
Inventarul fizic nu poate fi finalizat (blocat)
Cauza exactă (din cod, lock_physical_inventory()): Funcția de finalizare (lock) verifică:
is_locked == 1 OR status == 2 → returnează false (deja finalizat sau blocat)
Dacă inventarul fizic e deja în status 2 (locked), nu poate fi finalizat din nou.
Ce face finalizarea:
- Setează
is_locked = 1șistatus = 2 - Pentru fiecare produs cu diferență față de stocul curent → creează automat ajustare de stoc (plus sau minus)
- Actualizează
purchase_pricedacă a fost modificat în inventar
Motive frecvente de blocare:
- Inventarul a fost deja finalizat (verifică statusul — dacă e „Blocat/Finalizat", nu mai poți edita)
- Un alt inventar fizic activ există pe același depozit — finalizează-l pe cel vechi mai întâi
Soluție: Dacă inventarul trebuie refăcut, creează unul nou. Nu există funcție de „unlock" — inventarele finalizate sunt imutabile (audit trail).
Audit & Acțiuni Utilizatori
Cum văd ce a făcut un utilizator?
CRMConnect are două locuri unde găsești istoricul acțiunilor, în funcție de ce cauți:
1. Pentru o acțiune specifică pe un client/lead/factură: → Deschide înregistrarea → tab Activity / Activitate Afișează cronologic toate modificările pe acea înregistrare: cine, când, ce a schimbat.
2. Pentru toate acțiunile unui utilizator (indiferent de înregistrare):
→ /admin/utilities/activity_log → filtrează după numele utilizatorului + perioadă
Afișează tot ce a făcut acel staff în sistemul CRM.
Cine a șters o înregistrare?
/admin/utilities/activity_log→ filtrează ziua în care s-a produs- Caută în coloana Description:
Deleted+ tipul înregistrării (ex:Invoice Deleted,Lead Deleted) - Coloana
staffidarată exact cine a efectuat acțiunea
Notă: Înregistrările șterse nu pot fi recuperate din interfață — sunt eliminate fizic sau soft-deleted din DB. Dacă ai nevoie de recuperare, contactează administratorul de server pentru backup.
Cum văd dacă cineva a modificat setările platformei?
/admin/utilities/activity_log- Caută
Settings Updatedîn Description - Log-ul confirmă că setările s-au modificat și cine le-a modificat, dar nu arată câmpul exact — pentru detalii, compară configurația curentă cu un backup anterior
Cum verific că un email automat a fost trimis?
Pentru emailuri din Workflow Automation:
/admin/utilities/activity_log→ cautăWorkflow Automation Executedsau[CRON]- Identifici ce automație s-a declanșat și când
Pentru emailuri de ticket (pipe):
/admin/utilities/pipe_log→ lista completă a emailurilor procesate cu status și eroare exactă dacă a eșuat
Pentru campanii Marketing Automation:
→ /admin/ma → campania → Analytics → coloana Delivery
Cum export istoricul de activitate pentru audit extern?
/admin/utilities/activity_log- Aplică filtrele dorite (perioadă, utilizator)
- Butonul Export → descarcă CSV cu toate înregistrările filtrate
Important: Butonul Clear șterge permanent log-ul — exportă întotdeauna înainte de curățare. Nu există funcție de restore pentru log-ul șters.
→ Ghid complet audit utilizatori · IT Admin — Audit & Monitorizare
Nu găsești răspunsul?
- Caută în bara de search din sidebar — indexul acoperă toate 200+ pagini
- Verifică ghidul departamentului tău → Department Guides
- Urmărește workflow-ul pentru procesul tău → End-to-end Workflows
- Contactează suportul cu: URL-ul paginii, mesajul exact de eroare, și pașii care au dus la problemă