
# Widget de chat

## Ghid de integrare a widgetului de chat pe site

Adăugați un widget de chat ușor de utilizat pe site-ul dvs., care permite vizitatorilor să comunice direct prin interfața site-ului. Procesul de integrare este simplu și va oferi site-ului dvs. capabilități de mesagerie integrate.

::: walkthrough chat-widget
:::

### Crearea și configurarea widgetului de chat

**Cum ajungi acolo:**

1. Dă clic pe **Setări** (Settings) în partea de jos a barei laterale din stânga. (Pe telefon, atinge mai întâi pictograma de meniu **☰** din colțul de sus pentru a deschide bara laterală.)
2. În coloana din stânga a setărilor, sub **Canale** (Channels), dă clic pe **Canale** (Channels).
3. Găsește cardul **Widget de chat pentru site-ul web** (Website chat widget).
4. Dacă nu ai încă un widget, dă clic pe **Conectare** (Connect) pentru a crea unul cu un nume de afișare și un mesaj de bun venit.
5. Odată creat, dă clic pe **Gestionare** (Manage) oricând pentru a deschide panoul complet de configurare.

::: master-only
<figure><img src="../.gitbook/assets/v2-channels-overview.png" alt="Partea de sus a paginii Canale — cardul widgetului de chat pentru site-ul web se află mai jos în aceeași listă"><figcaption><p>Widgetul de chat are propriul card pe pagina Canale — Conectați pentru a-l crea, Gestionați pentru a configura tot restul. Acesta se află mai jos în listă decât este arătat aici, după Instagram (Personal), LINE, E-mail și celelalte canale.</p></figcaption></figure>
:::

Modificările pe care le salvezi se aplică automat widgetului tău activ — nu este nevoie să lipești din nou codul de instalare după efectuarea unei modificări.

O **Previzualizare live** se află chiar lângă setări: o pagină web demonstrativă cu widgetul tău real rulând pe ea, afișându-ți culorile, poziția, logo-ul, pictograma de lansare și fereastra pop-up proactivă exact așa cum le vor vedea vizitatorii. Aceasta urmărește modificările pe măsură ce le faci, deci nu trebuie să salvezi pentru a vedea cum arată o schimbare de culoare sau de temă. Poți chiar să dai clic pe butonul de chat din interiorul previzualizării pentru a deschide widgetul și a-l testa.

### Ce poți personaliza

Panoul de gestionare este organizat în patru secțiuni.

#### Aspect

- **Temă de stil:** Restilizează întregul widget dintr-un singur clic. Șase teme stabilesc aspectul, culorile, colțurile și fontul: **Classic** (aspectul solid original — o bară de antet colorată pe un panou plat), **Glass** (un panou translucid, mat, care estompează ușor pagina din spate, cu antetul și caseta de mesaje plutind ca niște carduri rotunjite în interior), **Midnight** (Glass în culori închise), **Bloom** (roz pal, extra-rotunjit), **Ember** (Glass în nuanțe calde de portocaliu) și **Mono** (alb-negru, colțuri ascuțite). O temă este un punct de plecare — după ce alegi una, poți modifica în continuare orice culoare sau setare individual. Widgeturile noi pornesc cu Glass; schimbarea este instantanee oriunde este încorporat widgetul, fără modificări de cod pe site-ul tău.
- **Colțuri și font:** Două setări de stil independente. **Colțuri** stabilește cât de rotunjite sunt panoul, bulele și butoanele (Rotunjit, Moale sau Ascuțit), iar **Font** alege tipul de literă pe care îl văd vizitatorii (Implicit, Serif, Rotunjit sau Mono) — fonturile provin de pe dispozitivul vizitatorului, deci nu se încarcă nimic suplimentar pe site-ul tău.
- **Nume afișat:** Afișat în antetul widgetului.
- **Logo:** Încarcă o imagine care apare în partea de sus a chatului. Folosește logo-ul companiei tale sau o fotografie prietenoasă.
- **Pictogramă lansator:** Pictograma de pe butonul plutitor de chat. Alege una dintre pictogramele încorporate (bulă de chat, avion de hârtie, semn de întrebare și altele), refolosește logo-ul încărcat sau încarcă o imagine separată — util dacă dorești o fotografie a unui membru real al echipei care întâmpină vizitatorii.
- **Culori:** Cinci culori, fiecare denumind partea widgetului pe care o colorează. **Culoarea mărcii** este pentru butonul plutitor, antet și propriile mesaje ale vizitatorului, cu **Text marcă** pentru textul care se află deasupra acestora. **Bulă bot** este fundalul răspunsurilor botului tău și al indicatorului de scriere, cu **Text bulă bot** pentru cuvintele din interiorul acestora și punctele animate de scriere. **Fereastră chat** este panoul din spatele tuturor mesajelor. Alege o culoare pentru bula botului care să fie clar diferită de culoarea mărcii tale — dacă cele două se potrivesc, ambele părți ale conversației vor avea aceeași culoare și vizitatorii nu vor putea distinge răspunsurile botului de ale lor. O bulă de bot gri deschis cu text închis lângă culoarea mărcii tale este combinația sigură.
- **Poziție:** Plasează butonul plutitor de chat în colțul **dreapta-jos** sau **stânga-jos**, cu decalaj orizontal și vertical (în pixeli) dacă se suprapune peste altceva pe pagina ta.
- **Întrebări de început:** Sugestii de răspuns rapid (jetoane pe care se poate da clic) afișate în chat, astfel încât vizitatorii să poată începe conversația cu o singură atingere în loc să tasteze — de exemplu „Care sunt prețurile voastre?” sau „Oferiți asistență?” — până la 10.
::: master-only
<figure><img src="../.gitbook/assets/v2-channel-widget-config.png" alt="Panoul de configurare a widgetului de chat, care arată cele șase carduri de teme de stil (Clasic, Sticlă, Miezul nopții, Înflorire, Jar, Mono), selectoarele pentru colțuri și font, numele afișat, logo-ul, pictograma de lansare și selectoarele de culori din stânga, cu previzualizarea live în dreapta care arată widgetul deschis în tema Sticlă"><figcaption><p>Secțiunea Aspect a panoului Gestionare. Cardurile de teme din partea de sus restilizează întregul widget cu un singur clic — aici este selectată tema Sticlă, iar previzualizarea din dreapta arată panoul mat cu antetul său plutitor și caseta de mesaje. Rândul pictogramei de lansare arată pictogramele încorporate în culorile proprii ale widgetului tău, iar fiecare selector de culoare indică ce parte a widgetului colorează. Previzualizarea urmărește modificările în direct; salvarea le publică pe site-ul tău.</p></figcaption></figure>
:::

