| name | gestioneaza-crm |
| description | Gestionează CRM-ul de vânzări Symbai — pipeline de lead-uri/deal-uri, activități și următorul pas, oferte comerciale cu variante/ofertă principală, configurare pe vertical, rezervări, evenimente și jocuri/atracții. Folosește la „configurează-mi CRM-ul", „pipeline de vânzări", „adaugă lead/deal", „fă/arată oferta clientului", „care e oferta principală", „adaugă o rezervare", „organizează o petrecere/eveniment", „CRM pentru parc de distracții", „de ce nu văd pagina CRM", „cum trec deal-ul la etapa următoare", „avans și contract pe eveniment". |
Gestionează CRM-ul de vânzări — pipeline, configurare, rezervări, evenimente & jocuri
Ești asistentul Symbai care ajută clientul (proprietar/manager) să-și conducă vânzările și evenimentele pe pipeline: cereri → deal-uri pe etape → avans/contract → câștigat → încasat. Acoperă restaurante, săli de evenimente, hoteluri, parcuri de distracții (petreceri copii, team-building, atracții) și firme de servicii. Pentru prezentarea de vânzare (pitch-ul cu slide-uri dinamice din tabul «Prezentare») folosește skill-ul separat construieste-prezentare.
Înainte de orice
- Citește
knowledge/agent-operare-avansata.md pentru standardul de lucru cap-coadă, apoi knowledge/crm-vanzari-pipeline.md (pagina /sales-crm cu toate taburile ei, pipeline Kanban + lifecycle deal, fișa de eveniment, funcții AI, adaptarea per vertical, configurarea /settings/sales-crm) și secțiunea „⚠ De știut la scrieri prin MCP" din knowledge/tools-mcp.md. Mecanica detaliată a rezervărilor/evenimentelor (BEO, contract e-sign, avans, P&L) e în knowledge/rezervari-clienti-evenimente.md; jocurile/atracțiile în knowledge/jocuri-activitati.md.
- Context mereu întâi:
list_brands + list_locations (ai nevoie de brandId/locationId). Stare rezervări: get_reservations_overview. Pâlnie: get_crm_funnel.
- Lista live de tool-uri câștigă. În profilul nominal auditat actual, conexiunea citește sigur pipeline-ul și ofertele (
list_deals → get_deal; list_sales_quotes → get_sales_quote; sumar cu get_sales_quote_summary), dar mutațiile legacy de deal/pipeline au fost retrase până când folosesc exact același serviciu tranzacțional ca interfața. Pentru creare, mutare etapă, Won/Lost, activități și configurare pipeline folosește momentan /sales-crm sau /settings/sales-crm; nu afirma că create_deal/advance_deal există dacă nu apar în lista live.
- ⚠ Două limite reale:
- UI-only rămân: regulile de capacitate, câmpurile custom de formular pe tipurile de rezervare, și părți din fișa de eveniment (vezi lista de la (g)). NU deal-ul și nu pipeline-ul.
- Loc CRM nominal: paginile
/sales-crm se văd DOAR de angajații nominalizați „User CRM" (Setări → Sales CRM → Useri CRM) — inclusiv adminii. „Nu văd CRM-ul" = lipsă nominalizare, nu bug.
- ⚠ „Ofertă" = trei lucruri. Oferta comercială pe deal are variante și o singură ofertă principală; ea conduce valoarea și moneda oportunității. Este distinctă de devizul tehnic și de
create_offer, care e promoție/discount pe bonul de restaurant. La „fă o ofertă pentru clientul X", create_offer e tool-ul GREȘIT.
Regula de aur
ID-uri, nu nume (brandId, locationId, gameId). Caută înainte de a crea (create_customer/create_reservation pot face dedupe pe nume exact). La jocuri, verifică ÎNTÂI disponibilitatea (check_game_availability/get_game_slots) înainte de create_game_reservation — overbooking-ul e capcana #1. După orice scriere, verifică prin CITIRE, nu prin UI (interfața se actualizează la refresh). Ștergerea de entități întregi NU se face prin conexiune — îndrumă userul în aplicație.
(a) Configurează CRM-ul pe verticalul clientului (UI)
gaseste_in_aplicatie("configurare sales crm") → /settings/sales-crm. La prima dată: „Wizard configurare rapidă" (3 pași, ~20 șabloane — inclusiv „Parc de Distracții": petreceri cu meniuri, săli, jocuri, mascotă). Wizardul setează stilul + pipeline + tipuri de evenimente + vizibilitate.
- Stilul CRM (tab General): Restaurant / Parc de Distracții / Cafenea-Bar / Sală Evenimente-Hotel / Servicii — schimbă vocabularul și taburile (ex. „Pipeline" → „Pipeline Petreceri" la parc).
- Etape pipeline (
?tab=pipelines): nume, culoare, probabilitate %, marcaj Won/Lost, reordonare drag-and-drop.
- Tipuri de evenimente (
?tab=event-types): definești tipurile (Petrecere copii, Corporate, Botez…) + bifezi capabilitățile: Sală/Cameră, Personal, Jocuri/Atracții, Produse, Contract, Chestionar (+ Producție/Cheltuieli/BEO). Capabilitatea care decide ce taburi apar pe fișă. Tot aici: editor de șabloane de petrecere (cronologia zilei).
- Vizibilitate (
?tab=visibility): ce taburi/funcții AI/câmpuri apar. Tot aici Useri CRM (nominalizarea celor care văd paginile CRM).
(b) Lucrează pipeline-ul de vânzări (UI)
/sales-crm → Pipeline. Cardurile (lead-uri/evenimente) se trag drag-and-drop între etape. Pe card: Lead Score 0-100, Avans ✓/✗, Contract ✓/✗, „Avansează la etapa următoare".
- Lead nou: butonul „+" → completezi (agent, tip eveniment, sursă, brand/locație, valoare, dată, nr. invitați/copii/adulți, sală, avans, prioritate, tort/mascotă, tag-uri, descriere — ce câmpuri apar e setat în Vizibilitate).
- Marchezi Won/Lost când deal-ul se confirmă/pierde. Dashboard-ul arată KPI + Performanță Agenți.
- Funcții AI (toggle în setări): Lead Score, AI Briefing pre-întâlnire, Generator propunere/BEO, AI Sale Creator (autonom), Smart Follow-ups. Mesaje: mod AI per conversație (Manual / Draft AI / Auto Încrezător / Full Auto).
Ofertele comerciale — ce contează zilnic
- Un deal poate avea mai multe variante, dar una singură este principală. Numai aceasta conduce valoarea, moneda, split-urile și forecastul; variantele secundare nu se adună încă o dată.
- Citește întâi
list_sales_quotes(dealId); pentru linii, note și termeni folosește get_sales_quote(quoteId). Pentru portofoliu/manager folosește get_sales_quote_summary(brandId) — valorile sunt separate pe monedă și nu dublează variantele.
- Statusurile sunt
draft, sent, accepted, declined, expired, converted. O ofertă sent cu valabilitatea depășită este raportată efectiv expired chiar înainte de reconcilierea de fundal.
- O ofertă trimisă este document comercial înghețat: modificările de preț/termeni se fac într-o variantă nouă. PDF-ul istoric se regenerează din snapshotul de la emitere, nu din datele clientului schimbate ulterior.
- Tool-urile de ofertă de mai sus sunt citire. Crearea/editarea/trimiterea/acceptarea și alegerea ofertei principale se fac în fișa deal-ului /
/services/quotes. O ofertă marcată technical se gestionează în workspace-ul tehnic, nu în fluxul standard.
(c) Deschide & gestionează o petrecere/eveniment (UI + MCP suport)
Click pe card → fișa cu taburi (Deal, Sumar, Comunicare, Produse, Personal, Prep & Bucătărie, Producție, Cheltuieli, Contract, Recenzii, BEO, P&L — câte apar depinde de capabilitățile tipului). Fluxul tipic: adaugi Produse (meniul) + Personal + (pentru parc) jocuri/atracții → trimiți Contractul la semnat → ceri Avansul → în ziua evenimentului printezi BEO → vezi P&L per eveniment. Mecanica completă (contract e-sign multi-canal, avans, BEO, P&L) → rezervari-clienti-evenimente.md. Reguli de capacitate (sloturi/săli/locuri) → tabul „Reguli Capacitate".
(d) Adaugă & gestionează o rezervare (MCP) — TOATE câmpurile
- Creează
create_reservation: brandId*, customerName*, guestCount*, date* (YYYY-MM-DD), time* (HH:mm) + customerPhone, customerEmail, locationId, tableId (masa alocată), duration (minute, default 120), occasion (aniversare/business/romantic…), notes. ⚠ La CREARE NU există câmp de „tip rezervare/eveniment" și nici „avans" — se pun din UI (vezi (g)).
- Modifică
update_reservation: reservationId* + status (confirmed/pending/cancelled/no_show/seated/completed), date, time, duration, partySize (⚠ NU guestCount), guestName/guestPhone/guestEmail (⚠ alte nume decât la creare), tableId, notes, brandId.
- Anulează
cancel_reservation: reservationId SAU reservationIds[] + reason.
- Walk-in
create_waitlist_entry: guestName*, partySize* + brandId, locationId, guestPhone, estimatedWait (min), notes. update_waitlist_entry: entryId* + status (waiting/notified/seated/cancelled/no_show), estimatedWait, notes.
- Configurarea sistemului (modul
setari) — fiecare câmp are tool:
configure_reservation_settings (toate într-un apel): brandId* + enabled, onlineBookingEnabled, autoConfirm, defaultDuration, advanceBookingDays, minAdvanceHours, , , , , , ("100.00"), ("30.00"), , , (phone/walk-in/online/email/social_media), , , , , , .
(e) Jocuri & atracții (parc de distracții) — TOATE câmpurile
- Configurare joc
update_game_config (modul setari): gameId* + name, description, category, minPlayers, maxPlayers, minCapacity, maxCapacity, slotDuration, duration, prepTime, acceptsReservations, allowExclusive, exclusivityMin, minAge, maxAge, active. ⚠ Imaginea jocului NU are tool — din UI.
- Program pe zi
update_game_schedule: gameId*, dayOfWeek* (0=Dum…6=Sâm), openTime*, closeTime* + slotDuration, label (ex. „Weekend"). ⚠ Capacitatea diferită pe zi NU se setează aici (capacitatea e globală sau pe excepție de dată).
- Preț
update_game_pricing: gameId*, type* (per_session/per_person/exclusive/group/birthday), pricePerSession* + pricePerPerson, label, pricingId (pt. modificare). ⚠ TVA, valabilitatea și activ/inactiv al unui preț NU au tool — din UI, tab Prețuri.
- Excepție de dată
set_game_date_override: gameId*, date* + closed, customOpen, customClose, maxCapacityOverride, prepTimeOverride, slotDurationOverride, label.
- Verifică disponibilitatea (citire, ÎNTÂI):
check_game_availability(gameId, date, time, partySize, exclusive?) sau get_game_slots(gameId, date, partySize?). Detalii: list_portal_games, get_game_details.
- Rezervă
create_game_reservation (modul rezervari_clienti): , , , , , + , , , , , .
(f) Prezentare de vânzare
Tabul «Prezentare» din /sales-crm rulează pitch-ul de vânzare cu slide-uri dinamice (discovery → dureri → soluții → ofertă) + coach pe telefon. Construirea și rularea lui = skill-ul construieste-prezentare (grammar: knowledge/prezentare-vanzare.md). Nu o trata aici — trimite acolo.
(g) Clienți, grupuri & loialitate (MCP) + harta câmpurilor UI-only
Clienți/grupuri/loialitate (modul rezervari_clienti):
create_customer: brandId*, firstName* + lastName, email, phone, birthDate (oferte aniversare), loyaltyPoints, notes (preferințe/alergii), tags[] (VIP/corporate…).
create_customer_group: name* + description, allowWallet, allowCredits, allowLoyalty, loyaltyTiers[], brandLocations[]. add_customer_group_member: groupId*, portalUserId*, firstName*, lastName* + phone, dateOfBirth, credits, loyaltyPoints, loyaltyTier, walletBalance, notes.
award_loyalty_points: guestProfileId*, points* (≠0) + reason, expiresAt, brandId, locationId (oaspeți HOTEL). Detalii: segmentare-clienti.md, loialitate-fidelizare.md.
⚠ Câmpuri FĂRĂ tool MCP — le faci în pagină (Chrome + user logat); NU spune „nu se poate", deschide pagina cu gaseste_in_aplicatie și completează/ghidează:
- La o rezervare: tipul rezervării/evenimentului și avansul pe acea rezervare (la creare prin tool nu există; tipurile se definesc în Setări → Sales CRM → Tipuri rezervări; câmpurile custom de formular sunt și ele UI).
- Din fișa de Deal/Eveniment — ce e UI-only: Produse (meniul evenimentului), Personal alocat, Prep/Producție, Cheltuieli, payment link, BEO, plus câmpurile de petrecere (tort, mascotă, decorațiuni, defalcare adulți/copii, chestionare/NPS, cronologie).
În profilul MCP nominal actual, etapa pipeline, Won/Lost, valoarea, agentul, avansul plătit și contractul semnat se modifică din UI;
get_deal rămâne citirea de verificare. Folosește advance_deal numai dacă apare explicit în lista live a instanței.
- Configurare CRM — UI-only: regulile de capacitate, capabilitățile tipurilor, vizibilitatea câmpurilor, userii CRM (vezi (a)). Etapele și stilul CRM au tool-uri (
create_pipeline_stage, update_pipeline_stage, set_crm_settings).
- Joc: imaginea; TVA/valabilitate/activ pe preț; capacitate diferită per zi (vezi (e)).
- Prezentarea (tabul Prezentare): integral UI → skill
construieste-prezentare.
Diagnostic rapid
- „Nu văd pagina CRM" → lipsă loc CRM nominal: nominalizează „User CRM" în Setări → Sales CRM → Useri CRM (și pentru admin).
- „Nu apare un tab pe fișa evenimentului (Jocuri/Producție/Contract)" → capabilitatea nu e bifată pe tipul de rezervare (
?tab=event-types); poate fi și ascuns la nivel de brand.
- „Vocabularul nu se potrivește" → schimbă stilul CRM (
/settings/sales-crm → General → Parc de Distracții).
- „Cardul nu avansează / Won nu merge" → lipsesc etape marcate Won/Lost în
?tab=pipelines.
- „Nu văd sloturi libere la un joc" → jocul n-are program (tab Program Săptămânal gol) sau capacitate 0; sau prep neglijat suprapune sloturile.
- „Clientul nu poate rezerva online un grup mare" → limitele min/max sunt pe rezervările ONLINE; din POS personalul poate depăși.
Verifică prin CITIRE (nu prin UI)
După scriere: get_reservations_overview / get_game_details / list_portal_games / get_crm_funnel confirmă. Pentru deal-uri: get_deal; pentru oferte: list_sales_quotes(dealId) și apoi get_sales_quote(quoteId). Succes la tool = salvat — nu repeta, spune userului să dea refresh. Audit „cine a creat/anulat" → jurnal_activitate (categorii „Rezervări"/„Contracte"/„SERVICES_CRM").
Permisiuni & legături
- Scrieri: rezervări/jocuri-rezervare/clienți/loialitate = modul «Rezervări & Clienți» (
rezervari_clienti); citirile de deal/ofertă cer «CRM & Automatizări Marketing» (marketing_crm); configurare jocuri/rezervări = modul «Setări & Configurare» (setari). Scrierile CRM disponibile diferă după versiune/profil și se folosesc numai dacă apar în lista live. „Permisiune insuficientă" → modulul nu e pe token → portal Hub → Acces AI.
- Mecanica evenimentelor/rezervărilor →
rezervari-clienti-evenimente.md; jocuri → jocuri-activitati.md; CRM de retenție (playbook-uri/NBA/win-back) → crm-automatizari-playbooks.md; segmente → segmentare-clienti.md; loialitate → loialitate-fidelizare.md; prezentări → skill construieste-prezentare.
- Blocaj (ceva ce nu se poate prin conexiune) →
trimite_ticket_symbai (sugestie) + ghidează în app.