Customer Support / Helpdesk

Roluri acoperite: Agent Suport · Team Lead Suport · Manager Helpdesk · Knowledge Manager
Module principale: Tickets · Email Pipe · Knowledge Base · WhatsApp · Appointly · Surveys · Announcements · Spam Filters


Cine sunt utilizatorii acestui ghid

Rol Ce face în CRMConnect
Agent Suport Răspunde la tichete, folosește răspunsuri predefinite, gestionează conversațiile WhatsApp
Team Lead Suport Distribuie și urmărește tichetele echipei, escaladează, monitorizează timpii de răspuns
Manager Helpdesk Configurează departamentele, statusurile, prioritățile, fluxurile de escaladare, rapoarte
Knowledge Manager Creează și menține baza de cunoștințe, convertește soluții din tichete în articole

Harta modulului de suport

CANALE DE INTRARE                GESTIONARE TICHETE
─────────────────                ──────────────────
Email → pipe.php                 Statusuri configurabile
Portal client → form             Priorități (Low/Medium/High/Urgent)
WhatsApp → chat                  Departamente + routing
Manual → agent creează           Alocare per agent
                                 Câmpuri personalizate

COMUNICARE                       SELF-SERVICE
──────────                       ────────────
Răspunsuri predefinite           Knowledge Base (articole)
Note interne (staff only)        Portal client (istoricul tichetelor)
Atașamente (fișiere)             Căutare articole
WhatsApp quick replies           Feedback articole (like/dislike)
Email templates automate         Anunțuri (Announcements)

PROGRAMARE & FOLLOW-UP           RAPORTARE
──────────────────────           ─────────
Appointly (callbacks)            Dashboard tichete
Appointly (appointments)         Metrici per agent
Surveys (satisfacție client)     Timp de răspuns
Reminders automate               Tichete per departament

Rutina zilnică recomandată

Dimineața (15–20 min)

1. Tichete noi și fără răspuns
/admin/tickets → filtrează status Open + adminread = 0
Tichetele roșii = necitite de staff (un nou mesaj de la client).

2. Tichete In Progress fără activitate > 24h
Filtrează status = In Progress + lastreply mai vechi de ieri
Aceste tichete necesită continuare sau escaladare.

3. WhatsApp — mesaje necitite
/admin/whatsapp/interaction — conversații noi sau fără răspuns
Procesezi în paralel cu tichetele.

4. Callbacks programate azi
/admin/appointly/appointments → filtrează data de azi
Pregătești apelul: citești istoricul tichetului/clientului.

Cursul zilei

Tichet nou primit
  ↓ Citești mesajul complet + istoricul clientului
  ↓ Trimiți răspuns (din predefined replies sau scris)
  ↓ Schimbi statusul: Open → In Progress sau Answered
  ↓ Dacă nu poți rezolva: escaladezi (schimbi departamentul sau agentul)

Clientul răspunde la un tichet Answered
  → Tichetul revine automat la Open
  → Notificare push în CRM
  → Procesezi din nou

Săptămânal (Manager/Team Lead)


Tichete — structura și câmpurile cheie

Unde: /admin/tickets

Câmpuri principale pe tichet

Câmp Note
ticketid Număr unic auto-increment — referința principală
ticketkey Hash de 32 caractere pentru URL-ul public de acces
subject Titlul problemei
message Descrierea inițială
date Timestamp creare tichet
lastreply Ultimul mesaj (indiferent de cine) — baza pentru SLA informal
userid / contactid Clientul și contactul specific
department Departamentul responsabil
priority Urgența (customizable)
service Categoria de serviciu (dacă activat)
status Statusul curent
assigned Agentul alocat
project_id Proiectul asociat (opțional)
adminread 0 = agent nu a citit ultimul mesaj (badge roșu)
clientread 0 = clientul nu a citit ultimul răspuns

Legătura tichet → client

Situație Câmpuri completate
Client înregistrat userid = ID client + contactid = ID contact specific
Email neînregistrat email = adresa expeditorului, name = numele
Staff deschide tichetul admin = ID agent

Statusuri, priorități și departamente

