CRMconnect Azuvio · Docs

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:

  1. Încearcă butonul „Am uitat parola" de pe pagina de login
  2. Dacă nu funcționează, cere administratorului să verifice contul la /admin/staff → caută utilizatorul → verifică dacă e activ
  3. Î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:

  1. Solicită administratorului să verifice rolul tău la /admin/roles
  2. Găsește rolul asignat contului tău și activează permisiunea lipsă
  3. Deloghează-te și loghează-te din nou după modificare

Roluri & Permisiuni


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:

  1. Verifică la /admin/roles → rolul tău → dacă modulul apare în listă
  2. 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:

  1. Deschide lead-ul → verifică câmpul Status
  2. Verifică la /admin/leads/pipelines că statusul lead-ului e inclus în pipeline
  3. Dacă lead-ul are status „Junk" sau „Pierdut" — nu apare în Kanban (comportament normal)

Lead Pipelines


Lead-urile din formularul web nu apar în CRM

Cauza: Formularul nu e corect configurat sau domeniul site-ului blochează requestul.

Verificare:

  1. /admin/leads/forms → deschide formularul → copiază codul embed din nou
  2. Verifică că domeniul site-ului e în lista de domenii permise (dacă există setare CORS)
  3. Testează trimitând manual formularul și verificând imediat în /admin/leads

Lead Capture Forms


Lead-urile din Facebook Ads nu sosesc automat

Cauza: Webhook-ul Facebook nu e configurat sau token-ul a expirat.

Soluție:

  1. /admin/facebookleadsintegration → verifică dacă App ID, App Secret și Page Token sunt completate
  2. Verifică în Facebook Business Manager că webhook-ul CRM e înregistrat și activ
  3. Testează cu butonul „Test" din configurarea Facebook

Facebook Leads Integration


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:

  1. SMTP neconfigurat sau cu credențiale greșite
  2. Adresa de email a clientului lipsește sau e greșită
  3. Emailul a ajuns în spam la destinatar

Soluție:

  1. Verifică setările SMTP la /admin/settings → Email Settings → trimite un email de test
  2. Verifică că clientul are email completat la /admin/clients
  3. 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:

  1. Verifică log-ul de email la /admin/utilities/pipe_log sau /admin/utilities/activity_log
  2. Testează SMTP din /admin/settings → Email → buton Test
  3. 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:

  1. Agentul nu are o politică de comision asignată
  2. Perioada de așteptare configurată (commission_calculate_after_days) nu a expirat
  3. Factura nu a fost generată dintr-o propunere/comandă legată de agent

Soluție:

  1. /admin/commission/applicable_staff → verifică că agentul are o politică activă
  2. Verifică setarea de zile de așteptare în politica de comision
  3. Dacă factura e creată manual (nu din propunere), comisionul trebuie adăugat manual

Sales Commission


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:

  1. Deschide factura → buton eFacturaDescarcă arhivă
  2. Arhiva ZIP conține: XML-ul semnat + PDF-ul generat de ANAF
  3. 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:

  1. Verifică istoricul stocului la /admin/warehouse/warehouse_history → filtrează după produs
  2. Identifică tranzacția care a generat negativul
  3. Creează un Aviz de Recepție retroactiv pentru a corecta stocul
  4. Pe viitor: blochează ieșirile fără stoc din /admin/warehouse/settingAllow negative stock = No

Warehouse History


Cantitatea din Packing List nu se potrivește cu stocul disponibil

Cauza: Stocul a fost rezervat de alt Packing List sau comandă.

Soluție:

  1. Verifică stocul disponibil real în /admin/warehouse/commodity_list → coloana Disponibil (stoc total − rezervat)
  2. Verifică ce alte PL-uri au rezervat stocul respectiv
  3. 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:

  1. Greutatea sau dimensiunile coletului lipsesc
  2. Adresa de livrare a clientului e incompletă
  3. API-ul Innoship/Curier nu e configurat

Soluție:

  1. Verifică că Packing List-ul are completate: greutate (kg), lungime, lățime, înălțime
  2. Verifică adresa clientului — trebuie stradă + oraș + județ + cod poștal
  3. Testează conexiunea API la /admin/innoship/settings sau /admin/couriers/settings

