Programarea se scrie în agenda salonului, nu într-o copie a ei — și asistentul propune ora liberă a specialistului care chiar face serviciul cerut.
Conectăm asistentul la sistemul tău de programări prin șase unelte pe care le cheamă în timpul conversației: serviciile cu prețurile reale, specialiștii cu procedurile fiecăruia, disponibilitatea, crearea, anularea și mutarea unei programări. Sursa de adevăr rămâne agenda ta; noi nu ținem o a doua.
Construit dejaConectorul e scris și rulat: 946 de linii în modulul de integrare cu sistemul de programări Altegio, cu șase unelte expuse agentului, fiecare cu termen propriu de execuție — 15 secunde pentru lista de servicii, 30 pentru disponibilitate, 20 pentru creare, anulare și mutare. Uneltele sunt legate în punctul unic de execuție al agentului, alături de celelalte 15 tipuri de unelte interne ale platformei. A doua implementare pe care ne sprijinim e platforma de asistenți în sine, în producție: canale cu cod propriu, bază de cunoștințe indexată și predare către om cu evidență în baza de date. Rezerva: conectorul e scris pentru un singur sistem de programări. Dacă salonul tău folosește altceva, prima etapă e o verificare de compatibilitate, nu o promisiune.
Într-un salon, aproape fiecare mesaj primit e aceeași conversație în patru replici: ce servicii aveți, cât costă, cine face, când e liber. Se repetă de zeci de ori pe zi, aproape întotdeauna în afara programului sau exact când administratorul are mâinile ocupate. Un asistent care răspunde la primele trei întrebări și se oprește la a patra nu rezolvă nimic — omul tot va suna, iar tu tot vei plăti pe cineva să răspundă.
De aceea am construit integrarea până la capăt: agentul nu doar spune ce ore sunt libere, ci creează programarea în sistemul salonului, o anulează și o mută. Programarea se scrie direct în agenda ta, prin interfața sistemului pe care îl folosești deja. Nu ținem la noi o a doua agendă care apoi trebuie împăcată cu prima — sursa de adevăr rămâne una singură, pentru că două agende înseamnă, mai devreme sau mai târziu, doi clienți la aceeași oră.
Detaliul de teren care face diferența între o integrare care merge și una care „întoarce mereu că nu e liber” e o regulă a sistemului de programări, scrisă ca atare în codul nostru: serviciul și specialistul călătoresc împreună. Dacă ceri orele unui specialist pentru un serviciu pe care el nu îl face, primești zero rezultate — nu o eroare, ci un răspuns gol, care arată exact ca „nu avem loc”. De aceea unealta de disponibilitate nu întoarce „liber/ocupat”: întoarce ce specialiști fac serviciul cerut și primele ore libere pentru fiecare, ordonate după cel mai devreme, ca agentul să propună o alternativă concretă în loc să închidă conversația.
Iar durata reală a unei proceduri e o a doua capcană a aceleiași familii: lista globală de servicii întoarce durata goală, iar durata adevărată apare doar când întrebi filtrat pe specialist. Fără corecția asta, agentul propune ore care nu încap în agendă. Sunt lucruri pe care nu le afli din documentație, ci după ce integrarea a rulat pe date reale.
Ce cuprinde
Ce se schimbă concret în beauty & wellness
Serviciile și prețurile vin din sistemul tău, nu dintr-o listă copiată
Prima unealtă întoarce serviciile active, cu prețurile reale din agenda ta, filtrabile după o formulare liberă a clientului în română sau rusă, cele mai potrivite primele. Termen de execuție 15 secunde. Când schimbi un preț în sistem, agentul îl spune schimbat — nu există un fișier la noi care să rămână în urmă.
Disponibilitatea întoarce cine face serviciul și când, nu doar dacă e liber
Unealta de disponibilitate primește serviciul — după identificator sau după denumirea căutată — și, opțional, specialistul preferat, care e pus primul, dar cu alternativele afișate. Rezultatul e lista specialiștilor care fac acel serviciu și primele ore libere pentru fiecare, ordonate după cel mai devreme. Termen: 30 de secunde, pentru că interogarea atinge mai multe puncte.
Programarea se creează efectiv, nu se promite
Unealta de creare primește specialistul, serviciul sau serviciile, data și ora, telefonul și numele clientului, opțional e-mailul, un comentariu și durata. Rezultatul e o programare în agenda salonului, cu identificator. De acolo încolo ea trăiește în sistemul tău, nu la noi — administratorul o vede unde se uită de obicei.
Anularea și mutarea sunt tot unelte, nu un mesaj către administrator
Anularea cere identificatorul programării și, opțional, motivul; mutarea schimbă ora păstrând programarea. Fără aceste două, orice integrare de programări e pe jumătate: clienții anulează și mută mai des decât rezervă, iar dacă agentul nu poate, munca se întoarce la om exact în momentul cel mai enervant.
Specialiștii, cu procedurile și duratele fiecăruia
A șasea unealtă întoarce lista specialiștilor cu procedurile pe care le face fiecare și durata fiecărei proceduri în minute — se poate filtra după numele specialistului sau după serviciu. E unealta care răspunde la „cine face laminarea” și, mai important, e cea care îi dă agentului durata înainte să propună o oră. Detaliu care se descoperă doar în practică: durata reală vine doar când întrebi filtrat pe specialist; lista globală o întoarce goală.
Cheia de integrator stă pe server, tu pui doar identificatorul salonului
Jetonul de partener e o singură cheie, ținută în mediul serverului, niciodată în baza de date per unealtă. Tu conectezi salonul cu identificatorul companiei, care e validat înainte de a fi salvat: se cere lista publică de servicii pentru acel identificator și se numără câte sunt. Dacă nu răspunde, integrarea nu se salvează — mai bine eșuează la conectare decât în fața unui client.
Un antet greșit înseamnă 403, nu „nu merge integrarea”
Filtrul de securitate al furnizorului răspunde 403 la un identificator implicit de client, deci integrarea trimite un identificator propriu. E genul de amănunt care, nedescoperit, produce zile de căutat cauza în locul greșit — și e scris în comentariul codului tocmai ca următorul om să nu le mai piardă.
Când depășește rolul, predă discuția unui om, cu evidență
Firul are stare explicită `bot` sau `human`, jurnalul de preluare cunoaște preluarea de către un om, revenirea la bot și reactivarea automată, iar firul are separat stare de respectare a timpului de răspuns. Într-un salon, momentele care cer om sunt previzibile: reclamația după o procedură, cererea de reducere, întrebarea despre o problemă de piele.
Ce nu face un asistent de salon
Nu recomandă tratamente și nu evaluează o problemă de piele, de păr sau de unghii — nici măcar când clientul insistă, pentru că răspunsul ar fi o afirmație despre sănătatea cuiva. Nu negociază prețuri și nu acordă reduceri decât dacă regula e scrisă și verificabilă. Și nu funcționează la nivelul ăsta dacă salonul nu are un sistem de programări cu interfață — atunci preia cererea și o predă unui om, ceea ce e o lucrare diferită și trebuie spus înainte.
Traseul
Cum trece o cerere prin sistem.
01
Verificăm compatibilitatea sistemului tău de programări
Prima etapă e o verificare, nu o promisiune: ce sistem folosești, ce interfață publică are, dacă răspunde suficient de repede pentru o conversație. Conectorul pe care îl avem scris e pentru un sistem anume. Pentru altul, livrăm rezultatul verificării și estimarea de lucrare, inclusiv când răspunsul e că nu are cum să meargă la nivelul de rezervare automată.
02
Conectăm salonul și validăm identificatorul
Conectarea se face cu identificatorul companiei tale, validat pe loc contra interfeței publice de rezervare: se cer serviciile și se numără. Livrăm integrarea conectată, cu numărul de servicii citite — dacă cifra nu seamănă cu realitatea salonului, se vede imediat, nu peste o lună.
03
Atașăm uneltele agentului și scriem regulile de refuz
Cele șase unelte se atașează agentului tău, nu tuturor. În rolul lui scriem explicit ce nu are voie: să recomande tratamente, să evalueze o problemă medicală, să promită un rezultat, să acorde o reducere neconfirmată. Livrăm configurația agentului și lista uneltelor atașate.
04
Rulăm pe conversații reale, cu preluare umană activă
Pornim cu predarea către om configurată larg și cu jurnalul interogărilor pornit. Citim conversațiile primelor zile — acolo se văd formulările locale pe care agentul nu le potrivește cu niciun serviciu. Livrăm raportul cu potrivirile ratate și corecțiile făcute.
Traseul, în 5 pași
Datele
Ce atingem, unde stau și cât rămân
Regulile diferă de la o industrie la alta. Acestea sunt cele care se aplică în beauty & wellness.
Ce date personale trec efectiv prin conversație
Nume, telefon, uneori e-mail, serviciul ales și ora. Atât cere unealta de creare a programării. Sunt datele minime pentru care există un motiv — fără telefon nu se poate confirma o programare — și nu cerem altele „ca să avem”.
Datele despre sănătate care apar fără să le ceri
În beauty și wellness, clientul scrie de la sine lucruri de tipul „am pielea sensibilă”, „sunt însărcinată”, „am o alergie”. Sunt date dintr-o categorie specială, cu regim mai strict decât un nume. Nu se pot împiedica tehnic, dar se pot trata: agentul nu le cere, nu le repetă în răspuns și nu le folosește pentru a da un sfat; iar echipa se instruiește să nu le solicite pe canal. Ce e scris de client rămâne în conversație, cu termenul de păstrare stabilit la implementare.
Programările nu se dublează la noi
Sursa de adevăr rămâne sistemul salonului. Noi păstrăm urma execuției — ce unealtă a fost chemată, cu ce parametri, cu ce rezultat — nu o copie a agendei. Diferența contează la o auditare: nu avem o a doua bază cu clienții tăi și cu orele lor.
Unde stau conversațiile și cine le vede
MySQL, pe serverul propriu din Microsoft Azure, cu tabele separate pe canale, note interne și jurnal de audit. Accesul echipei tale se configurează pe roluri. Nu există un depozit comun peste clienți.
Termenul de păstrare și politica publicată
Se stabilesc per implementare și se scriu în politica ta publicată — nu în a noastră. Regula pe care o aplicăm și la noi: dacă o modificare de cod schimbă ce se colectează, cui ajunge sau cât se păstrează, politica publicată se modifică în același commit.
Un caz
Regula de teren care decide dacă integrarea de programări funcționează
Situația
Un asistent conectat la sistemul de programări al unui salon răspundea corect la servicii și prețuri, dar la întrebarea „când e liber” întorcea, pentru anumite combinații, un răspuns gol. Nu o eroare — un răspuns gol, care în conversație arată exact ca „nu avem loc”.
Ce am construit
Cauza e o regulă a sistemului de programări: serviciul și specialistul călătoresc împreună. Orele unui specialist pentru un serviciu pe care nu îl face întorc zero rezultate. Am rescris unealta de disponibilitate ca să pornească de la serviciu, nu de la persoană: întoarce specialiștii care fac acel serviciu și primele ore libere pentru fiecare, ordonate după cel mai devreme, cu specialistul preferat pus primul, dar cu alternativele păstrate. În aceeași etapă am reparat și durata procedurilor, care vine goală din lista globală și reală doar filtrat pe specialist, și am pus un identificator propriu de client, pentru că filtrul de securitate al furnizorului răspunde 403 la cel implicit.
Ce a ieșit
Conversația nu se mai încheie cu „nu e disponibil”. Agentul propune o alternativă concretă — alt specialist, altă oră — și poate crea, anula sau muta programarea în agenda salonului, care rămâne singura sursă de adevăr.
Ce nu spune cazul
Corecțiile sunt specifice sistemului de programări pentru care e scris conectorul. Pentru alt sistem, regulile lui de teren sunt altele și se descoperă la fel: rulând pe date reale, nu citind documentația.
Întrebări
Ce întreabă cineva din beauty & wellness
Programează efectiv sau doar spune că o să sune cineva?
Programează. Există o unealtă de creare care scrie programarea în sistemul salonului, cu specialist, serviciu, dată, oră, telefon și nume, și întoarce identificatorul programării. Anularea și mutarea sunt tot unelte. Dacă un furnizor spune „programează” dar nu poate anula și muta, integrarea e pe jumătate.
De ce ar spune că nu e liber când eu văd ore libere în agendă?
Cel mai frecvent motiv, în sistemul cu care lucrăm, e că serviciul și specialistul călătoresc împreună: dacă se cer orele unui specialist pentru un serviciu pe care nu îl face, răspunsul e zero rezultate, nu o eroare. De aceea unealta noastră de disponibilitate pornește de la serviciu și întoarce specialiștii care îl fac, cu primele ore libere ale fiecăruia. E o corecție scrisă în cod, nu o setare.
Salonul meu nu folosește un sistem de programări. Ce se schimbă?
Se schimbă ce poate face agentul: preia cererea completă — serviciu, specialist preferat, interval, contact — și o predă unui om, în loc să rezerve. E util, dar e altă lucrare și o numim altfel. Nu îți vindem „programare automată” peste o agendă pe hârtie.
Poate să propună altă oră când specialistul preferat e ocupat?
Da, și e comportamentul implicit al uneltei: specialistul preferat e pus primul, dar alternativele se afișează, cu primele ore libere pentru fiecare, ordonate după cel mai devreme. Un agent care răspunde „nu e disponibil” și tace pierde exact clientul care era gata să vină.
Cât durează o procedură — de unde știe, ca să nu propună ore imposibile?
Din unealta de specialiști, care întoarce procedurile fiecăruia cu durata în minute. Amănuntul care contează: lista globală de servicii întoarce durata goală, iar durata reală apare doar filtrat pe specialist. Fără corecția asta, agentul ar propune ore care nu încap. E scris în cod pentru că am descoperit-o pe date reale.
Clientul scrie că are pielea sensibilă. Ce face agentul?
Notează în programare, dacă i-ai cerut asta, și nu dă niciun sfat. Nu evaluează, nu recomandă un produs, nu spune dacă procedura e potrivită — ar fi o afirmație despre sănătatea unui om, făcută de un sistem automat. Predă discuția unui specialist. Informația scrisă de client e dată dintr-o categorie specială și se tratează ca atare, inclusiv la termenul de păstrare.
Cine răspunde dacă agentul face o programare greșită?
Greșeala e vizibilă și reparabilă în același loc unde s-a produs: programarea e în agenda ta, iar aceleași unelte o pot anula sau muta. Platforma păstrează urma execuției — ce unealtă a fost chemată, cu ce parametri și cu ce rezultat — deci se poate reconstitui ce s-a întâmplat. La configurare stabilim ce are voie să facă singur și ce cere confirmarea unui om, iar asta se scrie, nu se subînțelege.
Vede istoricul clientului — ce a făcut ultima dată?
Doar dacă îi dai acces la el, explicit. Uneltele conectate azi acoperă servicii, specialiști, disponibilitate, creare, anulare și mutare. Istoricul de vizite e altă categorie de date, cu alte consecințe, și nu se activează din reflex pentru că „e util”.
Pe ce canale răspunde?
Pe cele pe care scriu deja clienții tăi și care au cod propriu în platformă: Instagram Direct și Messenger — de unde vine cea mai mare parte a mesajelor într-un salon — Telegram, WhatsApp prin Cloud API și widgetul din pagină. Uneltele de programare sunt aceleași pe toate; nu există o versiune mai slabă pe un canal.