#### Comportament

- **Mesaj de întâmpinare:** Primul mesaj pe care îl văd vizitatorii când deschid chatul (de exemplu, „Cu ce te pot ajuta?”).
- **Sunet:** Redă un sunet când sosește un mesaj nou în chat.
- **Solicită permisiunea pentru notificări:** Solicită opțional vizitatorilor să permită notificările din browser, astfel încât să fie alertați cu privire la răspunsuri chiar și atunci când au schimbat tab-urile.
- **Balon pop-up proactiv:** Un mic balon opțional care apare lângă butonul de chat pentru a invita oamenii să interacționeze. Activează-l pentru a seta mesajul acestuia, textul butoanelor de acceptare/respingere și numărul de secunde de așteptare înainte ca acesta să apară. Balonul se ascunde automat după 20 de secunde dacă nimeni nu dă clic pe el (acest număr este fix), iar odată ce un vizitator dă clic pe **Nu acum**, acesta nu va mai apărea pe durata vizitei sale. Fereastra de chat în sine nu se deschide niciodată de la sine: se deschide când vizitatorul dă clic pe butonul de chat sau pe balon și rămâne deschisă până când acesta o închide.
- **Viteza de răspuns AI:** Un glisor între **Mai lent** (mai uman — AI-ul ia o pauză înainte de a răspunde) și **Viteză maximă** (mai robotic — răspunsurile vin cât mai rapid posibil). Echilibrat se află la mijloc.

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-behavior.png" alt="Secțiunea Comportament a panoului Gestionare, care arată câmpurile Mesaj de întâmpinare, Sunet, Solicitare permisiune notificare, Balon pop-up proactiv și Viteza de răspuns AI"><figcaption><p>Secțiunea Comportament. Sunetul și Solicitarea permisiunii de notificare sunt comutatoare simple; Balonul pop-up proactiv se extinde în propriile sale câmpuri pentru mesaj/buton/întârziere odată activat.</p></figcaption></figure>
:::

#### Limbi

Widgetul este multilingv în mod nativ — nu trebuie să activați nimic.

- **Alege automat limba vizitatorului.** Mai întâi verifică limba pe care o declară pagina ta în HTML (`<html lang="it">`), apoi revine la limba browserului vizitatorului. Dacă niciuna nu este o limbă pe care o acceptăm, etichetele widgetului vor fi afișate în engleză, iar mesajul de întâmpinare, fereastra pop-up și întrebările de început vor apărea exact așa cum le-ai scris.
- **Sau alege una tu însuți.** Câmpul **Limba widgetului** din secțiunea Comportament este setat implicit pe Auto, ceea ce reprezintă detecția menționată mai sus. Alege o limbă de acolo, iar etichetele widgetului (câmpurile Prenume, Email și Telefon din formularul vizitatorului și textul lor exemplificativ, notificarea de confidențialitate, butoanele) vor rămâne în acea limbă, indiferent de ceea ce indică pagina sau browserul. Folosește această opțiune atunci când constructorul site-ului tău nu declară limba corectă sau când dorești o limbă fixă pentru fiecare vizitator.
- **Limbi acceptate:** engleză, olandeză, germană, franceză, spaniolă, italiană, portugheză, română, poloneză, arabă, finlandeză, filipineză, slovenă, thailandeză, bengaleză și japoneză. Aceasta este lista pentru butoanele și etichetele proprii ale widgetului.
- **Mesajele tale sunt traduse pentru tine.** De fiecare dată când salvezi, mesajul tău de întâmpinare, fereastra pop-up proactivă și întrebările de început sunt traduse în toate cele șaisprezece limbi de mai sus. Le scrii o singură dată, în orice limbă preferi: limba în care ai scris este recunoscută din textul propriu-zis, acea versiune este păstrată cuvânt cu cuvânt, iar toate celelalte limbi sunt traduceri ale acesteia. Nu contează pe ce limbă este setat contul tău.
- **Scrie fiecare mesaj într-o singură limbă.** Dacă pui două limbi în același câmp — de exemplu, un rând în engleză și un rând în italiană — totul este tratat ca un singur mesaj și tradus ca atare, astfel încât un vizitator italian va ajunge să vadă aceeași propoziție de două ori. Scrie-l o singură dată, în orice limbă preferi.
- **AI-ul răspunde în limba vizitatorului.** Indiferent de limba în care scrie cineva, agentul tău răspunde în aceeași limbă, indiferent de limba în care sunt afișate etichetele widgetului. Dacă preferi ca acesta să răspundă întotdeauna într-o limbă fixă, specifică acest lucru în instrucțiunile agentului tău.

**Sfat:** dacă site-ul dvs. nu setează un atribut `lang` pe eticheta `<html>`, adăugați unul. Este cel mai puternic semnal pe care îl avem pentru a alege limba corectă, în special pentru vizitatorii care navighează din străinătate.

#### Captarea de lead-uri și confidențialitate

- **Colectare informații vizitatori:** Dezactivat implicit. Când este activat, vizitatorilor li se solicită numele și adresa de e-mail (și opțional numărul de telefon) înainte de începerea conversației, astfel încât să puteți capta lead-ul chiar dacă aceștia părăsesc chat-ul la mijlocul conversației.
- **Titlu formular** și **Subtitlu formular:** Personalizați titlul și scurta explicație afișate deasupra formularului.
- **Colectare număr de telefon:** Activați pentru a solicita și un număr de telefon; dezactivat, colectează doar numele și adresa de e-mail.

> **Un vizitator a lăsat un număr de telefon și a părăsit site-ul — pot continua pe WhatsApp?** Da. Deschide conversația acestuia și alege **Continuă pe WhatsApp** din meniul cu trei puncte (WhatsApp Web sau WhatsApp Business trebuie să fie conectat). <span data-t="appName">DM Champ</span> creează o conversație WhatsApp legată pentru aceeași persoană, copiază numele, adresa de e-mail și detaliile acesteia, iar AI-ul preia ceea ce a spus pe site-ul tău, astfel încât nimeni nu trebuie să repete informațiile. Chat-ul de pe site rămâne unde este, iar ambele conversații indică una către cealaltă în secțiunea **Conversații legate** din panoul de contact. Vezi [Interfața de chat](../chats/chat-interface.md).