Statusuri tichete

Unde: /admin/tickets/statuses

Statusurile sunt complet configurabile — poți adăuga, edita, colora și ordona. Fiecare are:

Statusuri tipice și comportamentul lor:

Status Cod Comportament
Open 1 Tichet nou neprocesat sau cu răspuns nou de la client
In Progress 2 Agent lucrează; răspunsul clientului NU schimbă statusul
Answered 3 Agentul a răspuns — se așteaptă confirmarea clientului
On Hold 4 Suspendat (aștepți informații externe sau o altă echipă)
Closed 5 Rezolvat — se trimite automat email de recenzie

Regulă implicită: Când clientul trimite un reply la un tichet Answered → statusul revine automat la Open. La un tichet In Progress → statusul rămâne In Progress.

Priorități tichete

Unde: /admin/tickets/priorities

Configurabile — poți adăuga oricâte niveluri. Exemple standard:

Prioritate Timp de răspuns recomandat
Low 72 ore
Medium 24 ore
High 4 ore
Urgent 1 oră

Notă: CRMConnect nu aplică escaladare automată bazată pe timp. Timpii sunt convenții de echipă — monitorizarea și escaladarea sunt manuale.

Departamente de suport

Unde: /admin/departments

Fiecare departament are:

Servicii (categorii de tichete)

Unde: /admin/tickets/services (activat din setări)

Clasificare suplimentară: Bug, Cerere funcționalitate, Întrebare, Instalare, Training.
Util pentru raportare: câte tichete pe tip de problemă.


Răspuns la un tichet — ghid practic

Deschizi tichetul → citești contextul

Înainte de a răspunde:

  1. Istoricul conversației — citești tot thread-ul
  2. Fișa clientului — click pe numele clientului → vezi contul, facturile, contractele active
  3. Tichete anterioare — din fișa clientului, tab Tickets → pattern-uri de probleme recurente

Trimiți răspunsul

Opțiunile de răspuns:

Tip Vizibil pentru client Când îl folosești
Reply Da Răspunsul propriu-zis la client
Internal Note Nu (staff only) Note pentru colegi, observații interne, escaladare internă

Răspuns predefinit (1 click):

Atașamente:

Schimbi statusul la trimitere

La fiecare reply, selectezi noul status:

Realocarea tichetului

Dacă tichetul nu e pentru tine:


Email Pipe — cum funcționează

Fișier: pipe.php (configurat pe serverul de mail)

Fluxul complet

Email trimis de client la support@firma.ro
  ↓
Serverul de mail → forward la pipe.php
  ↓
Spam filter check (sender, subject, phrase)
  ↓
Rate limit check: max 10 tichete / 15 min / expeditor
  ↓
Subject conține [Ticket ID: 123]?
  ├── DA → reply adăugat la tichetul 123
  └── NU → tichet NOU creat
  ↓
Departament determinat din adresa To: (support@firma.ro → Suport Tehnic)
  ↓
Client identificat după email → `userid` completat
  ↓
Atașamentele din email → salvate în /uploads/ticket_attachments/
  ↓
Notificare trimisă staff-ului din departament

Rate limiting

Limita exactă: 10 tichete noi în oricărei ferestre de 15 minute per expeditor.

Dacă depășit → emailul e ignorat silențios (nu se creează tichet). Util pentru a bloca spam-ul automated.

Procesarea corpului emailului

Pasul Ce face sistemul
1 Preferă HTML față de plain text
2 Dacă ticket_import_reply_only = 1 → extrage doar ultimul reply (ignoră citatele)
3 Sanitizează HTML — păstrează <br>, <a>, șterge restul
4 XSS clean
5 Elimină emoji-uri
6 Convertește newlines la <br />

Configurare email pipe

Setări cheie din /admin/settings → Email Piping:

Setare Valoare Efect
email_piping_only_registered 1 Acceptă tichete doar de la emailuri înregistrate ca clienți
email_piping_only_replies 1 Nu creează tichete noi din email — doar reply-uri la existente
ticket_import_reply_only 1 Extrage doar ultimul reply din email (ignoră quote-urile)
email_piping_default_priority ID prioritate Prioritatea implicită pentru tichete din email
default_ticket_reply_status Status ID Statusul după un reply de client (default: 3 = Answered)

