Brzi početak
Dodajte skriptu pri dnu dokumenta i inicijalizirajte s obveznim parametrima: projectId, apiKey i license. Bez važeće licence i API ključa widget se neće učitati.
Savjet: najprije testirajte na staging domeni (dodajte je u dopuštene domene licence), zatim prebacite na produkciju.
<script src="https://cdn.brendigo.com/ai/assistant.js" defer></script>
<script>
window.BrendyAI = window.BrendyAI || {};
BrendyAI.init({
projectId: "YOUR_PROJECT_ID",
apiKey: "YOUR_API_KEY",
license: "YOUR_LICENSE_KEY",
lang: "hr",
theme: "auto"
});
</script>
Ugradnja
Umetnite skriptu neposredno prije oznake </body>
. Atribut defer osigurava da ne blokira renderiranje.
Dostupni su i CMS dodaci (WordPress, Drupal, Joomla) te NPM paket za SPA okruženja.
position
:"right"
ili"left"
(pozicija plutajućeg gumba)offset
: npr.{ x: 24, y: 24 }
(udaljenost od ruba)zIndex
: npr.1050
(redoslijed sloja)
<script src="https://cdn.brendigo.com/ai/assistant.js" defer></script>
<script>
BrendyAI.init({
projectId: "YOUR_PROJECT_ID",
apiKey: "YOUR_API_KEY",
license: "YOUR_LICENSE_KEY"
});
</script>
API ključ i licenca
Nakon aktivacije projekta u Brendigo konzoli dobit ćete API ključ i licencu. API ključ služi za autentikaciju i obračun kvota, dok licenca definira plan (Free, Pro, Enterprise) i dopuštene domene.
- Sigurnost ključa: ne izlažite ga javno; gdje je moguće, koristite proxy na poslužitelju.
- Rotacija: promijenite ključ pri sumnji na kompromitaciju; ograničite CORS na vlastite domene.
- Licenca: dodajte staging i produkcijske domene na popis dopuštenih kako bi učitavanje bilo uspješno.
// Proxy primjer (pseudo-kod): sakrivanje API ključa na poslužitelju
// Klijent
fetch('/api/assistant-proxy', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ event: 'message', payload })
});
// Server (Node/Express)
app.post('/api/assistant-proxy', async (req, res) => {
const r = await fetch('https://api.brendigo.com/assistant', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + process.env.BRENDY_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify(req.body)
});
res.status(r.status).send(await r.json());
});
Konfiguracija
Opcija | Tip | Zadano | Opis |
---|---|---|---|
projectId | string | — | ID vašeg projekta (obavezno). |
apiKey | string | — | API ključ za autentikaciju i kvote (obavezno). |
license | string | — | Licenčni ključ; plan i dopuštene domene (obavezno). |
lang | string | "auto" | Jezik sučelja; može se naslijediti iz lang atributa dokumenta. |
theme | string | "auto" | "light" | "dark" | "auto" (poštuje prefers-color-scheme ). |
sources | array<url> | [] | URL-ovi iz kojih asistent uči (FAQ, sitemap, dokumentacija). |
user | object | {} | Podaci o korisniku (id , email uz privolu) radi personalizacije. |
position | string | "right" | Pozicija plutajućeg gumba. |
offset | object | {x:24,y:24} | Udaljenost od rubova prozora. |
zIndex | number | 1050 | Redoslijed sloja u odnosu na ostale elemente. |
consentMode | string | "auto" | Integracija s Google Consent Mode v2 / CMP-om. |
endpoint | string | "/api/assistant" | Vlastiti backend endpoint ako koristite proxy. |
retry | object | {count:2, backoff:300} | Ponašanje pri pogreškama (broj pokušaja i odgoda u ms). |
leadCapture | boolean | false | Uključuje prikupljanje leadova (emitira događaj lead ). |
context | object | {} | Početni kontekst (npr. { plan: 'Pro', cartValue: 129.90 } ). |
onReady | function | — | Poziva se kada je widget spreman. |
Događaji i API
Asistent emitira događaje na objektu window
i pruža tanki API preko globalnog objekta BrendyAI
.
ready
— widget je inicijaliziranopen
/close
— prozor asistenta otvoren/zatvorenmessage
— svaka korisnička ili AI porukalead
— prikupljen potencijalni kontakt (ako je omogućeno)error
— pogreška u radu widgeta ili mreže
// Callback na spremnost
BrendyAI.on('ready', (ctx) => {
console.log('Asistent spreman', ctx.version);
});
// Slušanje poruka
BrendyAI.on('message', (payload) => {
// { text, from: 'user' | 'assistant', ts }
analytics.track('ai_message', payload);
});
// Programski otvoriti / zatvoriti prozor
BrendyAI.open();
BrendyAI.close();
// Predavanje konteksta
BrendyAI.context.set({ cartValue: 129.90, plan: 'Pro' });
Otklanjanje poteškoća
- Widget se ne prikazuje: provjerite učitavanje skripte (bez 404) i vrijednosti
projectId
,apiKey
,license
. - Blokiran od CMP-a: koristite
consentMode: "auto"
ili ručno proslijedite stanje privole. - Sudar stilova: povećajte
zIndex
ili postaviteposition
naleft
.
// Provjera inicijalizacije
if (!window.BrendyAI || !BrendyAI.version) {
console.warn('Brendy AI nije inicijaliziran');
}
// Evidentiranje pogrešaka
BrendyAI.on('error', (e) => console.error('[BrendyAI]', e));
Podrška
Trebate pomoć ili API ključ/licencu? Pišite na podrska@brendigo.com ili otvorite tiket preko kontakta.