Studiu de caz
Torga Optical – asistent AI pe WhatsApp
Torga Optical este un lanț de magazine de optică ce operează o rețea de magazine în Africa de Sud, Namibia, Lesotho și Eswatini. Compania oferă examinări ale vederii, ochelari cu prescripție, ochelari de soare și lentile de contact, combinând serviciile de optometrie din magazine cu un magazin online complet.
Platforma sa de e-commerce este construită pe nopCommerce, unde fiecare magazin funcționează ca o locație separată, cu propriul program de programări, propriul personal și propria disponibilitate a produselor. Clienții pot răsfoi catalogul, pot rezerva un examen al vederii la filiala preferată și pot urmări online stadiul comenzii.
Pe măsură ce comunicarea cu clienții s-a mutat tot mai mult pe WhatsApp, Torga Optical avea nevoie ca serviciile sale digitale - programări, urmărirea comenzilor, promoții și contactul cu magazinul - să fie disponibile direct în acel canal, alimentate de aceleași date live cu care magazinele lucrează zi de zi.
Proiectul
eyeRobot este un asistent conversațional de self-service care aduce magazinul de optică al clientului în WhatsApp. Construit pe framework-ul Hubot și conectat la Rocket.Chat Omnichannel, botul rezolvă de la un capăt la altul cele mai frecvente solicitări ale clienților - rezervarea unui examen al vederii, verificarea unei comenzi, descărcarea voucherelor promoționale și legătura cu filiala potrivită - fără ca vreun agent uman să fie nevoit să preia mai întâi conversația.
Fiecare răspuns pe care îl dă botul se bazează pe date live: comunică direct cu magazinul nopCommerce al clientului prin API-ul REST, astfel încât programările, comenzile, magazinele și produsele sunt mereu sincronizate cu back office-ul.
Provocarea
Clientul operează o rețea mare de magazine de optică în Africa de Sud, Namibia, Lesotho și Eswatini. Solicitările de rutină - „când pot veni la un examen al vederii?”, „sunt gata ochelarii mei?”, „care este numărul filialei mele?” - soseau printr-un singur canal WhatsApp și trebuiau triate manual de echipa de relații cu clienții. Scopul a fost automatizarea acestei prime linii de contact, direcționarea restului către magazinul corect și realizarea acestor lucruri chiar în canalul pe care clienții îl folosesc deja zi de zi.
Soluția
Am livrat un chatbot Node.js care rulează ca agent Rocket.Chat Omnichannel și oferă un meniu numerotat, adaptat pentru WhatsApp. O mașină de stări per conversație urmărește unde se află fiecare client într-un flux, validează fiecare intrare și oferă întotdeauna o cale de întoarcere la meniul principal.
Clientul este recunoscut automat după numărul de telefon al conversației WhatsApp: botul normalizează numărul în mai multe formate, determină țara după prefixul telefonic și caută profilul în nopCommerce - inclusiv magazinul preferat al clientului. Fără autentificare, fără formulare de comandă, fără o aplicație separată de instalat.
Funcționalități principale
- Rezervarea programărilor - un flux ghidat prin provincie → magazin → tip de programare → dată → intervale disponibile live, preluate în timp real din endpointurile de programare nopCommerce. Datele lipsă din profil (nume, e-mail, data nașterii) sunt colectate în conversație, confirmate de client și trimise împreună cu programarea.
- Starea comenzii - căutare instantanee după numărul comenzii în API-ul de comenzi nopCommerce, cu starea tradusă pe înțelesul tuturor.
- Discutați cu magazinul dumneavoastră - botul identifică magazinul preferat al clientului, verifică dacă agentul acelui magazin este online în acel moment și transferă conversația WhatsApp în direct către el, prin API-ul de redirecționare Rocket.Chat Livechat. Clientul continuă să discute în aceeași fereastră.
- Vouchere pe WhatsApp - catalogul de vouchere specific fiecărei țări este citit din nopCommerce, iar voucherul ales îi este livrat clientului ca atașament PDF, printr-un mesaj de tip șablon WhatsApp Business aprobat.
- Sunați magazinul meu - returnează numărul de telefon și detaliile filialei la care este înregistrat clientul.
- Relații cu clienții și ajutor - date de contact, program de lucru, canale sociale și un scurt FAQ, mereu la o tastă distanță.
Aspecte tehnice
- Contextul conversației este izolat pentru fiecare cameră, astfel încât sute de conversații WhatsApp paralele își păstrează fiecare propria stare, propriile reîncercări și propriile reguli de validare.
- Validare strictă a valorilor introduse pentru date calendaristice (DD/MM/YYYY, plus „today” / „tomorrow”, fără date din trecut, maximum patru săptămâni în avans), e-mail, numere de telefon și date de naștere - răspunsurile invalide sunt cerute din nou, în loc să întrerupă fluxul.
- Suport pentru mai multe țări, determinat de prefixul telefonic, asociat cu țara și magazinul corecte din nopCommerce.
- Autentificare pe bază de token în API-ul nopCommerce, cu reautentificare automată, și reînnoirea automată a token-ului Rocket.Chat la expirare.
- Implementare containerizată cu Docker Compose, inclusiv o verificare la pornire care așteaptă până când API-ul Rocket.Chat devine accesibil înainte ca botul să se conecteze, și o politică de repornire automată.
Tehnologii
Node.js 22, Hubot, CoffeeScript, Rocket.Chat (adaptor Omnichannel / Livechat și API REST), mesaje de tip șablon WhatsApp Business, API REST nopCommerce, Axios, Docker și Docker Compose.
Rezultat
Clienții își fac acum programări, urmăresc comenzi și primesc vouchere 24/7 direct din WhatsApp, în timp ce conversațiile care chiar au nevoie de o persoană sunt direcționate automat către filiala potrivită și numai atunci când cineva este efectiv online. Volumul de solicitări de rutină care ajunge la echipa centrală de relații cu clienții scade, iar fiecare interacțiune este alimentată de aceleași date nopCommerce cu care magazinele lucrează deja.
Tehnologii
Node.js- Hubot
- CoffeeScript
- Rocket.Chat
- Rocket.Chat Omnichannel / Livechat API
WhatsApp Business API
nopCommerce
nopCommerce REST API
REST API Integration- Axios
Docker
Docker Compose