Filtre Spam

Unde: /admin/spam_filters/view/tickets

Tipuri de filtre

Tip Câmpul verificat Exemplu
sender Adresa email expeditor spam@exemplu.com
subject Subiectul emailului *unsubscribe*, *out of office*
phrase Corpul mesajului "click here to unsubscribe"

Filtre hard-codate (mereu active)

Indiferent de filtrele configurate, aceste subiecte sunt blocate automat:

Blocarea unui domeniu întreg

Nu există blocare la nivel de domeniu. Workaround:

  1. Adaugi fiecare adresă din domeniu ca filtru sender
  2. Sau adaugi un filtru phrase cu textul specific al emailurilor din acel domeniu

Filtrele se aplică și pentru leads

rel_type poate fi tickets sau leads — același mecanism de filtrare protejează și captarea de lead-uri din email.


Portalul client — ce vede și face clientul

URL: /clients/tickets

Acțiunile disponibile pentru client

Acțiune Detalii
Deschide tichet nou Completează: subiect, departament, prioritate (dacă permis), mesaj, atașamente
Vede istoricul tichetelor Toate tichetele companiei, filtrate per status
Răspunde la tichet Text + atașamente
Schimbă statusul Dacă allow_customer_to_change_ticket_status = 1
Caută în Knowledge Base Articolele vizibile publicului

View conversation (thread bidirecțional)

Conversația e afișată ca chat bidirecțional:

Câmpuri personalizate în portalul client

Dacă câmpul custom are show_on_client_portal = 1, apare la crearea tichetului din portal. Util pentru: numărul contractului, modelul produsului, seria echipamentului.


Knowledge Base — gestionarea articolelor

Unde: /admin/knowledge_base

Structura

Grupuri (tblknowledge_base_groups)
  │  Denumire, culoare, ordine, vizibilitate
  │
  └── Articole (tblknowledge_base)
        Titlu, conținut HTML, vizibilitate, ordine
        Vizibil clienți (staff_article=0) sau staff-only (1)

Câmpuri cheie pe articol

Câmp Note
subject Titlul articolului
description Conținut HTML — editabil rich text
slug URL SEO-friendly, generat automat, deduplicat
active 1 = publicat, 0 = draft
staff_article 0 = vizibil clienți, 1 = intern staff only
articlegroup Grupul în care apare
article_order Ordinea în grup (drag-drop reordonare)

Fluxul de creare articol din tichet

