Workflow: Surveys — Colectare Feedback
Module implicate: Surveys · Email Lists · Clients · Leads · Staff
Cine îl folosește: Marketing · Customer Success · HR
Durata tipică: Creare + trimitere = 30 min · Răspunsuri = 1–14 zile
Overview
Modulul Surveys permite crearea de chestionare cu 6 tipuri de întrebări, trimiterea prin email către liste de destinatari și colectarea răspunsurilor prin link public. Trimiterea este 100% manuală — nu există triggere automate pe events CRM (factură plătită, tichet închis, proiect finalizat).
Nu există tip NPS dedicat. Cel mai apropiat echivalent este tipul
rating(1–5 stele), care nu este o scală NPS standard (0–10) și nu calculează NPS score. Dacă aveți nevoie de NPS real, folosiți tipulratingcu instrucțiuni personalizate în textul întrebării.
Răspunsurile nu sunt legate de înregistrări CRM.
tblsurveyresultsetsstochează doar IP + user agent — nu client_id, nu lead_id. Nu se poate identifica automat cine a răspuns (dacă nu folosiți câmpuri custom în mail lists sau linkuri personalizate).
Trimiterea funcționează prin cron. Emailurile nu se trimit instant — sunt puse în coadă și procesate de cron cu un minim de 1 oră între rulări, maxim 100 emailuri per rulare.
Diagrama fluxului
[CREARE SURVEY]
│
├── New Survey: subject, description (corp email), viewdescription (header public)
├── Adaugă întrebări: input / textarea / checkbox / radio / rating / progress1
├── Opțiuni acces: active, onlyforloggedin, iprestrict, redirect_url
└── URL public generat: site_url/survey/{id}/{hash}
│
↓
[TRIMITERE — manual, staff inițiază]
│
├── Surveys → {survey} → Send Survey tab
├── Selectare destinatari (una sau mai multe opțiuni):
│ ├── Toți contactele active (cu filtru opțional grup client)
│ ├── Toți leads-urile (cu filtru opțional status lead)
│ ├── Toți staff-ul activ
│ └── Mail Lists personalizate
│
├── Insert în tblsurveysemailsendcron (coada de trimitere)
├── Insert în tblsurveysendlog: total=0, iscronfinished=0
└── Status: "așteptare cron"
│
↓
[PROCESARE CRON]
│
├── Condiție: ora curentă - last_survey_send_cron ≥ 1 oră
├── Trimite maxim survey_send_emails_per_cron_run (implicit 100) emailuri
├── Fiecare email: înlocuiește {survey_link} cu URL-ul public
│ + câmpuri custom din mail list (ex: {lista-prenume})
├── La trimitere reușită: șterge rândul din tblsurveysemailsendcron
└── La finalizare: tblsurveysendlog.iscronfinished = 1
│
↓
[COMPLETARE SURVEY — respondent]
│
├── Respondentul deschide URL public: /survey/{id}/{hash}
├── Completează întrebările
├── La submit:
│ ├── Insert în tblsurveyresultsets: ip, useragent, date (nu client_id!)
│ └── Insert în tblform_results: câte un rând per răspuns (per boxid/boxdescriptionid)
└── Redirect la redirect_url (dacă configurat) sau mesaj de confirmare
│
↓
[VIZUALIZARE REZULTATE]
│
├── Surveys → {survey} → Results tab
├── checkbox/radio/rating: bare de progres cu count și % per opțiune
└── input/textarea/progress1: lista tuturor răspunsurilor text (modal)
[FEEDBACK COLECTAT ✓]
Pas cu pas
1. Creare survey
Unde: /admin/surveys → New Survey
| Câmp | Descriere |
|---|---|
subject |
Subiectul emailului de trimitere |
description |
Corpul emailului (suportă merge tag {survey_link}) |
viewdescription |
Textul afișat în header-ul paginii publice de survey |
active |
1 = vizibil public · 0 = 404 pentru non-staff |
onlyforloggedin |
Dacă 1, necesită sesiune autentificată (client sau staff) |
iprestrict |
Dacă 1, permite un singur răspuns per adresă IP |
redirect_url |
URL de redirect după completare (opțional) |
Câmpuri vizuale (opționale):
header_bg, footer_bg, wrapper_color, footer_description — personalizare aspectul paginii publice.
2. Tipuri de întrebări
Unde: în formularul de survey → Add Question
Tip (boxtype) |
Afișare | Răspuns stocat |
|---|---|---|
input |
Câmp text o linie | Text liber în tblform_results.answer |
textarea |
Câmp text multilinie | Text liber în tblform_results.answer |
checkbox |
Opțiuni multiple selectabile | boxdescriptionid per opțiune selectată |
radio |
Opțiune unică selectabilă | boxdescriptionid al opțiunii alese |
rating |
5 stele (Bad / Good / Very good / Great / Awesome) | boxdescriptionid cu valoarea 1–5 |
progress1 |
Slider 0–100 | Valoarea numerică în answer |
Tipul
progress2(bare de progres numerice) este dezactivat în interfață (codul PHP pentru butonul de adăugare este comentat). Nu poate fi adăugat de staff.
Câmpuri per întrebare:
question— textul întrebăriirequired—1= obligatorie pentru submitquestion_order— ordinea afișării
3. Mail Lists — liste personalizate de destinatari
Unde: /admin/surveys → Mail Lists → New List
Mail Lists permit trimiterea către adrese email care nu sunt neapărat contacte sau leads în CRM.
| Câmp | Descriere |
|---|---|
name |
Denumire listă |
| Emails | Adăugare individuală sau import CSV |
| Custom Fields | Câmpuri suplimentare per email (ex: Prenume, Companie) — folosibile ca merge tags în email cu sintaxa {list-name-fieldname} |
4. Trimitere survey
Unde: /admin/surveys/{id} → tab Send Survey
Destinatari disponibili:
| Opțiune | Filtru opțional | GDPR filtrat? |
|---|---|---|
| Toate contactele active | Grup client | Da (dacă GDPR activ) |
| Toate lead-urile | Status lead | Da (dacă GDPR activ) |
| Toți staff-ul activ | — | Nu |
| Mail Lists | Selectare liste specifice | Nu |
Merge tag obligatoriu: Includeți
{survey_link}în câmpuldescription(corpul emailului). Fără acesta, emailul nu conține linkul spre survey.
Configurare volum trimitere:
Unde: /admin/settings → Cron tab → Surveys
| Opțiune | Implicit | Descriere |
|---|---|---|
survey_send_emails_per_cron_run |
100 | Emailuri trimise per execuție cron |
Intervalul minim dintre rulări cron este de 1 oră (last_survey_send_cron opțiune actualizată la fiecare rulare).
5. Vizualizare rezultate
Unde: /admin/surveys/{id} → tab Results
Pentru checkbox, radio, rating:
- Fiecare opțiune afișează: număr voturi / total completări = procentaj
- Bara de progres vizualizează distribuția
Pentru input, textarea, progress1:
- Buton View All Answers → modal cu lista tuturor răspunsurilor text
Limitări importante:
- Nu există export CSV/Excel al răspunsurilor
- Nu există analiză trend în timp
- Nu există cross-survey comparație
- Nu există calcul NPS (chiar dacă folosiți rating 1–5)
- Răspunsurile nu sunt asociate cu client_id sau lead_id
6. Automatizări disponibile (limitate)
Modulul Surveys nu are integrare cu:
workflow_automation(nu există triggere pe events CRM)ma(Marketing Automation)- Orice alt hook CRM (invoice paid, ticket closed etc.)
Singura automatizare existentă: cron-ul de trimitere (procesare coadă tblsurveysemailsendcron).
Permisiuni necesare
| Permisiune | Acces |
|---|---|
surveys → view |
Vizualizare surveys și rezultate |
surveys → create |
Creare surveys noi |
surveys → edit |
Editare surveys existente |
surveys → delete |
Ștergere |
| Configurare volume cron | is_admin() |
Gotchas
| Problemă | Cauză | Soluție |
|---|---|---|
| Emailurile nu se trimit | Cron inactiv sau interval 1h neîndeplinit | Verificați că cron job-ul rulează + așteptați cel puțin 1 oră |
| Survey-ul afișează 404 | active = 0 |
Setați active = 1 pe survey |
| Lipsă link în email | {survey_link} absent din description |
Adăugați merge tag-ul în corpul emailului |
| Nu știu cine a răspuns | tblsurveyresultsets nu stochează client_id |
Folosiți mail lists cu câmpuri custom + cereți email în survey |
| „Rating" nu e NPS real | Rating e 1–5 stele, nu 0–10 | Documentați explicit scala în textul întrebării; calculați NPS manual din export |
| Cron trimite mai puțin de 100 / rundă | survey_send_emails_per_cron_run = valoare mai mică |
Ajustați în Settings → Cron → Surveys |
Referințe module
- Clients — trimitere către contacte
- Leads — trimitere către leads
- Marketing Campaigns — campanii email (pentru emailuri automate)
- GDPR — filtrare consimțăminte la trimitere
Programați sondajele post-eveniment să se trimită automat la un interval fix (ex: 3 zile după rezolvarea tichetului, 14 zile după onboarding) — configurați declanșatorul în setările sondajului astfel momentul răspunsurilor este consecvent fără trimitere manuală pentru fiecare eveniment.
Fiecare destinatar al sondajului primește un link unic de participare care nu necesită autentificare. Răspunsurile sunt legate automat de înregistrarea CRM a clientului sau lead-ului lor, permițând analiză segmentată pe industrie, tier sau produs fără potrivire manuală a datelor.