Packing Lists


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:

  1. Avizul e în status Draft (nevalidat)
  2. Depozitul destinație nu e selectat

Soluție:

  1. Deschide avizul → verifică statusul — trebuie să fie Validat/Finalizat
  2. Verifică că câmpul „Depozit destinație" e completat
  3. Dacă e validat dar stocul nu s-a actualizat: verifică /admin/warehouse/warehouse_history pentru tranzacția respectivă

Goods Receipt Note


Proiecte & Timesheets

Task-urile nu apar în timesheet-ul angajatului

Cauza: Angajatul nu e asignat la task sau la proiect.

Soluție:

  1. Deschide task-ul → câmpul Responsabili → adaugă angajatul
  2. 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:

  1. /admin/staff/timesheets → filtrează după proiect → verifică coloana Billable
  2. 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:

  1. SMTP neconfigurat sau limita zilnică atinsă
  2. Campania MA e în status Draft (nepublicată)
  3. Lead-ul nu îndeplinește criteriile segmentului

Soluție:

  1. Verifică limita zilnică: /admin/ma → Settings → email_sending_limit
  2. Verifică că campania e Activă (published = 1) nu Draft
  3. Deschide campania → Segmente → verifică că lead-ul apare în membrii segmentului

Marketing Automation


WhatsApp — mesajele trimise nu ajung la client

Cauze posibile:

  1. Numărul clientului nu e în format internațional (+40...)
  2. Template-ul mesajului nu e aprobat de Meta (WABA)
  3. Fereastra de 24h a expirat (pentru conversații inițiate de business)

Soluție:

  1. Verifică formatul numărului: trebuie +40XXXXXXXXX (fără spații)
  2. /admin/whatsapp/templates → verifică statusul template-ului — trebuie Aprobat
  3. Dacă fereastra a expirat: poți trimite doar template-uri pre-aprobate (nu mesaje libere)

WhatsApp


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:

  1. /admin/hr_profile/contracts → verifică că angajatul are un contract activ cu datele corecte
  2. 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:

  1. Verifică formatul datei așteptat la /admin/hr_payroll/manage_attendance → Import → descarcă template-ul
  2. 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.

DataPulse


Integrări

WooCommerce — comenzile nu sosesc în OmniSales

Cauze posibile:

  1. Webhook-ul WooCommerce nu e configurat în CRM
  2. API key-urile WooCommerce sunt greșite sau expirate
  3. Produsele din WooCommerce nu sunt mapate la produsele CRM

Soluție:

  1. /admin/woocommerce → verifică că API URL, Consumer Key și Consumer Secret sunt corecte
  2. Verifică că webhook-ul e activ în WooCommerce → Settings → Advanced → Webhooks
  3. Testează conexiunea cu butonul Test Connection din setările WooCommerce CRM

WooCommerce


Workflow Automation — acțiunea automată nu se execută

Cauze posibile:

  1. Workflow-ul e dezactivat
  2. Condiția de trigger nu e îndeplinită exact
  3. Cron-ul serverului nu rulează

Soluție:

  1. /admin/workflow_automation → verifică că workflow-ul are statusul Activ
  2. Deschide workflow-ul → verifică condițiile — sunt toate îndeplinite pentru înregistrarea testată?
  3. Verifică log-ul de execuție dacă există → /admin/utilities/activity_log

Workflow Automation


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 deviz
  • status != 7 — nu e într-un status intern blocat
  • Staff-ul are permisiunea invoices → Create