Un tichet rezolvat cu o soluție valoroasă → articol KB:

  1. Copiezi răspunsul din tichet
  2. /admin/knowledge_baseAdaugă Articol
  3. Titlu: problema rezolvată (formulat ca întrebare: „Cum configurez X?")
  4. Conținut: pașii soluției, clear și cu imagini dacă e cazul
  5. Grup: categoria potrivită
  6. staff_article = 0 → vizibil clienților în portal
  7. Publici

Feedback articole

Clienții pot vota articolele (like/dislike) — înregistrat în tblknowedge_base_article_feedback cu IP pentru deduplicare. Folosești feedback-ul pentru a:

Căutare în Knowledge Base

Portal client: Câmpul de căutare din Knowledge Base caută full-text în titlu și conținut — servește ca nivel 0 de self-service înainte ca clientul să deschidă tichet.

Staff: Agentul poate căuta în KB și insera link la articol în răspunsul la tichet.


Răspunsuri predefinite (Predefined Replies)

Unde: /admin/tickets/predefined_replies

Cum funcționează

  1. Manager creează răspunsurile standard pentru situațiile frecvente
  2. La răspunsul unui tichet → dropdown Select Predefined Reply
  3. Agentul selectează template-ul → textul se inserează automat în câmpul de reply
  4. Agentul personalizează dacă e nevoie → trimite

Exemple de răspunsuri predefinite utile

Situație Conținut răspuns
Confirmare primire „Am primit tichetul dumneavoastră și îl vom procesa în 24h..."
Solicitare informații „Pentru a putea rezolva problema, avem nevoie de: (1) nr. contractului, (2) screenshot-ul erorii..."
Problemă rezolvată „Problema a fost rezolvată. Vă rugăm să verificați și să ne confirmați că totul funcționează..."
Escaladare „Problema dumneavoastră a fost escaladată către echipa noastră de specialiști care va reveni în..."
Închidere inactivitate „Deoarece nu am primit răspuns în ultimele 7 zile, închidem acest tichet. Puteți redeschide oricând..."

Organizare

Răspunsurile predefinite nu au categorie în baza de date — dacă ai multe, le denumești cu prefix pentru organizare vizuală: [Tehnic] Eroare acces, [Facturare] Factură duplicată, [General] Confirmare primire.


WhatsApp pentru suport

Unde: /admin/whatsapp/interaction

Funcționalitățile cheie pentru suport

Feature Descriere
Chat bidirecțional Primești și trimiți mesaje WhatsApp direct din CRM
Legătură cu clientul Conversația e linkată la fișa clientului
Quick Replies Răspunsuri predefinite pentru WhatsApp — similare cu predefined replies din tichete
Template campaigns Mesaje în masă pentru notificări de status, promoții
Bots Chatbot configurat pentru răspunsuri automate la mesaje simple
Grupuri Gestionare grupuri WhatsApp Business
Activity Log Tot istoricul conversațiilor per contact

Integrare cu tichetele

Mesajele WhatsApp pot fi legate la tichete:

Quick Replies WhatsApp

/admin/whatsapp/QuickReplies — biblioteca de răspunsuri rapide:


Appointly — programări și callbacks

Unde: /admin/appointly

Callbacks programate pentru suport

Când un client are o problemă care necesită apel telefonic:

1. Din tichetul deschis sau din fișa clientului
   ↓
2. Adaugă Programare Callback:
   - Data și ora
   - Responsabil (agentul care sună)
   - Remindere (ex: cu 30 min înainte)
   ↓
3. Agentul primește reminder (email/SMS)
   ↓
4. Face apelul → notează rezoluția în tichet
   ↓
5. Marchează callback-ul ca Finished

Câmpuri cheie pe appointment:

Câmp Note
subject Subiectul apelului/întâlnirii
date + start_hour Când are loc
reminder_before Câte minute/ore/zile înainte trimitem reminderul
email / phone Datele de contact ale clientului
Google Meet link Dacă e o întâlnire video — se generează automat
finished / cancelled Statusul după desfășurare

Istoric appointments

/admin/appointly/appointments_history — toate programările finalizate, util pentru audit și raportare volum de apeluri.


Sondaje de satisfacție post-tichet

Unde: /admin/surveys

Flux automat (via Workflow Automation)

Trigger: Tichet status → Closed
  ↓ Wait: 1 oră (sau imediat)
  ↓ Acțiune: Trimite Survey „Satisfacție Suport" → emailul clientului

Survey-ul conține:

Rezultatele apar în /admin/surveys → tab Rezultate — aggregate și per răspuns individual.


Anunțuri pentru clienți (Announcements)

Unde: /admin/announcements

Când folosești anunțuri în suport

Configurare anunț

Câmp Note
name Titlul anunțului
message Conținut HTML — poate include link-uri
showtousers 1 = vizibil în portalul clienților
showtostaff 1 = vizibil pentru staff la logare

Anunțul rămâne vizibil până când utilizatorul îl confirmă (dismiss). Poți republica același anunț ștergând înregistrările de dismiss.


Metrici și raportare support

Widget-uri dashboard disponibile

Unde: Dashboard principal → widget-uri tichete

Widget Ce arată
Tichete deschise Numărul total de tichete nerezolvate
Pe status Distribuție Pie: Open / In Progress / Answered / Closed
Pe prioritate Urgent / High / Medium / Low
Pe agent Câte tichete are fiecare agent
Pe departament Distribuție per departament
Timp mediu răspuns Media timpului până la primul reply
Overdue Tichete fără activitate > prag configurabil
Timeline Activitate cronologică

Metrici cheie pentru management support

Metrică Formula / Sursă
Time to First Response lastreply (primul reply staff)date (creare tichet)
Resolution Time data_closeddate (creare tichet)
First Contact Resolution (FCR) Tichete rezolvate cu un singur reply / total tichete
Ticket Volume Count tichete create per perioadă
Agent Load Count tichete assigned = agent_id AND status ≠ Closed
Customer Satisfaction Rating mediu din surveys post-tichet
KB Effectiveness Count vizualizări articole / count tichete pe aceeași temă

Filtre disponibile în lista de tichete


Câmpuri personalizate pe tichete

Unde: /admin/custom_fields → entitate: Tickets

Adaugi câmpuri specifice afacerii tale care nu sunt în formularul standard:

Exemplu Tip Când e util
Număr serie echipament Text Suport hardware
Număr contract Text Suport servicii
Versiune software Dropdown Suport IT
URL problemă Link Suport web/SaaS
Data ultimei actualizări Date Suport sistem
Prioritate SLA Dropdown Tier de suport (Basic/Premium/Enterprise)

Vizibil în portal client: Dacă show_on_client_portal = 1, clientul completează câmpul la crearea tichetului.


Automatizări recomandate pentru suport

Configurabile în Workflow Automation (/admin/workflow_automation):

Trigger Acțiune Beneficiu
Tichet NOU creat Notificare push → agentul departamentului Zero tichete nedetectate
Tichet NOU cu prioritate Urgent Email + notificare → Team Lead Escaladare imediată
Tichet fără reply de staff > 4h Notificare urgentă → Team Lead SLA informal monitorizat
Tichet fără activitate > 7 zile Task „Revizuire tichet stagnant" → agent Curățare coadă
Tichet status → Closed Survey satisfacție trimis → client (după 1h) Feedback automat
Client răspunde la tichet Closed Redeschidere automată → Open Zero răspunsuri pierdute
Tichet creat de client VIP Prioritate → Urgent + notificare manager SLA premium

Configurare inițială recomandată

Înainte de a activa suportul, configurezi:

  1. Departamente /admin/departments — inclusiv adresa email dedicată per departament
  2. Statusuri /admin/tickets/statuses — cu culori distinctive
  3. Priorități /admin/tickets/priorities — 4-5 niveluri cu definiții clare
  4. Servicii /admin/tickets/services — categoriile de probleme (dacă vrei clasificare)
  5. Răspunsuri predefinite /admin/tickets/predefined_replies — top 15-20 situații frecvente
  6. Filtre spam /admin/spam_filters/view/tickets — adrese și fraze known-spam
  7. Email pipe — configurezi forwarding pe serverul de mail → pipe.php
  8. KB Grupuri /admin/knowledge_base/manage_groups — structura bazei de cunoștințe
  9. Survey satisfacție /admin/surveys — un survey standard post-tichet
  10. Workflow Automation — automatizările de notificare și escaladare

Permisiuni recomandate pentru echipa Support

Solicită administratorului la /admin/roles:

Permisiune Necesar pentru
Tickets → View / Reply Acces de bază la tichete
Tickets → Edit Schimbare status, prioritate, alocare
Tickets → Delete Ștergere tichete spam/duplicate (restrictiv)
Knowledge Base → View / Create Creare articole KB
Surveys → View / Create Sondaje de satisfacție
Appointments → View / Create Programare callbacks
WhatsApp → View / Reply Suport via WhatsApp
Spam Filters → Manage Adăugare filtre (Team Lead+)
Reports → Tickets Acces rapoarte
Announcements → Create Publicare anunțuri client (Team Lead+)

Referințe rapide

Workflow-uri: Support Ticket Lifecycle

Module: Support Tickets · Ticket Statuses · Ticket Priorities · Ticket Services · Ticket Predefined Replies · Knowledge Base · Surveys · Spam Filters · Appointments · WhatsApp · WhatsApp API · Announcements

Departamente înrudite: Departament Vânzări · OMS & E-commerce

← Înapoi la Department Guides