IT / Administrator
Roluri acoperite: System Administrator · IT Manager · Super Admin · Configurator Platformă
Module principale: Settings · Staff · Roles & Permissions · Custom Fields · API · Webhooks · Workflow Automation · 2FA · Utilities · Theme · Import/Export
Cine sunt utilizatorii acestui ghid
| Rol | Ce face în CRMConnect |
|---|---|
| System Administrator | Configurare completă platformă, gestionare utilizatori, securitate |
| IT Manager | Integrări API/Webhooks, automatizări, import/export date |
| Super Admin | Acces complet, configurare roluri și permisiuni, auditare activitate |
| Configurator Platformă | Câmpuri custom, teme, meniu, setări specifice business |
Harta responsabilităților IT/Admin
UTILIZATORI & ACCES CONFIGURARE PLATFORMĂ
──────────────────── ─────────────────────
Staff Management General Settings (toate categoriile)
Roles & Permissions Company Branding (logo, culori, CSS)
Two-Factor Authentication Email / SMTP
Custom Fields Billing Config (serii facturi)
Contact Permissions Localization (limbă, dată, monedă)
INTEGRĂRI & AUTOMATIZĂRI MONITORIZARE & AUDIT
──────────────────────── ────────────────────
API Management Activity Log
Webhooks Ticket Pipe Log
Workflow Automation Email Queue
Zapier / Make Webhook Debug Log
External CRM Sync
DATE & UTILITĂȚI SECURITATE
───────────────── ──────────
Excel Import 2FA enforcement
Media Files Seat limit management
Bulk PDF Export Admin protection rules
Tag Management Password policies
Database / Backup
Rutina unui System Administrator
La configurarea inițială (one-time)
1. Date companie /admin/settings (tab: General)
2. Logo + favicon /admin/settings → upload logo
3. SMTP email /admin/settings (tab: Email) → test
4. Serii facturi /admin/billing/config
5. Taxe TVA /admin/taxes
6. Monede + curs /admin/currencies
7. Moduri plată /admin/paymentmodes
8. Roluri personalizate /admin/roles
9. Departamente /admin/departments
10. Utilizatori staff /admin/staff
11. 2FA pentru admini /admin/authenticator_2fa
12. Câmpuri custom /admin/custom_fields
13. Automatizări de bază /admin/workflow_automation
14. Webhooks /admin/webhooks
15. Integrare API /admin/api/api_management
Zilnic / Săptămânal (Monitorizare)
- Activity Log
/admin/utilities/activity_log— cine a făcut ce în platformă - Email Queue
/admin/utilities→ Email Queue — emailuri blocate sau în eroare - Ticket Pipe Log
/admin/utilities/pipe_log— erori de import email - Webhook Logs
/admin/webhooks→ Logs per webhook — cereri eșuate - API Usage
/admin/api/api_management— utilizarea API-ului per token
Setări generale (General Settings)
Unde: /admin/settings
Setările sunt organizate în tab-uri. Iată ce configurezi în fiecare:
Tab: General
| Setare | Descriere |
|---|---|
| Denumire companie | Apare pe toate documentele și emailurile |
| Logo (light mode) | PNG/JPG — afișat în header admin și pe documente PDF |
| Logo (dark mode) | Versiunea pentru tema întunecată |
| Favicon | Iconița browser tab |
| Semnătură | Imaginea ștampilei/semnăturii pe documente |
| PDF logo width | Lățimea logo-ului pe facturile PDF |
| Adresă fizică | Adresa companiei pe documente |
Tab: Email
| Setare | Descriere |
|---|---|
email_protocol |
smtp (recomandat) / crmconnect (server implicit) |
smtp_host |
Serverul SMTP (ex: smtp.gmail.com, mail.firma.ro) |
smtp_port |
Port: 587 (TLS), 465 (SSL), 25 (plain) |
smtp_email |
Adresa de expediere (From) |
smtp_username |
Utilizatorul de autentificare SMTP |
smtp_password |
Parola (stocată criptat) |
smtp_encryption |
tls / ssl / none |
| Email header/footer | HTML personalizat pentru toate emailurile |
| Email signature | Semnătura automată la emailuri |
Test SMTP: Buton Send Test Email după salvare — verifici că emailurile ajung înainte de a activa platforma.
Server implicit CRMConnect (fallback dacă nu ai SMTP propriu):
- Host:
45.87.122.101:2525 - From:
noreply@crmconnect.ai
Tab: Localization
| Setare | Descriere |
|---|---|
| Limbă implicită | Limba interfeței admin |
| Format dată | DD/MM/YYYY sau MM/DD/YYYY |
| Separator mii | . sau , |
| Separator zecimale | , sau . |
| Fusul orar | Crucial pentru timestamps corecte |
Tab: Clients (Portal Client)
Configurezi ce vede și poate face clientul în portalul propriu:
- Tab-uri vizibile pe profilul clientului
- Permisiuni implicite de contact (ce pot contactele sa vadă)
- Vizibilitate documente (facturi, propuneri, contracte)
Tab: Cronjob
Configurezi URL-ul de cron și verifici ultima execuție. Cron-ul este esențial pentru:
- Generare facturi recurente
- Sincronizare WooCommerce
- Procesare email queue
- Notificări expirare contracte
- Marketing Automation
Configurare cron job (server):
* * * * * wget -q -O /dev/null "https://firma.ro/cron/index"
Sau cu curl:* * * * * curl -s "https://firma.ro/cron/index" > /dev/null
Tab: Security / E-Sign
- Configurare semnătură electronică (pentru contracte și documente)
- Setări autentificare
Gestionarea Staff-ului
Unde: /admin/staff
Adăugare utilizator nou
- Adaugă Staff → completezi:
- Email (unic în sistem — este username)
- Prenume, Nume
- Rol (din lista de roluri configurate)
- Departamente (poate fi în mai multe)
- Parolă temporară
- Bifezi Trimite email de bun venit (cu link de setare parolă)
- Salvezi
Câmpuri cheie din tblstaff (IT perspective)
| Câmp | Note |
|---|---|
email |
Username și adresa de notificări (unic) |
active |
1 = poate accesa CRM; 0 = blocat |
admin |
1 = acces complet fără restricții de permisiuni |
role |
ID-ul rolului alocat |
last_login |
Timestamp ultimul login |
last_ip |
IP-ul de la ultimul login |
last_password_change |
Data schimbării parolei |
two_factor_auth_enabled |
1 = 2FA activat pentru utilizator |
new_pass_key |
Token pentru resetare parolă (expiră) |
Dezactivare vs. ștergere
| Acțiune | Când | Efecte |
|---|---|---|
Dezactivare (active = 0) |
Angajat în concediu temporar sau suspect | Nu poate loga, datele rămân |
| Ștergere | Angajat care a plecat definitiv | Toate datele (tichete, task-uri, leads) se realocă unui alt staff selectat |
Important: La ștergere, sistemul forțează selectarea unui alt staff pentru preluarea tuturor înregistrărilor — nu există ștergere fără realocare.
Limite de licențiere (Seat Management)
Numărul de utilizatori activi e limitat de licență:
MEMBERS_INCLUDED— locuri incluse în licența de bazăextra_seats— locuri suplimentare achiziționate
Dacă încerci să activezi mai mulți staff decât permite licența → eroare. Dezactivezi un utilizator inactiv sau achiziționezi locuri suplimentare.
Protecția administratorilor
Sistemul previne:
- Ștergerea ultimului administrator activ
- Auto-retragerea drepturilor de admin (dacă ești singurul admin)
- Blocarea propriului cont de admin
Roluri și Permisiuni
Unde: /admin/roles
Ierarhia de acces
Super Admin (admin = 1)
→ Acces complet la orice, permisiunile nu se verifică
Staff cu Rol
→ Moștenesc permisiunile rolului
→ Override individual via staff_permissions (dacă configurat)
Contact Client
→ Permisiuni separate (ce poate vedea în portal)
→ Configurate per contact sau ca default global
Structura permisiunilor per modul
Fiecare modul suportă combinații din:
| Permisiune | Descriere |
|---|---|
view |
Vede toate înregistrările (ale tuturor) |
view_own |
Vede doar înregistrările proprii |
create |
Poate crea noi înregistrări |
edit |
Poate edita înregistrări |
delete |
Poate șterge înregistrări |
Exemplu rol „Agent Vânzări":
Leads: view_own + create + edit
Proposals: view + create + edit
Invoices: view_own
Clients: view + create
Settings: — (fără acces)
Reports: view
Creare rol personalizat
/admin/roles→ Adaugă Rol- Denumești rolul (ex: „Operator Depozit", „Contabil", „Manager Vânzări")
- Bifezi permisiunile per modul
- Salvezi → rolul apare în dropdown la adăugarea staff-ului
Override individual de permisiuni
Dacă un singur angajat are nevoie de permisiuni diferite față de rolul său:
- Din fișa staff-ului → tab Permissions
- Setezi override specific — are prioritate față de rolul general
Permisiuni Contact Client (Portal)
Unde: /admin/settings → tab Clients → Default Contact Permissions
Configurezi ce poate vedea un contact în portal implicit:
- Invoices (facturi)
- Estimates (comenzi de vânzare)
- Proposals (propuneri)
- Contracts (contracte)
- Projects (proiecte)
- Tickets (tichete)
- Files (fișiere)
Poți seta permisiuni diferite per contact individual din fișa contactului.
Two-Factor Authentication (2FA)
Unde: /admin/authenticator_2fa/userlist
Metoda suportată
TOTP (Time-based One-Time Password) — compatibil cu:
- Google Authenticator
- Microsoft Authenticator
- Authy
- Orice aplicație TOTP standard
Flux de activare per utilizator
Utilizatorul activează singur:
- Din profil personal → secțiunea Security → Enable 2FA
- Scanează QR code cu aplicația de autentificare
- Introduce codul de 6 cifre pentru verificare
- 2FA activat →
two_factor_auth_enabled = 1
Adminul resetează 2FA:
/admin/authenticator_2fa/userlist— lista cu statusul per utilizator- Identifici utilizatorul care a pierdut accesul (schimbat telefon, etc.)
- Resetezi →
enrollment_request = 1→ utilizatorul poate re-înrola
Vizualizare status 2FA
Lista utilizatorilor cu:
- Utilizator (staff sau contact client)
- Tip: Admin / Customer
- Status: Enrolled / Not enrolled / Reset requested
- Acțiuni: Resetare, Revocare
Recomandare securitate
Impune 2FA pentru toți adminii și staff-ul cu acces financiar (Financiar, Juridic). Poți comunica obligativitatea prin Announcement intern.
Câmpuri Personalizate (Custom Fields)
Unde: /admin/custom_fields
Entitățile care suportă câmpuri custom
| Entitate | Utilizare tipică |
|---|---|
| Leads | Industrie, nr. angajați, buget estimat, sursă detaliată |
| Clients | CUI, nr. registru comerț, cod client ERP, categorie credit |
| Contacts | Funcție detaliată, LinkedIn, preferințe comunicare |
| Invoices | Nr. comandă client, referință internă, proiect |
| Estimates | Referință ofertă, termene speciale |
| Proposals | Deadline acceptare, versiune propunere |
| Contracts | Nr. dosar, baza legală, nivel confidențialitate |
| Expenses | Nr. bon fiscal, centru de cost, aprobat de |
| Tickets | Nr. serie echipament, versiune software, prioritate SLA |
| Tasks | Estimare ore, nivel dificultate, referință externă |
| Projects | Nr. proiect intern, client manager, tip proiect |
| Items | Nr. catalog, origine, termen garanție |
| Staff | Nr. badge, parola, nr. legitimație, grad |
| Vendors | Cod furnizor ERP, categorie, rating intern |
Tipuri de câmpuri disponibile
| Tip | Utilizare |
|---|---|
text |
Text scurt — cod, număr, referință |
number |
Valoare numerică |
textarea |
Text lung — descriere, note |
select |
Dropdown — valori predefinite |
checkbox |
Da/Nu |
date_picker |
Selector dată |
date_picker_time |
Selector dată + oră |
email |
Validare format email |
Configurare câmp
| Opțiune | Descriere |
|---|---|
required |
Câmp obligatoriu la creare |
show_on_pdf |
Apare pe documentele PDF (facturi, contracte) |
show_on_table |
Apare ca coloană în lista modulului |
show_on_client_portal |
Vizibil/editabil de client în portal |
disallow_client_to_edit |
Vizibil dar read-only pentru client |
only_admin |
Vizibil doar pentru admini (ascuns de staff obișnuit) |
bs_column |
Lățimea coloanei în formular (Bootstrap grid: 3/4/6/12) |
API Management
Unde: /admin/api/api_management
Creare token API
- Adaugă Token → completezi:
- Denumire (ex: „Zapier Integration", „Mobile App", „ERP Sync")
- Staff asociat (tokenul acționează în numele acelui staff)
- Token generat → copiezi — afișat o singură dată
- Clientul API trimite header:
authtoken: {token}la fiecare request
Entitățile accesibile via API
API-ul REST acoperă toate modulele principale:
CRM: Leads, Clients, Contacts, Opportunities, Contracts
Sales: Invoices, Estimates, Proposals, Payments, Items
Operations: Projects, Tasks, Tickets, Expenses, Milestones
HR: Staff, Departments, Roles
Finance: Currencies, Taxes, Expense Categories
Knowledge: Knowledge Base, Surveys, Goals
Warehouse: Warehouses, Commodities
Marketing: Marketing Campaigns
Misc: Custom Fields, Files, Tags
Base URL: https://firma.ro/api/
Auth header: authtoken: {token}
Monitorizare utilizare API
Dashboard-ul API arată:
- Numărul de request-uri per token
- Top rute accesate
- Statistici zilnice/săptămânale/lunare
- Erori și request-uri eșuate
Rate Limiting
Rate limiting-ul e aplicat per token pentru a preveni abuzul.
Webhooks
Unde: /admin/webhooks
Configurare webhook
| Câmp | Note |
|---|---|
name |
Denumirea internă a webhook-ului |
request_url |
URL-ul destinație (https obligatoriu recomandat) |
request_method |
POST (cel mai comun), GET, PUT, DELETE, PATCH |
request_format |
JSON / XML / URL-encoded |
webhook_for |
Modulul/entitatea care declanșează |
webhook_action |
Evenimentele specifice (creare, actualizare, ștergere, schimbare status) |
request_header |
Header-e custom (ex: Authorization: Bearer token) |
request_body |
Câmpuri custom în payload |
active |
1 = activ / 0 = dezactivat |
debug_mode |
1 = loghează detaliat fiecare cerere și răspuns |
Debugging webhook
Când un webhook nu funcționează:
- Activezi
debug_mode = 1pe webhook - Trimiți un eveniment test
- Din lista webhook-ului → View Logs → vezi request-ul trimis și răspunsul primit
- Identifici problema (URL greșit, autentificare, format payload)
- Corectezi și dezactivezi debug mode
Stergerea log-urilor
Log-urile de debug pot crește rapid — le ștergi periodic sau după rezolvarea problemei.
Workflow Automation — perspectiva admin
Unde: /admin/workflow_automation
Ce configurează adminul
| Element | Descriere |
|---|---|
| Workflow definitions | Creează/editează/șterge automatizări |
| Enable/Disable | Activează sau oprește un workflow fără ștergere |
| Private workflows | Workflow-uri vizibile doar creatorului |
| Task templates | Template-uri pentru task-urile create automat de workflow-uri |
| Execution logs | Istoricul rulărilor — ce a funcționat, ce a eșuat |
| Categories | Organizarea workflow-urilor pe categorii |
Entitățile suportate ca trigger (50+ tipuri)
Leads, Clienți, Oportunități, Propuneri, Estimate, Contracte, Facturi, Plăți, Task-uri, Proiecte, Tichete, Cheltuieli, Comenzi Achiziție, Avize Recepție, Ordine Producție, Staff, Recrutare, etc.
Monitorizarea execuției
Din tbwa_flows_logs și tbwa_action_logs:
- Care workflow-uri s-au executat
- Rezultatul fiecărei acțiuni (succes/eroare)
- Timestamp-ul execuției
- Entitatea care a declanșat execuția
Template-uri de task-uri automate
Configurezi șabloane pentru task-urile create de automatizări:
- Titlu task (cu merge fields)
- Persoana alocată
- Urmăritori
- Dată start, dată scadentă (relative la trigger)
- Descriere
- Prioritate
Email Queue — gestionare coadă
Unde: /admin/utilities → Email Queue (sau direct din Settings → Email)
Ce găsești în coada de email
Toate emailurile platformei (notificări, facturi, propuneri, notificări tichete) trec prin coadă înainte de trimitere. Emailurile blocate rămân în coadă.
| Acțiune | Când |
|---|---|
| Process All | Forțezi trimiterea tuturor emailurilor pending |
| Send Single | Trimiți un email specific imediat |
| Retry Failed | Retrimiți emailurile cu eroare |
| Delete | Ștergi emailuri pe care nu le mai vrei trimise |
Cauze comune pentru emailuri blocate
| Problemă | Cauza | Soluție |
|---|---|---|
| Authentication failed | Parola SMTP greșită | Reconfigurezi SMTP în Settings → Email |
| Connection refused | Host sau port greșit | Verifici cu provider-ul de email |
| SSL/TLS error | Encryption greșit | Schimbi din ssl în tls sau invers |
| Rate limit exceeded | Prea multe emailuri / oră | Configurezi throttling sau upgrade plan email |
Activity Log — auditare completă
Unde: /admin/utilities/activity_log
Ce se loghează automat
| Categorie | Evenimente înregistrate |
|---|---|
| Utilizatori | Creare, actualizare, ștergere staff; schimbare parolă; activare/dezactivare |
| Setări | Orice modificare în Settings (cine, când, ce) |
| Roluri | Creare, modificare, ștergere roluri |
| Tag-uri | Creare, comprimare, ștergere tag-uri |
| Email Queue | Procesare manuală, ștergere |
| Workflow | Executare automatizări |
| API | Operații principale via API |
Câmpurile înregistrate
| Câmp | Valoare |
|---|---|
description |
Descrierea acțiunii (ex: „Staff Member Deleted: Ion Popescu") |
date |
Timestamp exact (DATETIME) |
staffid |
Cine a efectuat acțiunea |
Export și curățare
- Export — descarcă log-ul ca CSV/Excel pentru audit extern
- Clear — șterge permanent tot log-ul (acțiune ireversibilă — arhivezi mai întâi)
Theme & Branding — personalizare vizuală
Unde: /admin/settings → General (logo, favicon) + /admin/theme_style (CSS)
Logo și imagini
| Element | Unde | Format |
|---|---|---|
| Logo (light) | Settings → General | PNG/JPG, recomandat transparent |
| Logo (dark mode) | Settings → General | PNG/JPG, versiune albă/deschisă |
| Favicon | Settings → General | ICO sau PNG 32×32 |
| Semnătură/Ștampilă PDF | Settings → General | PNG transparent |
CSS personalizat
Poți adăuga CSS care suprascrie stilul implicit al platformei:
| Câmp | Aplicare |
|---|---|
theme_style_custom_admin_area |
Doar interfața admin |
theme_style_custom_clients_area |
Doar portalul clienților |
theme_style_custom_clients_and_admin_area |
Ambele |
Exemplu CSS custom:
/* Schimbă culoarea accent din violet în albastru */
:root { --accent: #0066cc; }
/* Logo mai mare în sidebar */
.brand { padding: 20px; }
.brand img { max-width: 180px; }
Import Date (Excel Import)
Unde: /admin/excelimport/import_data
Ce poți importa
| Entitate | Câmpuri mapate |
|---|---|
| Clienți | Denumire, CUI, adresă, contact, email, telefon |
| Leads | Nume, email, telefon, companie, sursă, status |
| Staff | Email, prenume, nume, departament, rol |
| Articole | Cod, denumire, preț, TVA, grupă |
| Mărfuri (Warehouse) | Cod, denumire, stoc inițial, preț achiziție |
| Cheltuieli | Dată, sumă, categorie, mod plată |
Procesul de import
1. Descarcă template Excel pentru entitatea dorită
↓
2. Completezi datele în template
↓
3. Upload fișier Excel în CRM
↓
4. Mapezi coloanele Excel → câmpurile CRM
↓
5. Dry run / Simulare (preview erori fără import efectiv)
↓
6. Confirmi importul efectiv
↓
7. Raport rezultate: importate / erori / duplicate
Recomandare: Fă întotdeauna un dry run înainte de importul propriu-zis — identifici erorile de format fără a compromite datele existente.
Media Files Manager
Unde: /admin/utilities/media
Manager de fișiere bazat pe elFinder — browser vizual pentru directorul /uploads/:
- Navighezi structura de foldere
- Încarci fișiere noi
- Creezi/ștergi foldere
- Previzualizezi imagini
- Descarcă fișiere individuale
- Ștergi fișiere neutilizate
Util pentru: curățarea fișierelor vechi, verificarea upload-urilor, gestionarea template-urilor PDF.
Tag Management
Unde: /admin/settings → tab Misc → Tags
Operații disponibile
| Operație | Descriere |
|---|---|
| Creare tag | Adaugi tag-uri noi la nivel global |
| Merge tags | Combini două tag-uri în unul singur (ex: „client" + „clienți" → „clienți") |
| Compress | Elimini duplicatele și tag-urile neutilizate |
| Delete | Ștergi un tag din toate entitățile unde apare |
Tag-urile se aplică pe: Leads, Clienți, Contracte, Task-uri, Proiecte și altele.
Gestionarea Ticket Pipe Log
Unde: /admin/utilities/pipe_log
Loghează toate emailurile procesate via pipe.php:
- Emailuri acceptate (tichet creat sau reply adăugat)
- Emailuri respinse (spam filter, loop detection, rate limit)
- Erori de procesare
Util pentru debugging când clienții raportează că „emailul nu a creat tichetul".
Câmpuri loggate:
- Data și ora
- Adresa expeditorului
- Subiectul emailului
- Acțiunea (creare tichet / adăugare reply / blocat)
- Motivul blocării (dacă e cazul)
Curățare log: Buton Clear Pipe Log — șterge permanent (arhivezi dacă e nevoie).
Checklist configurare inițială completă
Ordinea recomandată pentru un site nou:
Faza 1 — Configurare de bază
- Date companie + Logo + Favicon
/admin/settings - SMTP Email — test trimitere
/admin/settings→ Email - Timezone + Format dată + Monedă
/admin/settings→ Localization - Taxe TVA
/admin/taxes - Moduri de plată (conturi bancare)
/admin/paymentmodes - Serii de facturare
/admin/billing/config - Monede (dacă multi-valută)
/admin/currencies
Faza 2 — Utilizatori și acces
- Roluri personalizate
/admin/roles - Departamente
/admin/departments - Utilizatori staff
/admin/staff - 2FA pentru admini
/admin/authenticator_2fa - Permisiuni contact client
/admin/settings→ Clients
Faza 3 — Personalizare date
- Câmpuri custom per entitate
/admin/custom_fields - Template-uri contracte
/admin/contracts/templates - Tipuri de contracte
/admin/contracts/types - Lead statuses + pipelines
/admin/leads/statuses - Ticket statuses + priorities
/admin/tickets/statuses - Predefined replies tichete
/admin/tickets/predefined_replies
Faza 4 — Integrări
- API tokens pentru integrări externe
/admin/api/api_management - Webhooks pentru notificări externe
/admin/webhooks - WooCommerce/Shopify store config
/admin/woocommerce/stores - Innoship API credentials
/admin/innoship/settings - SAGA/WinMentor conexiune
/admin/sagasau/admin/winmentor
Faza 5 — Automatizare
- Workflow Automation — fluxuri esențiale
/admin/workflow_automation - Cron job configurat pe server
- Email templates personalizate
- Spam filters
/admin/spam_filters
Faza 6 — Securitate și audit
- 2FA activat pentru toți adminii
- Activity Log verificat (funcționează logging-ul)
- Backup plan definit
- Test end-to-end complet pe toate fluxurile principale
Permisiuni specifice pentru rolul de Administrator
Utilizatorii cu admin = 1 au acces complet — permisiunile nu se verifică.
Pentru un rol „IT Manager" fără acces de super-admin:
| Permisiune | Descriere |
|---|---|
| Settings → View / Edit | Configurare platformă |
| Staff → View / Create / Edit | Gestionare utilizatori |
| Roles → View / Create / Edit | Gestionare roluri |
| API → View / Create | Gestionare tokens API |
| Webhooks → View / Create / Edit | Gestionare webhooks |
| Workflow Automation → View / Create / Edit | Automatizări |
| Utilities → All | Activity log, media, email queue |
| Custom Fields → View / Create | Câmpuri personalizate |
| Reports → View | Acces rapoarte |
REST API — Arhitectura completă
Unde: /admin/api/api_management
Base URL: https://firma.ro/api/
Documentație API: crmconnect_api_docs.md
Arhitectura tehnică
CRMConnect expune un REST API complet construit pe CodeIgniter cu extensia REST_Controller. Acoperă 101 controllere organizate pe module.
Autentificare:
| Metodă | Token header | Expiră | Utilizare |
|---|---|---|---|
| API Token (standard) | authtoken: {token} |
~10 ani | Integrări server-to-server |
| JWT (Flutter/Mobile) | Authorization: Bearer {jwt} |
7 zile | Aplicații mobile |
Formate de răspuns suportate:
| Format | Query param | Utilizare |
|---|---|---|
JSON |
implicit | Toate integrările moderne |
XML |
?format=xml |
Sisteme legacy, EDI-adjacent |
CSV |
?format=csv |
Export date tabelare |
JSONP |
?format=jsonp |
Browser cross-origin |
HTML |
?format=html |
Debug/preview |
Endpoint-uri disponibile — Harta completă
CRM & Sales:
GET/POST/PUT/DELETE /api/leads
GET/POST/PUT/DELETE /api/opportunities
GET/POST/PUT/DELETE /api/clients
GET/POST/PUT/DELETE /api/contacts
GET/POST/PUT/DELETE /api/contracts
GET/POST/PUT/DELETE /api/proposals
GET/POST/PUT/DELETE /api/estimates
GET/POST/PUT/DELETE /api/invoices
GET/POST/PUT/DELETE /api/payments
GET/POST/PUT/DELETE /api/expenses
GET/POST/PUT/DELETE /api/projects
GET/POST/PUT/DELETE /api/tasks
GET/POST/PUT/DELETE /api/tickets
GET/POST/PUT/DELETE /api/milestones
GET/POST/PUT/DELETE /api/goals
GET/POST/PUT/DELETE /api/surveys
GET/POST/PUT/DELETE /api/marketing_campaigns
WMS — Warehouse Management System:
GET/POST/PUT/DELETE /api/wms/warehouses
GET/POST/PUT/DELETE /api/wms/commodities
GET/POST/PUT/DELETE /api/wms/goods_receipt
GET/POST/PUT/DELETE /api/wms/goods_delivery
GET/POST/PUT/DELETE /api/wms/stocks
GET/POST/PUT/DELETE /api/wms/transfers
Purchase Management:
GET/POST/PUT/DELETE /api/purchase/vendors
GET/POST/PUT/DELETE /api/purchase/purchase_orders
GET/POST/PUT/DELETE /api/purchase/purchase_requests
GET/POST/PUT/DELETE /api/purchase/vendor_invoices
OmniSales:
GET/POST/PUT/DELETE /api/omni_sales/orders
GET/POST/PUT/DELETE /api/omni_sales/channels
GET/POST/PUT/DELETE /api/omni_sales/returns
Config & Reference Data:
GET /api/departments
GET /api/roles
GET /api/staff
GET /api/taxes
GET /api/currencies
GET /api/countries
GET /api/payment_modes
GET /api/expense_categories
GET /api/custom_fields
GET /api/items
Paginare
GET /api/leads?nr_page=1&per_page=50
Răspuns standard
{
"status": true,
"data": [...],
"total_pages": 10,
"current_page": 1
}
Erori
{
"status": false,
"error": "Invalid authentication token"
}
Aplicații Mobile — Android & iOS
CRMConnect dispune de aplicații mobile native pentru Android și iOS, disponibile în Google Play Store și Apple App Store.
Aplicațiile mobile sunt 1:1 cu platforma web — orice modul, funcționalitate și date disponibile în interfața web sunt accesibile și din aplicația mobilă, adaptate pentru ecrane mobile. Utilizatorii lucrează cu aceleași date în timp real, indiferent dacă accesează CRMConnect din browser sau din telefon.
Aplicațiile sunt conectate la instanța proprie a fiecărui client prin același sistem de autentificare și API-ul platformei — nu există date separate sau sincronizare întârziată.
Descărcare:
- Android: Google Play Store — căutați „CRMConnect"
- iOS: Apple App Store — căutați „CRMConnect"
Deployment: Cloud (AWS) și On-Premise
Arhitectura aplicației
| Componentă | Tehnologie |
|---|---|
| Backend | PHP (CodeIgniter) |
| Baza de date | MySQL / MariaDB |
| Web Server | Apache sau Nginx |
| Containerizare | Docker + Kubernetes |
| Cron jobs | Kubernetes CronJob |
| Cache | Redis / Memcached |
Cloud — AWS cu Kubernetes (infrastructura standard CRMConnect)
CRMConnect rulează pe Amazon Web Services folosind Kubernetes ca platformă de orchestrare a containerelor. Fiecare client primește propria instanță dedicată — arhitectură single-tenant completă.
Modelul single-tenant — de ce contează:
| Aspect | Single-Tenant (CRMConnect) | Multi-Tenant |
|---|---|---|
| Izolare date | Completă — instanță separată | Parțială — date în aceeași DB |
| Customizare | Per client, fără impact pe alți clienți | Limitată de schema comună |
| Performanță | Dedicată, predictibilă | Partajată, variabilă |
| Securitate | Segregare completă la nivel de pod | Izolare logică în DB |
| Update-uri | Controlate per client | Simultane pentru toți |
Arhitectura AWS + Kubernetes:
AWS Cloud
┌──────────────────────────────────────────────┐
│ │
│ [Route 53] → [ALB / Ingress Controller] │
│ ↓ │
│ ┌─────────────── Kubernetes Cluster ──────┐ │
│ │ │ │
│ │ Pod Client A Pod Client B │ │
│ │ ┌───────────┐ ┌───────────┐ │ │
│ │ │ CRMConnect│ │ CRMConnect│ │ │
│ │ │ (PHP+Nginx│ │ (PHP+Nginx│ │ │
│ │ └─────┬─────┘ └─────┬─────┘ │ │
│ │ │ │ │ │
│ │ ┌─────▼─────┐ ┌─────▼─────┐ │ │
│ │ │ MySQL DB │ │ MySQL DB │ │ │
│ │ │ (Client A│ │ (Client B│ │ │
│ │ └───────────┘ └───────────┘ │ │
│ │ │ │
│ │ [Kubernetes CronJob] — cron per pod │ │
│ └─────────────────────────────────────────┘ │
│ │
│ [S3] [CloudWatch] [ACM SSL] [ECR] │
└──────────────────────────────────────────────┘
Servicii AWS utilizate:
| Serviciu | Rol |
|---|---|
| EKS (Elastic Kubernetes Service) | Orchestrare Kubernetes managed |
| ECR (Elastic Container Registry) | Registry imagini Docker |
| RDS MySQL sau MySQL în pod | Baza de date per client |
| ALB + Ingress | Load balancer + routing per domeniu |
| Route 53 | DNS management |
| ACM | Certificate SSL/TLS automatizate |
| S3 | Storage fișiere + backup-uri |
| CloudWatch | Monitorizare, logs, alerte |
| Kubernetes CronJob | Cron jobs per instanță client |
Scalare: Fiecare pod se scalează independent — un client cu volum mare nu afectează alți clienți.
Update-uri: Deployment-urile de versiuni noi se fac rolling update per pod, fără downtime. Fiecare client poate fi actualizat independent.
On-Premise (Self-hosted)
CRMConnect poate fi instalat și on-premise, pe infrastructura proprie a clientului — server fizic, VMware/Hyper-V sau private cloud.
Cerințe minime:
- PHP 7.4+ (recomandat 8.1+)
- MySQL 5.7+ / MariaDB 10.3+
- Apache 2.4+ sau Nginx
- Extensii PHP:
mysqli,curl,mbstring,gd,zip,json,openssl - SSL/HTTPS — obligatoriu pentru mobile apps și API
- Cron job configurat pe server
Avantaje on-premise:
- Control total asupra datelor și infrastructurii
- Integrare directă în rețeaua internă (VPN, Active Directory, intranet)
- Performanță predictibilă pe hardware dedicat
- Fără dependență de conectivitate internet pentru utilizare internă
Cerințe de mentenanță:
- Backup regulat: baza de date + directorul
/uploads/ - Update-uri PHP + OS + pachete de securitate
- Monitorizare spațiu disk (
/uploads/crește constant) - Reînnoire certificate SSL
Configurare database:
APP_DB_HOSTNAME=localhost (sau IP server DB)
APP_DB_USERNAME=crm_user
APP_DB_PASSWORD=***
APP_DB_NAME=crmconnect
Drivere DB suportate: mysqli, pdo, postgre, mssql, sqlite, cubrid
Platformă deschisă — Open Platform
CRMConnect ca platformă, nu ca produs fix
CRMConnect este o platformă deschisă — nu un produs rigid cu funcționalități fixe. Arhitectura modulară permite extinderea și adaptarea platformei la orice nevoie de business, fără a compromite stabilitatea sau posibilitatea de update.
Principii fundamentale:
| Principiu | Descriere |
|---|---|
| Open API | Orice sistem extern poate integra CRMConnect via REST API — ERP, WMS, e-commerce, BI, RPA |
| Module system | Orice funcționalitate nouă se construiește ca modul independent, fără a modifica core-ul |
| Shared modules | Orice modul custom dezvoltat poate fi activat pe instanțele oricărui alt client |
| Dev freedom | Clienții pot lucra cu propria echipă de dev sau cu parteneri proprii de development |
| No vendor lock-in | Integrare cu orice ERP, WMS, platformă e-commerce sau aplicație third-party |
Integrare cu orice sistem extern
CRMConnect se integrează nativ sau prin API cu orice ERP, WMS sau aplicație third-party:
ERP (SAP, Oracle, Dynamics, Merlin, Triton, WinMentor, SAGA...)
↕ REST API / Webhooks / EDI
WMS (sisteme warehouse externe)
↕
E-commerce (WooCommerce, Shopify, MerchantPro, orice platformă cu API)
↕
BI / Raportare (Power BI, Tableau, Google Data Studio)
↕
RPA (UiPath, Automation Anywhere)
↕
iPaaS (Zapier, Make/Integromat, n8n, Boomi, MuleSoft)
↕
CRMConnect REST API
Mecanisme de integrare disponibile:
- REST API — 101 endpoint-uri, format JSON/XML, autentificare token
- Webhooks — notificări push în timp real la orice eveniment CRM
- Workflow Automation — automatizări fără cod direct în platformă
- Excel Import — ingestie date batch via CSV/Excel
- Zapier — conectori no-code la 5.000+ aplicații
- EDI/AS2 — via EDIconnect (modul nativ — CRMConnect este EDI provider)
Dezvoltări custom sub formă de module
Dacă funcționalitățile standard nu acoperă un caz de business specific, se pot dezvolta module custom care se integrează nativ în platformă:
Caracteristicile sistemului de module:
| Aspect | Detalii |
|---|---|
| Izolare | Fiecare modul e independent — nu modifică core-ul platformei |
| Update-safe | Update-urile de platformă nu afectează modulele custom |
| Integrare nativă | Modulul apare în sidebar, are propriile permisiuni, propriile tabele DB |
| Hooks & Filters | Platformă expune 50+ hooks pentru a extinde comportamentul modulelor standard |
| Shared deployment | Un modul dezvoltat pentru un client poate fi activat pe orice altă instanță |
Ce poate conține un modul custom:
- Interfață proprie (views PHP/HTML/JS)
- Controller și model proprii
- Tabele proprii în baza de date (migrations)
- Integrare în meniul lateral
- Permisiuni proprii per rol
- Hooks în fluxurile platformei (trigger la creare factură, la schimbare status, etc.)
- Email templates proprii
- Rapoarte și export-uri proprii
- Câmpuri custom adiționale pe entitățile existente
Cine poate dezvolta module custom
Echipa de dev proprie a clientului:
- Acces la documentația tehnică a platformei
- Acces la API-ul intern de hooks și helpers
- Posibilitate de development și testare pe instanța proprie
- Deployment pe instanța proprie fără aprobare centrală
Parteneri de development ai clientului:
- Clienții pot lucra cu orice companie de software sau freelancer
- CRMConnect oferă documentație tehnică și suport pentru integrare
- Partenerii pot accesa mediul de development dedicat
Echipa CRMConnect:
- Dezvoltare module la cerere
- Modulele create de echipa CRMConnect pot fi distribuite oricărui client
- Roadmap partajat — funcționalitățile cerute de un client devin available pentru toți
Exemplu de module custom posibile
| Use Case | Modul Custom |
|---|---|
| Raport specific industriei | Raport personalizat cu logică de calcul specifică |
| Integrare ERP propriu | Sync bidirecțional cu un ERP intern |
| Flux de aprobare specific | Workflow complex multi-nivel cu logică de business |
| Portal specific pentru parteneri | Interfață dedicată pentru un tip de utilizator |
| Calulator de ofertare | Configurator de produse complex cu pricing dinamic |
| Modul de conformitate reglementată | Funcționalități pentru industrii reglementate (farma, financiar) |
EDI & AS2 — EDIconnect
CRMConnect este EDI Provider
CRMConnect oferă capacitate EDI nativă prin EDIconnect — modul integrat care face din CRMConnect nu doar un consumator de date EDI, ci un furnizor de servicii EDI pentru clienții săi.
EDI (Electronic Data Interchange) = schimb automat de documente comerciale (comenzi, confirmări, facturi, avize, borderouri) între sistemele informatice ale partenerilor comerciali, fără intervenție umană.
AS2 (Applicability Statement 2) = protocolul de transport securizat pentru EDI prin HTTPS, cu autentificare mutuală și semnătură digitală (standard EDIINT/RFC 4130). AS2 este protocolul preferat în retail, automotive, logistică și lanțuri de aprovizionare globale.
EDIconnect — modulul nativ
Unde: /admin/edi
EDIconnect este modulul CRMConnect dedicat conectivității EDI — gestionează schimbul de documente comerciale cu partenerii de business care utilizează standarde EDI.
Arhitectura EDIconnect integrată în CRMConnect:
┌──────────────────────────────────────┐
PARTENERI │ CRMConnect │
COMERCIALI │ │
│ ┌────────────┐ ┌──────────────┐ │
ERP Partener A │ │ │ │ │ │
──── AS2 ────────►│ │ EDIconnect │◄──►│ CRMConnect │ │
│ │ (modul │ │ REST API + │ │
ERP Partener B │ │ nativ) │ │ Webhooks │ │
──── AS2 ────────►│ │ │ │ │ │
│ └────────────┘ └──────────────┘ │
ERP Partener C │ Transport: AS2 (HTTPS mutual TLS) │
── SFTP/API ─────►│ Formate: X12, EDIFACT, UBL, JSON │
└──────────────────────────────────────┘
Ce face EDIconnect
Recepție documente EDI inbound:
| Document primit | Format EDI | Acțiune în CRM |
|---|---|---|
| Purchase Order de la partener | X12 850 / EDIFACT ORDERS | Creare automată Comandă Vânzare |
| Request for Quotation | X12 840 / EDIFACT REQOTE | Creare RFQ sau Propunere |
| Invoice de la furnizor | X12 810 / EDIFACT INVOIC | Creare Factură Furnizor |
| Advance Ship Notice | X12 856 / EDIFACT DESADV | Creare Aviz Livrare |
| Payment/Remittance | X12 820 / EDIFACT REMADV | Înregistrare Plată |
Emitere documente EDI outbound:
| Document emis | Format EDI | Trigger în CRM |
|---|---|---|
| Confirmare comandă | X12 855 / EDIFACT ORDRSP | La confirmarea comenzii |
| Factură client | X12 810 / EDIFACT INVOIC | La emiterea facturii |
| Aviz livrare | X12 856 / EDIFACT DESADV | La aprobarea avizului |
| Corecție factură | X12 812 / EDIFACT CREADV | La emiterea notei de credit |
Formate EDI suportate
| Standard | Utilizare tipică | Industrii |
|---|---|---|
| ANSI X12 | USA/Canada supply chain | Retail, Automotive, Healthcare |
| EDIFACT | Internațional | Logistică, Shipping, Europa |
| UBL 2.1 | eInvoicing European | Administrație publică, EU |
| JSON/XML | Integrări moderne API | Tech, SaaS, Fintech |
Transport AS2 — securitate end-to-end
AS2 asigură:
- Criptare — TLS 1.2/1.3 pentru transport
- Autentificare mutuală — certificate X.509 per partener
- Non-repudiere — MDN (Message Disposition Notification) semnat
- Confirmare livrare — Acknowledgment automat per mesaj
- Audit trail — log complet al tuturor schimburilor
CRMConnect ca EDI Provider — ce înseamnă pentru clienți
Clienții CRMConnect nu au nevoie de o soluție EDI separată sau de un VAN (Value Added Network) extern. EDIconnect este inclus ca modul nativ, ceea ce înseamnă:
| Beneficiu | Detaliu |
|---|---|
| Un singur sistem | CRM + EDI în aceeași platformă — fără sincronizare între sisteme |
| Fără costuri VAN | Nu plătești per-document fees la intermediari EDI tradiționali |
| Onboarding rapid parteneri | Adaugi un partener EDI nou direct din CRM |
| Vizibilitate completă | Documentele EDI sunt linkate la clienți, comenzi, facturi în CRM |
| SLA garantat | Infrastructura AWS Kubernetes a CRMConnect asigură disponibilitatea EDI |
Conectare cu partenerii EDI
Unde: /admin/edi
Configurezi fiecare partener EDI cu:
- Identificatorul EDI al partenerului (ISA/GS pentru X12, ID pentru EDIFACT)
- Metoda de transport (AS2, SFTP, API)
- Certificatele AS2 (pentru AS2 mutual TLS)
- Maparea documentelor (ce tip EDI → ce entitate CRM)
- Regulile de transformare per partener
Integrare cu fluxurile CRMConnect
EDIconnect este conectat direct la modulele CRM — documentele EDI primite creează sau actualizează automat entitățile corespunzătoare:
Partener trimite X12 850 (Purchase Order) via AS2
↓ EDIconnect recepționează și validează
↓ Mapare câmpuri EDI → câmpuri CRM
↓ Creare automată: Comandă Vânzare (Estimate)
↓ Notificare echipă Vânzări
↓ Confirmare AS2 (997 Functional Acknowledgment) trimisă automat
↓ Comanda procesată normal în CRM (livrare, facturare)
↓ Factură emisă → transmisă automat ca X12 810 via AS2
↓ MDN de confirmare primit de la partener
Formate de date disponibile via API (pentru integrări custom)
Complementar EDIconnect, API-ul CRMConnect permite și integrări directe în formate moderne:
| Format | Suport | Endpoint exemplu |
|---|---|---|
| JSON | Nativ | GET/POST /api/invoices |
| XML | Nativ | GET /api/invoices?format=xml |
| CSV | Import | /admin/excelimport |
| X12 / EDIFACT | Via EDIconnect | /admin/edi |
| UBL 2.1 | Via EDIconnect | /admin/edi |
Contact pentru EDI: Dacă ești interesat de conectivitate EDI cu partenerii tăi comerciali sau dorești să devii partener EDI al clienților tăi, contactează echipa CRMConnect pentru configurarea EDIconnect.
Integrări ERP externe
CRMConnect se conectează bidirecțional cu mai multe ERP-uri românești și internaționale:
Merlin ERP
Unde: /admin/merlin_erp
Sincronizare bidirecțională în 23 de pași:
| Categorie | Ce se sincronizează |
|---|---|
| Nomenclatoare | Grupe articole, unități măsură, monede, categorii, tipuri |
| Parteneri | Clienți, agenți, utilizatori, grupuri utilizatori, depozite |
| Documente | Tipuri documente, oferte, drepturi utilizatori |
| Tranzacții | Articole, caracteristici, TVA, stocuri, statusuri, documente |
Frecvență sync: Configurabilă (15 min / 30 min / 1h / 2h / 4h / 6h / 12h / 1 zi)
Filtrare: Per company_id — suport multi-companie
Protocol: REST HTTP/HTTPS
Triton ERP (SoftOne)
Unde: /admin/triton_erp
Sincronizare în 15 pași:
| Categorie | Ce se sincronizează |
|---|---|
| Referințe | Județe, termeni plată, UOM, grupe produse, categorii |
| Parteneri | Clienți, sucursale, sold client, metode plată, agenți, depozite |
| Tranzacții | Produse, stocuri, facturi, plăți |
Caracteristici speciale:
- Facturile importate din Triton sunt locked (read-only) în CRM admin — nu pot fi modificate manual
- Sold client live: La deschiderea fișei unui client din Triton → soldul se actualizează în timp real (API call blocant)
- Email alertă credit: La adăugarea unui client nou în admin → email automat de alertă credit
- Throttling API: Alertele de eroare sunt limitate (cooldown 15 min) pentru a evita flooding
- Chunked processing: Dataset-urile mari sunt procesate în bucăți
MerchantPro
Unde: /admin/merchantpro
Sincronizare bidirecțională cu platforma de e-commerce MerchantPro:
| Element | Direcție | Frecvență |
|---|---|---|
| Produse | CRM ↔ MerchantPro | Configurabilă |
| Clienți | CRM ↔ MerchantPro | Configurabilă |
| Comenzi | MerchantPro → CRM | Configurabilă |
| Stocuri | CRM → MerchantPro | Configurabilă |
| Prețuri | CRM → MerchantPro | Configurabilă |
| Metadate catalog | CRM ↔ MerchantPro | Configurabilă |
| Unități de măsură | CRM ↔ MerchantPro | Configurabilă |
Batch size: Configurable, implicit 200 entități per tick cron (max 5000)
SmartCRM
Unde: /admin/smartcrm
Sincronizare cu platforma SmartCRM externă prin API REST cu:
ApiSmartcrm— client HTTP pentru comunicare cu API-ul SmartCRMSmartcrmSyncService— orchestrare sincronizareSmartcrmLogger— logging detaliat erori și succese
SAGA & WinMentor
Integrări contabile cu softurile românești de contabilitate — detalii în Departament Financiar.
ParsePilot — OCR Facturi
Unde: /admin/parsepilot
Scanare și extragere automată date din facturi și cheltuieli primite (PDF, imagine):
- OCR automat pe documente scanate
- Extragere câmpuri: număr factură, dată, furnizor, sume, TVA, linii de produse
- Prag de încredere configurabil (
parsepilot_conf_thr) - Aplicare automată pe: Facturi primite, Cheltuieli, Plăți
- Reduce manual data entry pentru procesarea facturilor de intrare
Integrări internaționale ERP & Accounting
CRMConnect, ca platformă deschisă cu REST API complet, se integrează cu principalele platforme ERP și contabile internaționale. Integrările se realizează prin API-to-API direct, prin conectori nativi pe platforme iPaaS (Zapier, Make, Boomi, MuleSoft) sau prin middleware custom.
Arhitectura generală de integrare
CRMConnect REST API ←──────────────────────────────────────────→ ERP / Accounting
Webhooks (push) ←── evenimente în timp real ──────────────→
API Polling (pull) ←── sincronizare periodică ───────────────→
Metode de conectare:
① Direct API-to-API (custom integration)
② Zapier / Make (no-code, 5.000+ apps)
③ Boomi / MuleSoft (enterprise iPaaS)
④ Middleware custom (pentru logică complexă)
SAP (SAP S/4HANA, SAP Business One, SAP ECC)
Profilul integrării: Enterprise ERP — cel mai utilizat în corporații și enterprise mid-market.
Fluxuri de date tipice CRMConnect ↔ SAP:
| Direcție | Date | Trigger |
|---|---|---|
| CRM → SAP | Facturi emise (FI/AR) | Webhook after_invoice_added → SAP BAPI |
| CRM → SAP | Clienți noi / actualizați | Webhook contact_created → SAP BP |
| CRM → SAP | Plăți înregistrate | Webhook after_payment_added → SAP FI clearing |
| CRM → SAP | Comenzi de vânzare | API /api/estimates → SAP SD |
| SAP → CRM | Stocuri și disponibilitate | SAP RFC/BAPI → CRM /api/wms/stocks |
| SAP → CRM | Articole și prețuri din SAP | SAP → CRM /api/items |
| SAP → CRM | Sold client din FI/AR | SAP → Client profile în CRM |
Metode de integrare recomandate:
| Complexitate | Metodă | Potrivit pentru |
|---|---|---|
| Simplă | Zapier (SAP conector) sau Make | Fluxuri unidirecționale, volum mic |
| Medie | SAP Integration Suite (Cloud Platform Integration) | SAP cloud-hosted |
| Enterprise | SAP API Management + CRMConnect REST API | Volum mare, transformări complexe |
| On-Premise SAP | SAP PI/PO sau middleware (Boomi, MuleSoft) + CRMConnect API | SAP ECC legacy |
Format date: SAP expune BAPI, RFC, OData (RESTful) — CRMConnect consumă și produce JSON/XML.
Considerații SAP specifice:
- SAP S/4HANA: API OData native → integrare directă cu CRMConnect REST
- SAP Business One: Service Layer REST API → ușor de integrat cu CRMConnect
- SAP ECC: Necesită middleware pentru transformare RFC/IDOC → JSON
QuickBooks (Online & Desktop)
Profilul integrării: Platforma contabilă #1 pentru SMB în SUA, Canada, UK, Australia.
Fluxuri de date tipice CRMConnect ↔ QuickBooks:
| Direcție | Date | Trigger |
|---|---|---|
| CRM → QB | Facturi client (Invoices) | Webhook after_invoice_added → QB Invoice API |
| CRM → QB | Clienți noi | Webhook contact_created → QB Customer API |
| CRM → QB | Plăți înregistrate | Webhook after_payment_added → QB Payment API |
| CRM → QB | Cheltuieli | API /api/expenses → QB Expense API |
| QB → CRM | Produse și servicii | QB Item API → CRM /api/items |
| QB → CRM | Sold client | QB Customer Balance → fișa clientului CRM |
Metode de integrare recomandate:
| Metodă | Detalii |
|---|---|
| Zapier | Cel mai simplu — conector nativ QuickBooks Online pe Zapier |
| Make (Integromat) | Scenarii avansate cu logică condițională |
| QuickBooks API direct | REST API OAuth 2.0 → integrare custom cu CRMConnect |
| SaasAnt / Synder | Tool-uri specializate de sync QB ↔ CRM |
QuickBooks Online API: REST + OAuth 2.0 — se integrează direct cu orice sistem care face HTTP requests.
QuickBooks Desktop: Necesită QuickBooks Web Connector sau middleware local.
Oracle NetSuite
Profilul integrării: ERP cloud enterprise pentru mid-market și enterprise — puternic în finanțe, inventory, multi-subsidiary.
Fluxuri de date tipice CRMConnect ↔ NetSuite:
| Direcție | Date | Trigger |
|---|---|---|
| CRM → NS | Sales Orders | API /api/estimates → NetSuite Sales Order |
| CRM → NS | Facturi client | Webhook → NetSuite Invoice |
| CRM → NS | Clienți și contacte | Webhook → NetSuite Customer record |
| CRM → NS | Oportunități won | Webhook → NetSuite Opportunity |
| NS → CRM | Stocuri live | NetSuite → CRM /api/wms/stocks |
| NS → CRM | Prețuri și articole | NetSuite Item → CRM /api/items |
| NS → CRM | Sold client | NetSuite A/R → fișa clientului CRM |
| NS → CRM | Purchase Orders | NetSuite PO → CRM /api/purchase/purchase_orders |
Metode de integrare recomandate:
| Metodă | Detalii |
|---|---|
| NetSuite SuiteScript + CRMConnect API | Scripturi în NetSuite care apelează CRMConnect REST |
| NetSuite SuiteFlow (Workflow) | Trigger automat la evenimente NetSuite → CRMConnect Webhook inbound |
| Celigo iPaaS | Platformă specializată NetSuite ↔ orice sistem, cu template-uri pre-built |
| Boomi / MuleSoft | Enterprise iPaaS cu conectori NetSuite nativi |
| Zapier / Make | NetSuite are conector pe Zapier pentru fluxuri simple |
Autentificare NetSuite: Token-Based Authentication (TBA) sau OAuth 2.0 — compatibil cu middleware standard.
NetSuite REST API: Disponibil din 2019 — integrare directă cu CRMConnect REST posibilă fără middleware.
Xero
Profilul integrării: Platformă contabilă cloud populară în UK, Australia, Noua Zeelandă și în creștere globală — orientată SMB și accountants.
Fluxuri de date tipice CRMConnect ↔ Xero:
| Direcție | Date | Trigger |
|---|---|---|
| CRM → Xero | Facturi client (Sales Invoices) | Webhook after_invoice_added → Xero Invoice |
| CRM → Xero | Credit Notes (Storno) | Webhook → Xero Credit Note |
| CRM → Xero | Clienți noi | Webhook contact_created → Xero Contact |
| CRM → Xero | Plăți înregistrate | Webhook after_payment_added → Xero Payment |
| CRM → Xero | Cheltuieli | API /api/expenses → Xero Expense Claim |
| Xero → CRM | Conturi bancare reconciliate | Xero Bank Feed → CRM Bank Statement |
| Xero → CRM | Produse și servicii | Xero Items → CRM /api/items |
Metode de integrare recomandate:
| Metodă | Detalii |
|---|---|
| Zapier | Cel mai rapid — conector Xero nativ pe Zapier, sute de template-uri |
| Make (Integromat) | Scenarii complexe cu conector Xero nativ |
| Xero API direct | REST + OAuth 2.0 — integrare custom simplă, documentație excelentă |
| Dext / ApprovalMax | Tool-uri specializate contabil ↔ Xero ↔ CRM |
Xero API: REST + OAuth 2.0 — una dintre cele mai bine documentate și ușor de integrat API-uri contabile. Rate limit: 60 req/min (standard), 5000 req/zi.
Matrice de compatibilitate
| Platformă | REST API | Zapier | Make | Boomi | Middleware custom |
|---|---|---|---|---|---|
| SAP S/4HANA | OData ✓ | ✓ | ✓ | ✓ | ✓ |
| SAP Business One | Service Layer ✓ | ✓ | ✓ | ✓ | ✓ |
| SAP ECC | RFC/IDOC | — | — | ✓ | ✓ (necesar) |
| QuickBooks Online | REST OAuth2 ✓ | ✓ | ✓ | ✓ | ✓ |
| QuickBooks Desktop | Web Connector | — | — | ✓ | ✓ (necesar) |
| NetSuite | REST + SuiteScript ✓ | ✓ | ✓ | ✓ | ✓ |
| Xero | REST OAuth2 ✓ | ✓ | ✓ | ✓ | ✓ |
| Merlin ERP | REST ✓ | — | — | — | ✓ (nativ în CRM) |
| Triton/SoftOne | REST ✓ | — | — | — | ✓ (nativ în CRM) |
| WinMentor | Export/Import ✓ | — | — | — | ✓ (nativ în CRM) |
| SAGA | Export XML ✓ | — | — | — | ✓ (nativ în CRM) |
Date CRMConnect disponibile pentru orice integrare contabilă
Indiferent de sistemul contabil, CRMConnect expune via API toate datele necesare:
Entitate CRM → Echivalent contabil
─────────────────────────────────────────────
/api/invoices → Sales Invoice / AR
/api/credit_notes → Credit Note
/api/payments → Payment / Receipt
/api/expenses → Purchase Invoice / AP
/api/clients → Customer / Debitor
/api/purchase/vendors → Supplier / Creditor
/api/items → Product / Service
/api/taxes → Tax Rate / VAT
/api/currencies → Currency
/api/payment_modes → Bank Account / Payment Method
Plus Webhooks pentru toate evenimentele în timp real — nicio integrare nu trebuie să polling-uiască CRMConnect.
Securitate avansată — checklist IT
Infrastructură
- HTTPS/SSL pe toate endpoint-urile (obligatoriu pentru mobile apps + API)
- Firewall — restricție acces la port MySQL doar de pe server web
- Fail2ban sau similar — blocare IP-uri după login failures repetate
- WAF (Web Application Firewall) — recomandat în cloud (AWS WAF, Cloudflare)
- Backup automat DB +
/uploads/cu retenție minim 30 zile off-site
Aplicație
- 2FA obligatoriu pentru toți adminii și utilizatorii cu acces financiar
- API tokens rotite periodic (cel puțin anual)
- Webhook URLs — folosești HTTPS cu validare secret header
- SMTP credentials — rotite și niciodată în plain text în repository
- Activity Log — monitorizat săptămânal pentru acțiuni suspecte
- Seat management — conturi dezactivate imediat la plecarea angajatului
Mobile
- JWT tokens expiră în 7 zile — utilizatorii re-autentifică regulat
- Cordova tokens — dezactivate imediat la pierderea/schimbarea dispozitivului
- SSL pinning — recomandat în producție pentru mobile apps
- MDM (Mobile Device Management) — pentru flotele de dispozitive corporate
CRMConnect pentru Decidenții IT
Această secțiune adresează direct întrebările unui CTO, IT Director sau Enterprise Architect care evaluează platforma: stack tehnic, securitate, conformitate, scalabilitate, continuitate business, experiență pentru echipa de dev și costul total de proprietate.
Stack tehnic & maturitate
| Componentă | Detaliu |
|---|---|
| Backend | PHP — CodeIgniter 3.1.13 |
| PHP suportat | 7.2.5+ și 8.0+ ("php": "^7.2.5 || 8.0") |
| Baza de date | MySQL 5.7+ / MariaDB 10.3+ |
| Containerizare | Docker + Kubernetes (AWS EKS) |
| Migrations DB | 528 migrații versionate secvențial — indică un produs matur cu istoric complet de evoluție |
| Dependențe principale | phpmailer, tcpdf, phpspreadsheet, elfinder, stripe-php, php-hooks — toate open source, auditabile |
| Framework securitate | xemlock/htmlpurifier-html5, sonata-project/google-authenticator (2FA TOTP) |
Ce înseamnă 528 de migrații: Fiecare modificare de schemă DB este versionată, înregistrată și aplicabilă incremental. Nicio actualizare de versiune nu poate corupta date existente — sistemul de migrații garantează upgrade-uri sigure și reversibile.
Securitate în profunzime
Autentificare și acces
| Mecanism | Implementare |
|---|---|
| Hashing parole | phpass (bcrypt-like), strength=8, portable mode dezactivat |
| 2FA | TOTP (RFC 6238) via Google/Microsoft Authenticator, Authy — standard industrial |
| Session timeout | 8 ore implicit, configurabil |
| Session security | Session driver configurable (DB sau filesystem), cookie HttpOnly |
| CSRF protection | Activat pe toate formularele (APP_CSRF_PROTECTION = true), token regenerare per request |
| Brute force | Login failures loggate cu IP, timestamp, user — baza pentru blocking extern (Fail2ban) |
Protecție aplicație
| Vulnerabilitate | Protecție |
|---|---|
| SQL Injection | CodeIgniter query binding cu parametrizare pe toate interogările |
| XSS | App_Security custom class + HTMLPurifier pentru content rich text (TinyMCE) |
| CSRF | Token CSRF pe toate formularele POST |
| File upload | Validare tip fișier + extensie înainte de stocare |
| Encryption at rest | Parola SMTP și credențiale sensibile stocate criptat (cheia APP_ENC_KEY) |
| API security | Token-based authentication, fiecare token izolat per staff |
Izolarea datelor (single-tenant)
Arhitectura single-tenant cu pod dedicat per client pe Kubernetes oferă nivelul maxim de izolare:
- Zero risc de data bleed între clienți
- Politici de rețea Kubernetes separate per namespace
- Baza de date separată — nicio interogare nu poate accesa datele altui client
- Upgrade-uri independente — un client în maintenance nu afectează alți clienți
Audit, Logging & Conformitate
Audit trail multi-nivel
| Nivel | Ce se înregistrează |
|---|---|
| Activitate utilizatori | Orice acțiune CRUD + IP + timestamp + staff ID |
| Login/Security events | Login success/failure, user inexistent, cont inactiv — cu IP |
| Financial integrity audit | Audit zilnic automat pe propuneri, facturi, estimate — detectare discrepanțe cu alertă email |
| Document management | Fiecare acces, upload, ștergere, aprobare pe documente — tblmg_audit_logs |
| Slow queries | Interogări > 0.2s înregistrate automat + alertă email |
| API usage | Fiecare call API logat cu token, endpoint, timestamp |
| Webhook delivery | Request + response complet în debug log |
Financial integrity audit: Cron-ul zilnic verifică că subtotalele din propuneri, facturi și estimate corespund cu liniile de detaliu. Orice discrepanță → email automat către admin. Protecție împotriva coruperii accidentale de date.
GDPR nativ
- Consimțăminte (
tblconsent_purposes,tblconsents) — logging complet cu IP, timestamp, scop - Dreptul de ștergere — cereri tracking în
tblgdpr_requests, anonimizare prinGdpr_contracts.php - Portabilitate date — export structurat per persoană vizată
- Retenție configurabilă — perioadele de retenție configurate per tip de date
Performanță & Scalabilitate
Optimizare baza de date
- 370+ indecși creați prin migrații — fiecare query critic are indexul corespunzător
- Query caching disponibil (file, database, Memcached, Redis)
- Slow query detection automată (>0.2s) cu alertă
Kubernetes auto-scaling
- Fiecare pod client scalează independent pe baza consumului de resurse
- Horizontal Pod Autoscaler (HPA) — adaugă replici la load crescut
- Un client cu spike de trafic nu consumă resursele altui client
Caching layers
| Layer | Mecanism |
|---|---|
| Application cache | CodeIgniter cache driver (file/DB/Memcached/Redis) |
| Object cache | App_Object_Cache intern — evită interogări repetate în același request |
| CDN | Compatibil cu CloudFront sau orice CDN pentru assets statice |
Business Continuity & Disaster Recovery
Cloud (AWS — infrastructura CRMConnect)
| Aspect | Implementare |
|---|---|
| Backup DB | RDS automated snapshots + point-in-time recovery |
| Backup fișiere | S3 versionat — fiecare fișier din /uploads/ protejat |
| Multi-AZ | RDS Multi-Availability Zone — failover automat în < 60 secunde |
| Pod restart | Kubernetes restart automat la crash — MTTR în secunde |
| Rolling updates | Zero-downtime deployment — noua versiune înlocuiește pod-urile treptat |
| Rollback | Kubernetes rollback la versiunea anterioară în sub 2 minute |
RTO (Recovery Time Objective): < 5 minute (pod restart automat Kubernetes)
RPO (Recovery Point Objective): < 24 ore (snapshot zilnic RDS), configurable sub 5 min cu binlog replication
On-Premise — recomandări business continuity
- Backup zilnic MySQL dump +
/uploads/pe storage extern (NAS/cloud) - Replicare MySQL master-slave pentru HA
- Snapshot VM (VMware/Hyper-V) înainte de fiecare update major
- SSL certificate monitoring (expiare)
Update Management & Release Cycle
Cum se livrează update-urile
1. CRMConnect lansează versiunea nouă
↓
2. Imagine Docker nouă pushed în ECR
↓
3. Kubernetes Rolling Update — pod-urile se înlocuiesc treptat
(nicio întrerupere de serviciu pentru utilizatori)
↓
4. Migrații DB aplicate automat la startup pod
↓
5. Health check confirmă serviciul funcțional
↓
6. Old pod-uri terminate
Fiecare client poate fi actualizat independent — nu există un "update night" care afectează toți clienții simultan. Clienții cu cerințe speciale pot fi pe o versiune stabilizată mai lungă.
Sistemul de migrații
- 528 migrații secvențiale — fiecare cu logică proprie de up/down
- Retry automat la deadlock (max 3 încercări) — previne eșecuri la concurență DB
- Versiunea DB curentă stocată și verificată la fiecare deployment
- Zero manual schema changes — tot ce ține de structura DB e codificat și auditabil
Developer Experience
Pentru echipa de dev a clientului
Documentație disponibilă:
- REST API Reference — toate endpoint-urile cu exemple request/response
- Structura modulelor — arhitectura standard pentru module custom
- Hook-uri disponibile — lista completă a punctelor de extensie
Medii disponibile:
- Production — instanța live a clientului
- Staging — mediu separat pentru testare (configurare identică cu producția)
- Development local — rulabil cu Docker Compose pe workstation
Flux development modul custom:
1. Dev clone template modul
↓
2. Development local (Docker)
↓
3. Test pe staging al clientului
↓
4. Code review (echipa CRMConnect sau internă)
↓
5. Deployment pe producție via pipeline CI/CD
API-first design
Toate operațiunile posibile din UI sunt disponibile și via API — orice workflow poate fi automatizat sau integrat extern fără a necesita acces la cod sursă. Ideal pentru:
- RPA (UiPath, Automation Anywhere) — automatizare procese
- BI tools (Power BI, Tableau) — raportare directă din CRM
- iPaaS (Make, n8n, Zapier) — integrări no-code
- Teste automate — regression testing via API
Portabilitate date & Exit Strategy
Datele clientului aparțin exclusiv clientului. Nu există vendor lock-in la nivel de date:
| Tip date | Format export |
|---|---|
| Facturi, propuneri, contracte | PDF bulk export |
| Orice entitate (clienți, leads, produse) | Excel/CSV via REST API |
| Date GDPR per persoană | Export structurat |
| Baza de date completă | MySQL dump (la cerere, pe on-premise) |
| Fișiere uploadate | Arhivă /uploads/ (la cerere) |
La terminarea contractului: Clientul primește un dump complet al bazei de date și arhiva fișierelor — format standard MySQL, importabil în orice alt sistem.
Limitări cunoscute & Roadmap
Transparență completă — ce nu există nativ:
| Funcționalitate | Status | Alternativă |
|---|---|---|
| LDAP / Active Directory | ❌ Nu există nativ | SSO via API custom sau middleware LDAP→CRM |
| SAML / SSO | ❌ Nu există nativ | Autentificare via API + token management |
| IP Whitelisting | ❌ Nu există în aplicație | Implementat la nivel de infrastructure (Kubernetes NetworkPolicy, WAF) |
| DLP (Data Loss Prevention) | ❌ Nu există | Monitorizare via audit log + webhook |
| Penetration test certificate | — | Disponibil la cerere pentru enterprise |
| SOC 2 / ISO 27001 | — | Contactați echipa CRMConnect |
Cum se compensează limitările:
- LDAP/SSO: Poate fi implementat ca modul custom — autentificare LDAP → generare token CRM → session. Clienții enterprise au implementat deja soluții similare.
- IP Whitelisting: Controlat la nivel de infrastructure Kubernetes (NetworkPolicy) sau WAF — mai eficient decât la nivel de aplicație.
- Audit avansat: Export audit log → SIEM extern (Splunk, ELK, Datadog) via Webhooks sau API.
Checklist evaluare pentru IT Director
Securitate:
- Parole hash securizat (phpass, strength 8)
- 2FA TOTP (Google Authenticator, Authy)
- CSRF protection pe toate formularele
- XSS protection + HTML sanitization
- SQL injection prevention (parametrizat)
- Criptare credențiale sensibile at rest
- Audit trail complet cu IP tracking
- Financial integrity audit automat
- Izolare completă date per client (single-tenant)
- LDAP/SAML SSO (disponibil ca modul custom)
- IP whitelisting aplicație (disponibil la nivel infra)
Disponibilitate & Recovery:
- Kubernetes auto-restart (MTTR < 2 min)
- Rolling updates zero-downtime
- RDS Multi-AZ (failover automat)
- Backup automat S3 + RDS snapshots
- Rollback versiune < 2 minute
Conformitate:
- GDPR nativ (consimțăminte, ștergere, portabilitate)
- Audit trail complet pentru eDiscovery
- Data sovereignty (EU region AWS disponibil)
- Portabilitate completă la exit
Integration:
- REST API complet (101 endpoint-uri)
- Webhooks real-time (8 tipuri de events)
- Mobile apps native (Android + iOS, 1:1 cu platforma)
- Open platform — module custom fără restricții
- Integrare cu orice ERP/WMS via API
Referințe rapide
Module: General Settings · Custom Fields · GDPR · Two-Factor Authentication · My Profile · Utilities · Miscellaneous · Team Password Manager · API Management · Webhooks · Workflow Automation · Excel Import · Staff · Roles & Permissions · Departments
Workflow-uri: Workflow Automation · Webhooks