> **Poate agentul AI să ofere singur trecerea la WhatsApp?** Da, și nu are nevoie de nicio funcționalitate suplimentară — un singur rând în instrucțiunile agentului este suficient. Creează un [Link scurt](../settings/short-links.md) pentru numărul tău de WhatsApp cu un mesaj precompletat, cum ar fi „Bună, discutam pe site-ul vostru și aș dori să continuăm aici”, apoi spune-i agentului când să îl trimită, de exemplu: „Dacă vizitatorul trebuie să plece, dorește să continue mai târziu sau întreabă de WhatsApp, oferă-te să continuați acolo și trimite acest link: (link-ul tău scurt)”. Link-urile din widget pot fi accesate prin atingere, astfel încât vizitatorul ajunge pe WhatsApp cu numărul tău selectat și mesajul deja scris, iar primul său mesaj deschide o conversație WhatsApp în căsuța ta de primire. Dacă vizitatorul a lăsat numărul de telefon de pe care scrie (cu prefixul țării) în formularul widget-ului, <span data-t="appName">DM Champ</span> leagă automat cele două conversații, iar AI-ul de pe WhatsApp cunoaște deja chat-ul de pe site, exact ca în cazul **Continuă pe WhatsApp**. Dacă nu a fost colectat niciun număr de telefon, cele două chat-uri nu sunt legate, așa că asigură-te că mesajul precompletat este suficient de specific pentru ca agentul de pe WhatsApp să știe de unde provine persoana respectivă.
- **Solicită acceptarea politicii de confidențialitate:** Opțional, solicită vizitatorilor să accepte politica ta de confidențialitate înainte de a începe chat-ul și setează URL-ul către care trimite aceasta.

> **Ce stochează widgetul în browserul unui vizitator și trebuie să îl plasez în spatele unui banner de cookie-uri?** Nu se stochează nimic doar prin încărcarea unei pagini. Widgetul nu scrie niciun cookie și nu utilizează stocarea în browser până când vizitatorul alege să inițieze o conversație: trimite un prim mesaj, completează formularul cu informații despre vizitator sau acceptă politica de confidențialitate. Din acel moment, acesta păstrează un ID de conversație aleatoriu și o copie a conversației în browserul respectiv, ca stocare proprie (first-party) pe domeniul dumneavoastră, astfel încât chatul să fie disponibil atunci când vizitatorul revine. Acesta nu încarcă scripturi de analiză sau de urmărire și nu setează cookie-uri de la terți. Deoarece nu se scrie nimic până când vizitatorul nu solicită chatul, acesta se încadrează în categoria stocării strict necesare pentru un serviciu solicitat de vizitator, deci îl puteți încărca fără a-l restricționa în spatele unui banner de consimțământ. Dacă site-ul dumneavoastră utilizează oricum un instrument de consimțământ, este în regulă să păstrați widgetul în spatele acestuia; chatul va apărea pur și simplu odată ce vizitatorul își dă acceptul.

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-lead-capture-privacy.png" alt="Secțiunea Captare clienți potențiali și Confidențialitate a panoului Gestionare, care arată câmpurile Colectare informații vizitator, Titlu formular, Subtitlu formular, Colectare număr de telefon și Solicitare acceptare politică de confidențialitate"><figcaption><p>Secțiunea Captare clienți potențiali și Confidențialitate. Cu opțiunea Colectare informații vizitator activată, vizitatorii văd acest lucru ca pe un mic formular înainte de începerea conversației — afișat din perspectiva vizitatorului mai jos pe această pagină.</p></figcaption></figure>
:::

#### Canale și încorporare