Verificare rapidă:

  1. Dacă propunerea are deja un invoice_id setat — a fost convertită anterior; butonul e înlocuit cu un link direct la factură
  2. Dacă propunerea e legată de un lead fără client asociat — butonul apare dar e dezactivat (gri, cursor: not-allowed)
  3. 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 Client din 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/settingsCron 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:

  1. VAT/CIF — unic în baza de date; sistemul refuză salvarea unui client cu același VAT (cu sau fără prefix „RO"). Verificare: tblclients.vat normalizat fără prefix.

  2. Companie (warning în dashboard) — dacă există clienți cu același câmp company, apare un widget de avertizare. Nu blochează, doar informează.

  3. Anti-double-click — dacă un client cu același company sau vat a 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:

  1. Identifică clientul duplicat (cel cu mai puține documente asociate)
  2. Mută documentele (facturi, proiecte) la clientul „principal" — editează fiecare document
  3. Ș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:

  1. Creează înregistrarea returului în tblwh_order_returns
  2. Actualizează statusul comenzii originale la 11 (full return) sau 12 (partial return)
  3. Creează o comandă nouă de tip retur (original_order_id setat)
  4. Nu apelează nicio funcție de Credit Note

Credit Note trebuie creat manual:

  1. Mergi la factura originală aferentă comenzii
  2. /admin/credit_notes → Adaugă Credit Note → selectează factura sursă
  3. Completează produsele returnate și cantitățile
  4. 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:

  1. Verifică mesajul de eroare exact — îți arată ce produs lipsește și câtă cantitate e disponibilă
  2. Fie creezi o recepție pentru materialele lipsă (Aviz de Recepție)
  3. 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:

  1. Verifică că qty_reserved != 0 pentru cel puțin o componentă — dacă toate componentele au qty_reserved = 0, funcția returnează false și nu creează nimic
  2. Creează un Aviz de Livrare intern (consumul materialelor)
  3. 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 setat
  • product_id — produsul finit trebuie specificat
  • Cel puțin o componentă cu qty_reserved > 0

Soluție:

  1. Verifică că MO are Depozit produse finite completat
  2. Verifică că componentele sunt rezervate (qty_reserved > 0) — dacă sunt toate 0, apasă din nou „Verifică disponibilitate materiale"
  3. 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:

  1. Varianta normală: Finalizează WO-ul anterior (Mark Done) — WO-ul curent trece automat în ready
  2. 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ă:

  1. Perioada selectată e greșită — facturile sunt în altă lună
  2. Toate facturile sunt Draft (status 6) — singurele excluse
  3. Câmpul date al facturii (data emiterii) e în afara perioadei, chiar dacă due_date e în perioadă — SAGA folosește date, nu due_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:

  1. Dacă factura e în Draft: șterge și recreează cu cursul corect, sau editează manual liniile
  2. Dacă factura e trimisă: emite un Credit Note pentru diferența de curs → factură nouă cu cursul corect
  3. 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:

  1. Contul Google → Security → 2-Step Verification → App passwords
  2. Generează o parolă pentru „Mail" → copiaz-o
  3. /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:

  1. Dacă organizația permite SMTP AUTH: folosești parola normală cu smtp.office365.com:587:tls
  2. Dacă SMTP AUTH e dezactivat de admin IT: trebuie activat din Microsoft 365 Admin Center → Users → Mail settings → Authenticated SMTP
  3. 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ă):

  1. Deschide factura cu numărul greșit → edit → activează Manual Invoice Number → introduci numărul corect
  2. 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:

  1. /admin/settings → Tickets → Departments → verifică că fiecare departament are Email corect configurat
  2. Setează un agent implicit (Default Assignee) pe departament — ticketele fără asignare specifică merg la el
  3. Configurează Workflow Automation cu trigger Ticket Created → acțiunea Assign to Staff cu 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:

  1. Setează is_locked = 1 și status = 2
  2. Pentru fiecare produs cu diferență față de stocul curent → creează automat ajustare de stoc (plus sau minus)
  3. Actualizează purchase_price dacă 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?

  1. /admin/utilities/activity_log → filtrează ziua în care s-a produs
  2. Caută în coloana Description: Deleted + tipul înregistrării (ex: Invoice Deleted, Lead Deleted)
  3. Coloana staffid arată 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?

  1. /admin/utilities/activity_log
  2. Caută Settings Updated în Description
  3. 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:

  1. /admin/utilities/activity_log → caută Workflow Automation Executed sau [CRON]
  2. Identifici ce automație s-a declanșat și când

Pentru emailuri de ticket (pipe):

  1. /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?

  1. /admin/utilities/activity_log
  2. Aplică filtrele dorite (perioadă, utilizator)
  3. 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?

  1. Caută în bara de search din sidebar — indexul acoperă toate 200+ pagini
  2. Verifică ghidul departamentului tăuDepartment Guides
  3. Urmărește workflow-ul pentru procesul tău → End-to-end Workflows
  4. Contactează suportul cu: URL-ul paginii, mesajul exact de eroare, și pașii care au dus la problemă