SDK-ul Widget Chatim va permite sa incorporati si sa controlati programatic widget-ul de chat Chatim pe site-ul dvs. web.
Adaugati urmatorul cod pe site-ul dvs., chiar inainte de eticheta de inchidere </body>:
<script>
window.chatim = window.chatim || {};
window.chatim.cmd = window.chatim.cmd || [];
window.chatim.settings = { projectId: "YOUR_PROJECT_ID" };
</script>
<script src="https://widget.chatim.app/widget.js" async></script>Inlocuiti YOUR_PROJECT_ID cu ID-ul real al proiectului din panoul de control Chatim.
Configurati widget-ul setand proprietati pe window.chatim.settings:
window.chatim.settings = {
projectId: "YOUR_PROJECT_ID", // Required
params: { // Optional: Custom parameters
userId: "user-123",
utm_source: "google",
utm_campaign: "summer_sale"
}
};window.chatim.widget.open();window.chatim.widget.close();window.chatim.widget.setConfig(config);Actualizeaza configuratia widget-ului dinamic in timpul executiei.
const config = window.chatim.widget.getConfig();Returneaza obiectul de configuratie curent, sau null daca widget-ul nu este inca initializat.
window.chatim.widget.setParams({
lastPage: "/checkout",
cartValue: 99.99,
isPremium: true
});Actualizeaza parametrii personalizati dupa ce widget-ul a fost initializat. Parametrii sunt imbinati cu valorile existente (nu inlocuiti).
window.chatim.widget.restartChat();Sterge toate datele si istoricul de chat stocate, inchide widget-ul si reinitializeaza cu o sesiune noua. Util cand un utilizator se deconecteaza sau doriti sa resetati conversatia.
| Proprietate | Tip | Obligatoriu | Descriere |
|---|---|---|---|
projectId | String | Da | ID-ul proiectului dvs. Chatim |
params | Object | Nu | Parametri personalizati (perechi cheie-valoare) |
| Metoda | Returneaza | Descriere |
|---|---|---|
open() | void | Deschide widget-ul de chat |
close() | void | Inchide widget-ul de chat |
setConfig(config) | void | Actualizeaza configuratia widget-ului |
getConfig() | Object | null | Returneaza configuratia curenta |
setParams(params) | void | Actualizeaza parametrii personalizati (imbinati) |
restartChat() | void | Sterge istoricul de chat si restarteaza sesiunea |
Parametrii personalizati va permit sa trimiteti date suplimentare despre vizitatorii dvs. catre Chatim. Aceste date sunt stocate cu sesiunile de chat si afisate in panoul de Vizitatori al tabloului de bord de administrare.
window.chatim.settings = {
projectId: "YOUR_PROJECT_ID",
params: {
userId: "user-123",
email: "[email protected]",
utm_source: "google",
planType: "premium",
isPremium: true
}
};// Update params when user logs in
window.chatim.widget.setParams({
userId: user.id,
email: user.email,
planType: user.subscription
});
// Track page-specific data
window.chatim.widget.setParams({
lastPage: window.location.pathname,
productViewed: "SKU-12345"
});| Tip | Exemplu | Note |
|---|---|---|
| String | "user-123" | Maximum 500 caractere |
| Number | 99.99 | Intregi si zecimale |
| Boolean | true | Valori adevarat/fals |
| Null | null | Setat explicit ca gol |
Nesuportat: Obiecte, array-uri, functii, undefined
projectId, demo, __proto__, constructor, prototype| Limita | Valoare |
|---|---|
| Numar maxim de parametri | 20 |
| Lungime maxima a numelui | 50 caractere |
| Lungime maxima a valorii | 500 caractere |
Parametrii personalizati apar in panoul de control Chatim sub Vizitatori — faceti clic pe un vizitator pentru a vedea sectiunea Parametri personalizati.
Widget-ul poate captura automat parametrii URL de pe paginile vizitatorilor fara nicio modificare de cod. Configurati acest lucru in Setarile Widget-ului > Parametri URL.
window.chatim.settings.params (suprascrie parametrii URL)window.chatim.widget.setParams() (prioritate cea mai inalta)SDK-ul include o coada de comenzi care va permite sa apelati metodele widget-ului inainte ca widget-ul sa fie complet incarcat. Comenzile sunt executate automat odata ce widget-ul este gata.
window.chatim.cmd.push(function() {
window.chatim.widget.close();
});
window.chatim.cmd.push(() => {
window.chatim.widget.open();
console.log('Widget opened!');
});<script>
window.chatim = window.chatim || {};
window.chatim.cmd = window.chatim.cmd || [];
window.chatim.settings = { projectId: "YOUR_PROJECT_ID" };
// Queue a function to run when widget is ready
window.chatim.cmd.push(() => {
console.log('Widget is ready!');
window.chatim.widget.close();
});
</script>
<script src="https://widget.chatim.app/widget.js" async></script><button onclick="window.chatim.widget.open()">
Chat with us
</button>window.addEventListener('scroll', function() {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
window.chatim.widget.open();
}
});function onUserLogout() {
window.chatim.widget.restartChat();
}setTimeout(function() {
window.chatim.widget.open();
}, 5000);import { useEffect } from 'react';
function App() {
useEffect(() => {
window.chatim = window.chatim || {};
window.chatim.cmd = window.chatim.cmd || [];
window.chatim.settings = {
projectId: 'YOUR_PROJECT_ID',
params: { userId: getCurrentUserId() }
};
const script = document.createElement('script');
script.src = 'https://widget.chatim.app/widget.js';
script.async = true;
document.body.appendChild(script);
return () => document.body.removeChild(script);
}, []);
return <button onClick={() => window.chatim.widget.open()}>Open Chat</button>;
}'use client';
import { useEffect } from 'react';
import Script from 'next/script';
export default function ChatWidget() {
useEffect(() => {
window.chatim = window.chatim || {};
window.chatim.cmd = window.chatim.cmd || [];
window.chatim.settings = { projectId: 'YOUR_PROJECT_ID' };
}, []);
return (
<Script
src="https://widget.chatim.app/widget.js"
strategy="lazyOnload"
/>
);
}export default {
mounted() {
window.chatim = window.chatim || {};
window.chatim.cmd = window.chatim.cmd || [];
window.chatim.settings = { projectId: 'YOUR_PROJECT_ID' };
const script = document.createElement('script');
script.src = 'https://widget.chatim.app/widget.js';
script.async = true;
document.body.appendChild(script);
},
methods: {
openChat() {
window.chatim.widget.open();
}
}
}// On page load
window.chatim.settings = {
projectId: "YOUR_PROJECT_ID",
params: {
userId: getUserId(),
userType: isLoggedIn() ? "registered" : "guest",
utm_source: getUrlParam("utm_source")
}
};
// On product view
function trackProductView(product) {
window.chatim.widget.setParams({
lastProductViewed: product.name,
lastProductPrice: product.price
});
}
// On add to cart
function trackAddToCart(cart) {
window.chatim.widget.setParams({
cartValue: cart.total,
cartItems: cart.items.length
});
}Pentru compatibilitate cu versiuni anterioare, aceste API-uri mosenite sunt inca suportate:
// Legacy settings (still works)
window.chatimSettings = { projectId: "YOUR_PROJECT_ID" };
// Legacy widget methods (still works)
window.chatimWidget.open();
window.chatimWidget.close();Recomandam folosirea noului namespace window.chatim pentru toate implementarile noi.
projectId este corectwindow.chatim si window.chatim.cmd sunt initializate inainte de apelarea metodelorgetConfig() returneaza null inainte ca widget-ul sa fie complet initializat. Folositi o abordare de interogare:
const checkWidget = setInterval(() => {
const config = window.chatim.widget.getConfig();
if (config) {
clearInterval(checkWidget);
console.log('Widget config:', config);
}
}, 100);Daca aveti nevoie de ajutor cu integrarea SDK, contactati [email protected].
Începe