- **Buton de atașament:** Permite vizitatorilor să trimită imagini și fișiere în chat.
- **Selector de emoji:** Adaugă un selector de emoji lângă căsuța de mesaje.
- **Linkuri către canale:** Include opțional linkuri către WhatsApp, Instagram sau Messenger, astfel încât vizitatorii să poată continua conversația pe platforma preferată. Acestea apar doar după ce ai conectat un număr de WhatsApp, Instagram sau Messenger.
- **Butoane de acțiune:** Un rând de scurtături în partea de sus a chatului care direcționează vizitatorul către o altă destinație în loc de o conversație — vezi [Butoane de acțiune](#action-buttons) mai jos.
- **Listă albă de domenii:** Restricționează site-urile care au permisiunea de a încorpora widgetul tău. Adaugă domeniile pe care l-ai instalat (de ex. `example.com` sau `*.example.com`); lasă gol pentru a permite orice domeniu.
- **Țări blocate:** Împiedică afișarea widgetului pentru vizitatorii din țările pe care nu le deservești. Vizitatorii a căror locație de rețea se află într-o țară selectată de tine nu vor vedea niciodată widgetul, iar orice chat pe care încearcă să îl inițieze este refuzat. Lasă gol pentru a permite accesul tuturor. Vezi [Prevenirea boților și a consumului de credite](#keeping-bots-and-credit-drain-out) mai jos.
- **Direcționează aceste chat-uri către:** Alege campania sau agentul care ar trebui să gestioneze chat-urile provenite din codul pe care urmează să îl copiezi. Lasă pe **Setare implicită cont** pentru a utiliza rutarea normală a widgetului de chat. Vezi [Trimite pagini diferite către campanii diferite](#send-different-pages-to-different-campaigns) mai jos.
- **Fragment de încorporare:** Alege **Bulă plutitoare** sau **Încorporat** și copiază codul de instalare (vezi mai jos).
- **Link demo pentru client:** Lipește orice adresă de site web pentru a obține un link partajabil care deschide acel site cu widgetul tău rulând deasupra — nu trebuie instalat nimic de partea lor. Vezi [Afișează widgetul pe site-ul altcuiva](#show-the-widget-on-someone-elses-website) mai jos.

În partea de jos a panoului, o acțiune de **Ștergere widget de chat** elimină widgetul de pe site-ul tău imediat — acest lucru nu poate fi anulat, iar vizitatorii nu vor mai vedea balonul de chat.

#### Butoane de acțiune

Unii vizitatori nu doresc să chat-uiască. Ei vor numărul dvs. de telefon, adresa sau adresa de e-mail și vor acest lucru printr-o singură atingere. Butoanele de acțiune reprezintă un rând de scurtături în partea de sus a panoului de chat exact pentru acest lucru.

Adăugați până la șase. Fiecare are o **etichetă** (cuvintele de pe buton) și o **destinație**, iar destinația depinde de acțiunea pe care o alegeți:

| Acțiune | Ce primește vizitatorul | Ce completați |
| --- | --- | --- |
| **Apel** | Se deschide aplicația de apelare cu numărul dvs. pregătit | Numărul dvs. de telefon, de ex. `+1 555 123 4567` |
| **SMS** | Aplicația lor de mesagerie deschide un mesaj nou către dvs. | Numărul dvs. de telefon |
| **WhatsApp** | WhatsApp deschide un chat cu dvs. | Numărul dvs. de WhatsApp sau un link `wa.me` pe care îl aveți deja |
| **E-mail** | Aplicația lor de e-mail deschide un mesaj nou către dvs. | Adresa dvs. de e-mail |
| **Direcții** | Google Maps se deschide cu locația dvs. | Adresa dvs. sau un link către hărți pe care îl aveți deja |
| **Link** | Pagina se deschide într-o filă nouă | Orice adresă web completă care începe cu `https://` |

**Aceste butoane nu consumă credite.** Atingerea unuia nu trimite un mesaj și nu începe o conversație — doar direcționează vizitatorul acolo unde a solicitat. Doar o conversație reală cu agentul dvs. AI consumă credite, exact ca până acum.

Câteva lucruri care merită știute:

- **Butoanele rămân vizibile în timp ce vizitatorul chat-uiește.** Cineva poate pune două întrebări și tot poate atinge **Direcții** ulterior, fără a reîncărca pagina.
- **Etichetele dvs. sunt afișate exact așa cum le-ați scris.** Spre deosebire de mesajul de întâmpinare și întrebările de început, etichetele butoanelor nu sunt traduse automat, așa că, dacă serviți vizitatori în mai multe limbi, păstrați etichetele scurte și evidente (sau scrieți-le în limba principală).
- **Completați corect un buton, altfel nu se va salva.** Dacă un număr de telefon, o adresă de e-mail sau un link nu este valid, panoul va semnala acest lucru și va bloca **Salvare modificări** în loc să publice un buton care nu ar face nimic pe site-ul dvs.
- **Nu sunt răspunsuri FAQ.** Butoanele de acțiune doar trimit oamenii în altă parte; ele nu răspund cu text predefinit. Întrebările sunt sarcina agentului dvs. AI, iar acesta le răspunde din baza dvs. de cunoștințe. Dacă doriți să sugerați ce să întrebe, utilizați **întrebările de început** din secțiunea Aspect.

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-action-buttons.png" alt="Secțiunea butoanelor de acțiune din panoul Gestionare, cu trei butoane adăugate: Apel etichetat Sună-ne, Direcții etichetat Găsește-ne și WhatsApp"><figcaption><p>Trei butoane de acțiune în curs de configurare. Fiecare rând reprezintă o acțiune, textul de pe buton și destinația acestuia. Butonul Adaugă permite adăugarea altora, până la șase.</p></figcaption></figure>
:::

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-action-strip.png" alt="Widgetul de chat deschis pe un site web cu un rând de trei butoane de acțiune în partea de sus: Sună-ne, Găsește-ne și WhatsApp"><figcaption><p>Ce vede vizitatorul. Butoanele sunt plasate deasupra conversației și rămân acolo în timpul chat-ului, astfel încât aceștia să poată atinge oricare dintre ele în orice moment.</p></figcaption></figure>
:::

#### Ce nu poți personaliza

Panoul Manage reprezintă setul complet de opțiuni. Mai exact:

- **Fără CSS personalizat sau fișier de stil.** Stilul este oferit de temă, colțuri, font și selectorul de culori — nu poți injecta propriul CSS în widget, iar regulile de pe pagina ta nu vor pătrunde în interiorul acestuia.
- **Fără text substituent personalizat** în căsuța de mesaje.
- **Fără încorporare video** în interiorul chatului.
- **Fără temporizator de ascundere automată.** Bula de invitație dispare de la sine după 20 de secunde și acel număr nu poate fi modificat; fereastra de chat deschisă nu se închide niciodată singură. Dacă bula acoperă conținutul paginii tale, mută widgetul folosind decalajele de **Poziție** sau dezactivează bula și păstrează doar butonul de lansare.

Dacă unul dintre aceste aspecte reprezintă un impediment pentru tine, [încorporarea inline](#embed-inline-on-a-page-advanced) îți oferă cel mai mare control: widgetul este plasat într-un container pe propria pagină, pe care îl poți dimensiona și poziționa după cum dorești.

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-channels-embed.png" alt="Secțiunea Canale și Încorporare din panoul Gestionare, care afișează lista albă de domenii, opțiunea de direcționare a acestor chat-uri, caseta cu codul snippet de încorporare, câmpul pentru linkul de demo pentru client cu o adresă web introdusă și linkul generat dedesubt, precum și zona de pericol pentru ștergerea widgetului de chat"><figcaption><p>Secțiunea Canale și Încorporare, cu snippet-ul de instalare gata de copiat, linkul de demo pentru client dedesubt și acțiunea de ștergere a widgetului de chat în partea de jos. Aici, site-ul web al unui client a fost introdus în câmpul demo și linkul partajabil a apărut dedesubt. Atât snippet-ul, cât și linkul demo afișate aici sunt specifice acestui cont — copiați-le pe ale dumneavoastră din panoul Gestionare, nu pe acestea.</p></figcaption></figure>
:::

### Prevenirea boților și a consumului de credite

Fiecare răspuns AI costă credite, așa că un script (sau o persoană plictisită) care deschide chat după chat pe site-ul tău este singurul lucru împotriva căruia un widget public trebuie să se apere. Widgetul gestionează majoritatea acestor situații de unul singur, iar două setări din panoul Gestionare îți permit să întărești securitatea pentru site-ul tău.

- **Listă albă de domenii.** Doar site-urile pe care le listezi pot afișa widgetul. Oricine copiază codul tău de încorporare pe un alt site nu va obține nimic.
- **Țări blocate.** Vizitatorii a căror locație de rețea se află într-o țară blocată de tine nu vor vedea niciodată widgetul, iar un chat pe care încearcă totuși să îl inițieze este refuzat. Locația provine din conexiunea vizitatorului: cineva care folosește un VPN va apărea ca fiind din țara VPN-ului, iar un vizitator a cărui locație nu poate fi determinată va primi acces în loc să fie blocat. propria ta previzualizare din interiorul aplicației va continua să funcționeze chiar dacă blochezi țara în care te afli.
- **Conversații noi per conexiune.** O conexiune (în practică, o adresă de gospodărie sau de birou) poate deschide 20 de conversații noi pe zi pe un widget. Vizitatorii care revin și își continuă chat-ul existent nu sunt numărați, doar conversațiile complet noi, astfel încât un script care continuă să inițieze chat-uri noi pentru a consuma răspunsuri AI se va epuiza după 20, în timp ce vizitatorii reali nu vor observa nimic. Dacă mai multe persoane împart o singură conexiune pe site-ul tău (un campus, un call center), crește numărul prin [REST API](../api/reference.md) cu `max_new_chats_per_ip_daily`; `0` dezactivează verificarea.
- **Limite integrate.** Pe lângă aceasta, fiecare sesiune de browser este limitată în ceea ce privește numărul de mesaje pe care le poate trimite pe minut și pe zi, iar agentul care răspunde la chat încetează să mai răspundă unui vizitator odată ce acesta atinge limita de **Mesaje AI maxime per chat** setată la **Limite de răspuns**.

Nimic din toate acestea nu identifică dispozitive sau persoane: widgetul nu stochează nimic în browserul vizitatorului până când acesta nu alege să inițieze un chat (vezi mai sus) și nu există nicio amprentare digitală (fingerprinting).

### Instrucțiuni de instalare

Pentru a adăuga widgetul de chat pe site-ul tău, adaugă o linie de cod în HTML-ul site-ului tău.

1. Deschide fișierul HTML al site-ului tău într-un editor de text.
2. Găsește eticheta de închidere `</body>` — aceasta se află de obicei chiar la sfârșitul fișierului.
3. Inserează această linie de cod chiar înainte de eticheta `</body>`, astfel încât restul paginii să se încarce mai întâi:

{% code overflow="wrap" %}
```html
<script src="https://api.dmchamp.com/v1/chat-widget/CONFIG_ID"></script>
```
{% endcode %}

4. Înlocuiește `CONFIG_ID` cu identificatorul tău unic de configurare, afișat în secțiunea **Canale și module încorporate** (Channels & Embed) din panoul de administrare. Acest identificator este specific contului tău și conectează widgetul la sistemul tău de mesagerie.

Fragmentul nu va încetini site-ul: este un încărcător minuscul, iar widgetul în sine se descarcă în fundal fără a bloca pagina. Dacă totuși doriți ca widgetul să aștepte până când pagina s-a încărcat complet, puteți include același URL astfel:

{% code overflow="wrap" %}
```html
<script>
window.addEventListener('load', function () {
  var s = document.createElement('script');
  s.src = 'https://api.dmchamp.com/v1/chat-widget/CONFIG_ID';
  s.async = true;
  document.body.appendChild(s);
});
</script>
```
{% endcode %}

Iar dacă doriți să întârziați doar mica bulă de invitație, nu încărcarea widgetului, aceasta este setarea **Bulă pop-up proactivă** din secțiunea Comportament de mai sus — nu este nevoie de cod.

Iată un exemplu complet despre cum ar trebui să arate fișierul dvs. HTML cu widgetul de chat implementat:

{% code overflow="wrap" %}
```html
<!DOCTYPE html>
<html>
<head>
    <title>My Website</title>
</head>
<body>
    <!-- Your existing website content would be here -->

    <!-- Chat Widget Integration -->
    <script src="https://api.dmchamp.com/v1/chat-widget/CONFIG_ID"></script>
</body>
</html>
```
{% endcode %}

### Încorporare inline pe o pagină (Avansat)

Dacă preferi ca fereastra de chat să apară ca parte a paginii tale — de exemplu, în interiorul unei secțiuni dedicate „Contactează-ne”, într-o filă de ajutor sau într-o bară laterală — în loc să apară ca o bulă plutitoare în colț, schimbă setarea **Fragment încorporat** (Embed snippet) în **În linie** (Inline) în panoul de administrare și copiază fragmentul de cod inline.

Arată astfel:

{% code overflow="wrap" %}
```html
<div data-chat-widget="CONFIG_ID" style="width:100%;height:600px;"></div>
<script src="https://api.dmchamp.com/v1/chat-widget/embed.js" async></script>
```
{% endcode %}

Elementul `<div>` este punctul de montare — panoul de chat se randează în interiorul acestuia și îi ocupă dimensiunile. Stilează div-ul după cum dorești (oferă-i o înălțime fixă, plasează-l într-un container flex, într-o celulă de grid etc.), iar panoul de chat se va adapta.

Ai nevoie de **un singur** tag `<script>` pe pagină, chiar dacă încorporezi mai multe widgeturi de chat. Scriptul scanează pagina pentru fiecare `<div data-chat-widget="…">` și montează un panou de chat în fiecare dintre acestea.

Când să alegi varianta inline față de cea flotantă:

- **Bula flotantă** este potrivită pentru un buton de tipul „Ai nevoie de ajutor?” disponibil permanent pe tot site-ul.
- **Încorporarea inline** este potrivită atunci când chatul trebuie să fie într-un loc specific — o pagină de suport, o bară laterală a bazei de cunoștințe, o filă de ajutor în aplicație — și să pară o parte nativă a acelei pagini.

Modulul încorporat în linie reutilizează aceeași configurație ca bula plutitoare (logo, mesaj de întâmpinare, colectare de date, întrebări inițiale și așa mai departe), deci nu trebuie să configurezi nimic de două ori.

### Afișați widgetul pe site-ul altcuiva

Puteți afișa widgetul de chat rulând pe un site web pe care nu îl controlați — fără cod, fără a fi nevoie de acces la site-ul lor. Este cea mai rapidă metodă de a arăta unui potențial client cum ar arăta asistentul pe propriile sale pagini.

1. Deschideți panoul Gestionare și derulați până la **Canale și încorporare**.
2. În **Link demo pentru client**, introduceți adresa site-ului web (de exemplu, `www.theircompany.com`).
3. Faceți clic pe **Copiere** pentru a copia linkul sau pe **Deschidere** pentru a-l vedea mai întâi dumneavoastră.
4. Trimiteți linkul persoanei căreia doriți să i-l arătați.

Deschiderea linkului încarcă acel site web cu widgetul de chat plutind deasupra, exact așa cum ar arăta dacă ar fi instalat. Oricine are linkul îl poate deschide — nu există nimic la care să se autentifice.

Câteva lucruri care merită știute:

- **Chaturile din demo sunt reale.** Mesajele pe care un vizitator le trimite într-un demo ajung în căsuța de primire și sunt răspunse de agentul dumneavoastră, utilizând credite ca orice altă conversație.
- **Pagina nu este marcată.** Afișează site-ul lor și widgetul dumneavoastră, și nimic altceva.
- **Unele site-uri web nu pot fi încadrate.** Un număr de site-uri (bănci, comercianți mari, orice site cu setări de securitate stricte) blochează afișarea lor de către alte pagini. Când se întâmplă acest lucru, linkul funcționează în continuare: afișează o fereastră de browser neutră în loc de site-ul real, cu widgetul dumneavoastră activ deasupra, astfel încât demo-ul să își îndeplinească scopul.
- **Nu modifică site-ul lor web.** Nu se instalează și nu se modifică nimic — demo-ul există doar în interiorul acelui link.

{% hint style="info" %}
Linkul demo utilizează întotdeauna rutarea implicită a contului dumneavoastră, indiferent de setarea **Direcționează aceste chaturi către**. Dacă doriți ca chaturile demo să fie gestionate de un anumit agent, setați mai întâi acel agent ca implicit pentru widgetul de chat.
{% endhint %}

### Trimiteți pagini diferite către campanii diferite

În mod implicit, fiecare chat care provine prin intermediul widgetului este gestionat de aceeași campanie sau același agent. Puteți suprascrie acest lucru pentru fiecare pagină, astfel încât vizitatorii de pe pagina de prețuri să discute cu campania de vânzări, în timp ce vizitatorii de pe pagina de ajutor să discute cu agentul de asistență — totul dintr-un singur widget de chat.

Există două modalități de a obține codul:

- **Din campanie sau agent.** Pe pagina **Campanii**, deschideți meniul **⋮** din dreptul unei campanii și alegeți **Adăugați pe site**. Pe pagina **Agenți**, faceți clic pe butonul **&lt;/&gt;** din rândul respectiv sau deschideți agentul și accesați fila **Puncte de intrare**. În ambele cazuri, veți obține un fragment de cod gata de inserat, configurat deja pentru acea campanie sau acel agent.

  Fila **Puncte de intrare** a unui agent conține, de asemenea, un panou **Widget de chat pentru site-ul web** care arată câte conversații prin chat pe site gestionează deja acel agent. Conversațiile provenite dintr-o fereastră încorporată ajung direct la agent, așa că **nu** este nevoie să creați o regulă de punct de intrare pentru acestea — un agent fără nicio regulă va răspunde în continuare prin fereastra sa încorporată.

  **Adăugare pe site** apare doar în campaniile care sunt active și configurate pentru a gestiona chat-urile primite. O campanie ciornă nu poate primi încă vizitatori, așa că opțiunea este ascunsă până când o publicați. Pe pagina Agenți, aceasta apare pentru agenții activi. Un agent întrerupt ar primi chat-ul, dar nu ar răspunde niciodată, așa că opțiunea este ascunsă până când îl reactivați. Nu există niciun canal de configurat pentru un agent — un agent poate prelua un chat de pe orice canal.
- **Din setările widget-ului.** În **Setări → Canale → Gestionare** din widget-ul de chat, setați **Direcționați aceste chat-uri către** și copiați fragmentul de cod de dedesubt. Modificarea meniului derulant rescrie fragmentul de cod.

Fragmentul plutitor conține destinația în adresă:

{% code overflow="wrap" %}
```html
<script src="https://api.dmchamp.com/v1/chat-widget/CONFIG_ID?campaign=CAMPAIGN_ID"></script>
```
{% endcode %}

Fragmentul în linie o conține în schimb pe `<div>`, astfel încât o pagină poate găzdui mai multe chat-uri care merg în locuri diferite:

{% code overflow="wrap" %}
```html
<div data-chat-widget="CONFIG_ID" data-campaign="CAMPAIGN_ID" style="width:100%;height:600px;"></div>
<script src="https://api.dmchamp.com/v1/chat-widget/embed.js" async></script>
```
{% endcode %}

Pentru un agent, formularea se schimbă în `?agent=AGENT_ID` sau `data-agent="AGENT_ID"`.

Câteva lucruri care merită știute:

- Utilizați butonul de copiere în loc să tastați manual ID-ul. Dacă ID-ul nu corespunde unei campanii sau unui agent din contul dvs., chat-ul va funcționa în continuare, dar va reveni la rutarea implicită.
- O persoană care se află deja în mijlocul unei conversații va rămâne cu persoana cu care a început, chiar dacă ulterior ajunge pe o pagină care indică altă destinație. Acest lucru previne schimbarea personalității unei conversații la jumătatea drumului.
- O destinație specifică paginii are prioritate față de setarea implicită a contului și față de declanșatoarele bazate pe cuvinte cheie.

### Spune widgetului cine este vizitatorul (Avansat)

Dacă plasezi widgetul de chat într-o zonă pentru membri, un portal pentru clienți sau o aplicație unde utilizatorii sunt deja autentificați, site-ul tău știe deja cine sunt aceștia. Poți transmite aceste informații widgetului, astfel încât vizitatorului să nu i se mai ceară detalii pe care le-a furnizat deja, iar AI-ul tău să poată folosi ceea ce știi deja despre el.

Adaugă un mic bloc de setări **înainte** de scriptul widgetului:

{% code overflow="wrap" %}
```html
<script>
  window.chatWidgetSettings = {
    visitor: {
      id: "12345",
      name: "Maria",
      email: "maria@example.com",
      phone: "+391234567890"
    },
    data: {
      plan: "Professional",
      customer_since: "2024",
      last_order: "A-2291"
    }
  };
</script>
<script src="https://api.dmchamp.com/v1/chat-widget/CONFIG_ID"></script>
```
{% endcode %}

Pagina ta ar trebui să completeze acele valori pe partea de server, folosind datele utilizatorului autentificat.

Se întâmplă două lucruri:

- **Formularul „Înainte de a începe...” este omis.** Cu un nume și o adresă de e-mail furnizate, vizitatorul trece direct la conversație, iar acele detalii sunt salvate în contactul său exact ca și cum le-ar fi introdus el însuși.
- **Tot ce se află sub `data` este transmis AI-ului tău.** Orice introduci acolo — plan, număr de comandă, dată de reînnoire, sold credit, număr de locuri — devine parte din ceea ce știe AI-ul despre acea persoană, astfel încât să poată răspunde la întrebări precum „când se reînnoiește planul meu?” fără a cere vizitatorului să explice cine este. Folosește orice nume de câmp care are sens pentru tine; acestea vor apărea în contact la secțiunea Câmpuri personalizate. Poți trimite până la 20 de valori, actualizate la fiecare mesaj, astfel încât, dacă planul se schimbă în timpul conversației, AI-ul va vedea noua valoare.

Pentru elementele încorporate (inline embeds), poți plasa aceleași informații pe `<div>`, ceea ce este util atunci când o pagină conține mai multe ferestre de chat:

{% code overflow="wrap" %}
```html
<div data-chat-widget="CONFIG_ID"
     data-visitor-name="Maria"
     data-visitor-email="maria@example.com"
     data-visitor-data='{"plan":"Professional"}'
     style="width:100%;height:600px;"></div>
<script src="https://api.dmchamp.com/v1/chat-widget/embed.js" async></script>
```
{% endcode %}

Dacă site-ul tău află cine este vizitatorul abia după încărcarea paginii — de exemplu, într-o aplicație de tip single-page unde autentificarea are loc fără reîncărcarea paginii — apelează această funcție ori de câte ori ai detaliile, iar widgetul se va actualiza automat:

{% code overflow="wrap" %}
```html
<script>
  window.chatWidget.setVisitor({
    visitor: { id: "12345", name: "Maria", email: "maria@example.com" },
    data: { plan: "Professional" }
  });
</script>
```
{% endcode %}

Câteva lucruri care merită știute:

- Dacă două persoane diferite se conectează pe același computer, a doua persoană începe o conversație nouă în loc să o vadă pe cea a primei persoane. Widgetul observă schimbarea persoanei și se resetează.
- De la sine, acest lucru servește pentru context, nu pentru autentificarea cuiva. Conversațiile sunt în continuare păstrate separat, așa cum au fost întotdeauna, deci transmiterea unui `id` nu permite nimănui să deschidă conversația altcuiva, iar cineva care folosește un dispozitiv sau un browser diferit începe o conversație nouă acolo. Pentru a continua conversația pe mai multe dispozitive, semnați `id` așa cum este descris în continuare.
- Este opțional. Un widget de pe o pagină publică obișnuită nu are nevoie de nimic din toate acestea și se comportă exact ca înainte.

#### Reluați aceeași conversație pe orice dispozitiv (ID vizitator conectat)

Dacă clienții dvs. au conturi, puteți face ca chatul lor să îi urmărească: se conectează pe un telefon, continuă pe un laptop, și este aceeași conversație cu același contact în căsuța dvs. de primire, iar AI-ul știe în continuare tot ce s-a spus. Pentru aceasta, <span data-t="appName">DM Champ</span> are nevoie de dovada că vizitatorul este într-adevăr cine spune pagina dvs. că este, altfel oricine ar putea introduce un număr de client în browserul său și ar putea citi chatul acelui client. Dovada este o semnătură pe care o calculați pe serverul dvs.

1. În panoul **Gestionare** al widgetului, sub **Canale și încorporare**, găsiți **Vizitatori autentificați** și faceți clic pe **Generare secret**. Copiați secretul de identitate. Păstrați-l doar pe serverul dumneavoastră; nu îl introduceți niciodată în pagină.

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-signed-visitors.png" alt="Rândul Vizitatori autentificați din panoul Gestionare al widgetului de chat, care arată secretul de identitate mascat cu butoanele Afișare, Copiere și Regenerare, și fragmentul de setări cu câmpurile id și hash dedesubt"><figcaption><p>Rândul Vizitatori autentificați sub Canale și încorporare. Secretul rămâne ascuns până când faceți clic pe Afișare; fragmentul de mai jos arată unde se introduc id-ul și semnătura acestuia pe pagina dumneavoastră.</p></figcaption></figure>
:::
2. Când serverul dumneavoastră randează o pagină pentru un client autentificat, calculați un HMAC-SHA256 al ID-ului acelui client folosind secretul, sub formă de șir hexazecimal cu litere mici:

{% code overflow="wrap" %}
```js
// Node.js
const hash = require("crypto").createHmac("sha256", IDENTITY_SECRET).update(customerId).digest("hex");
```
{% endcode %}

{% code overflow="wrap" %}
```php
// PHP
$hash = hash_hmac('sha256', $customerId, IDENTITY_SECRET);
```
{% endcode %}

{% code overflow="wrap" %}
```python
# Python
import hmac, hashlib
hash = hmac.new(IDENTITY_SECRET.encode(), customer_id.encode(), hashlib.sha256).hexdigest()
```
{% endcode %}

3. Introduceți ID-ul și hash-ul în blocul de setări, lângă numele și adresa de e-mail pe care le transmiteți deja:

{% code overflow="wrap" %}
```html
<script>
  window.chatWidgetSettings = {
    visitor: {
      id: "12345",
      hash: "3f2a…e91c",
      name: "Maria",
      email: "maria@example.com"
    }
  };
</script>
<script src="https://api.dmchamp.com/v1/chat-widget/CONFIG_ID"></script>
```
{% endcode %}

Încorporarea inline preia aceeași valoare ca `data-visitor-hash` pe `<div>`, iar `window.chatWidget.setVisitor({ visitor: { id, hash } })` funcționează pentru aplicațiile care conectează utilizatorii fără reîncărcarea paginii.

Ce se întâmplă odată ce semnătura este verificată:

- Chatul clientului este stocat în contul său, mai degrabă decât în browser, deci este aceeași conversație pe fiecare dispozitiv și fiecare browser în care este conectat, și un singur contact în căsuța dvs. de primire.
- Mesajele sale anterioare se încarcă pe noul dispozitiv, iar AI-ul continuă de unde a rămas.
- Dacă semnătura este incorectă, widgetul se comportă discret ca înainte, ca un chat normal per-browser, și tipărește motivul în consola browserului, astfel încât un dezvoltator să îl poată identifica. Vizitatorii dvs. nu văd niciodată o eroare.
- ID-ul este comparat exact așa cum l-ați trimis, deci semnați aceeași valoare pe care o transmiteți ca `id` și folosiți același ID pentru aceeași persoană peste tot.

Două lucruri de știut:

- **Regenerare** în panoul Gestionare vă oferă un secret nou. Paginile care se semnează în continuare cu cel vechi revin la chat-urile normale per-browser până când serverul dvs. folosește noul secret. Conversațiile existente sunt păstrate; ele sunt legate de ID-ul clientului, nu de secret.
- O conversație pe care cineva a avut-o înainte de a se conecta, ca vizitator anonim, rămâne un chat separat. Conversația bazată pe cont începe cu primul mesaj pe care îl trimite în timp ce este conectat.

### Modifică setările widgetului din propriul tău cod (API)

Tot ce se află în panoul **Gestionare** al widgetului poate fi modificat și prin [REST API](../api/reference.md), ceea ce este util dacă gestionezi mai multe site-uri web sau dacă dorești să dezactivezi automat butonul de atașare pentru un client. Trimite un `PATCH` către `https://api.dmchamp.com/v1/chat-widget-configs/CONFIG_ID` cu cheia ta API și doar câmpurile pe care dorești să le modifici — de exemplu, `{"show_upload_button": false}` ascunde butonul de atașare, `{"show_emoji_button": false}` ascunde selectorul de emoji-uri, iar `{"launcher_icon": "chat-dots"}` schimbă pictograma lansatorului. `CONFIG_ID` este același identificator ca cel din scriptul tău de încorporare. Lista completă a câmpurilor acceptate (nume, mesaj de întâmpinare, culori, pictograma lansatorului, domenii permise, formular de informații vizitator, notificare de confidențialitate, temă, stilul colțurilor și al fontului) se află în [Referința API](../api/reference.md) la secțiunea **Widget de chat**. Site-urile web preiau modificarea la următoarea încărcare a paginii.

### La ce să te aștepți după instalare

După ce ați adăugat scriptul pe site-ul dumneavoastră, widgetul de chat va crea automat un buton de chat în colțul site-ului (implicit în dreapta jos). Widgetul rămâne într-o poziție fixă pe măsură ce utilizatorii derulează paginile, asigurându-se că este întotdeauna accesibil.

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-live-bubble-closed.png" alt="Balonul de chat plutitor din colțul din dreapta jos al unui site web live, înainte ca un vizitator să dea clic pe el"><figcaption><p>Iată ce văd vizitatorii pe site-ul tău înainte de a deschide chatul — doar butonul plutitor, poziționat conform setărilor tale de Aspect.</p></figcaption></figure>
:::

Când vizitatorii dau clic pe acest buton, acesta se extinde într-o fereastră de chat completă unde pot începe o conversație, afișând mesajul dumneavoastră de întâmpinare. Dacă opțiunea Colectare informații vizitator este activată, apare mai întâi un formular mic care solicită numele și adresa de e-mail (și opțional numărul de telefon) înainte ca aceștia să poată tasta.

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-live-panel-open.png" alt="Panoul de chat deschis care arată mesajul de întâmpinare în fundal și formularul de captare a clienților potențiali Înainte de a începe (Prenume, E-mail, Telefon) în fața acestuia"><figcaption><p>Panoul de chat deschis. Aici opțiunea Colectare informații vizitator este activată, deci formularul „Înainte de a începe...” apare peste conversație — vizitatorii îl completează o dată, apoi discută normal.</p></figcaption></figure>
:::

Interfața de chat se adaptează automat la diferite dimensiuni de ecran, astfel încât funcționează fără probleme atât pe desktop, cât și pe dispozitivele mobile.

### Testarea implementării

După ce ai adăugat widgetul pe site-ul tău, testează dacă funcționează:

1. Deschide site-ul tău într-un browser.
2. Dă clic pe butonul de chat pentru a deschide widgetul.
3. Trimite un mesaj de test și confirmă că primești un răspuns.
4. Repetă procesul pe un alt dispozitiv sau browser pentru a confirma că funcționează peste tot.

::: master-only
<figure><img src="../.gitbook/assets/v2-chat-widget-live-conversation.png" alt="Panoul de chat după ce un vizitator trimite un mesaj de test, arătând balonul cu mesajul său trimis sub mesajul de întâmpinare"><figcaption><p>După trimiterea unui mesaj, acesta apare ca un balon de ieșire în firul conversației — AI-ul tău sau echipa ta răspunde în aceeași fereastră.</p></figcaption></figure>
:::

Dacă widgetul de chat nu apare pe site-ul tău, verifică următoarele:

1. Asigură-te că ai înlocuit `CONFIG_ID` cu identificatorul tău real de configurare.
2. Asigură-te că eticheta script este plasată înainte de eticheta de închidere `</body>`.
3. Verifică codul pentru eventuale greșeli de dactilografiere.

### În spatele unui firewall corporativ

Dacă widgetul se încarcă pentru public, dar nu și pentru angajații din rețeaua de la birou, este aproape sigur că rețeaua blochează domeniul de pe care acesta se încarcă. Roagă echipa IT să permită, prin HTTPS standard pe portul 443:

- **Domeniul din fragmentul tău de încorporare** — adresa din linia `<script src="...">` pe care ai copiat-o din panoul Manage.
- **`api.youraiconnector.com`** — widgetul trimite mesajele și către această adresă.

Nu este necesară nicio altă setare: fără porturi suplimentare și fără reguli de intrare. Dacă widgetul tot nu apare după aceste modificări, deschide consola pentru dezvoltatori a browserului pe pagina respectivă și trimite-ne ceea ce raportează — o cerere blocată va menționa domeniul care a fost refuzat, ceea ce reprezintă, de obicei, tot răspunsul de care avem nevoie.
