
Chatbot
AI-Powered Chatbot for Smarter 24/7 Support
Our modern AI-powered chatbot delivers instant, accurate answers to customer questions around the clock, ensuring your website is always ready to help. By handling common inquiries automatically, it dramatically reduces the workload on your support team, freeing them to focus on complex or high-value cases. Visitors receive immediate responses instead of waiting in queues or for email replies, which leads to faster resolutions and a smoother overall experience.
The chatbot intelligently guides users to the right pages, resources, and contact options based on their intent, reducing confusion and drop-offs. It can learn from past interactions to continuously improve its responses and coverage. With consistent, friendly communication and 24/7 availability, your customers feel supported and valued, driving higher satisfaction, more conversions, and stronger long-term loyalty.

Key benefits for your business:
- Instant, 24/7 responses to common questions
- Reduced volume of repetitive support tickets
- Shorter resolution times and fewer abandoned sessions
- Consistent, on-brand answers across all visitors
- Smarter routing to FAQs, knowledge base, or live agents
- Actionable insights from conversation analytics
<!-- B21 Bible Bot Widget for Webnode (frontend) + WordPress (backend API) -->
<div>
<button>
Bible Chat
</button>
<div>
<!-- Header -->
<div>
<div>
<div>Bible21 • jen Písmo</div>
<button>×</button>
</div>
<div>
Jen Písmo • Bible21 • Písmo vykládá Písmo
</div>
</div>
<!-- Log -->
<div></div>
<!-- Composer -->
<div>
<input placeholder="Napiš otázku…" />
<button>
Send
</button>
</div>
</div>
</div>
<script>
(function(){
// ✅ SET THIS to your WordPress domain (where the plugin runs)
const API_BASE = "https://TVUJ-WORDPRESS-WEB.cz"; // ← změň na tvoji doménu
const ENDPOINT_ASK = API_BASE + "/wp-json/b21bot/v1/ask";
const ENDPOINT_HELLO = API_BASE + "/wp-json/b21bot/v1/hello";
const openBtn = document.getElementById('b21-open');
const closeBtn = document.getElementById('b21-close');
const panel = document.getElementById('b21-panel');
const log = document.getElementById('b21-log');
const input = document.getElementById('b21-input');
const send = document.getElementById('b21-send');
const mottoEl = document.getElementById('b21-motto');
let helloShown = false;
let currentLang = "cs"; // default
function addBubble(text, who){
const row = document.createElement('div');
row.style.margin = "8px 0";
row.style.display = "flex";
row.style.justifyContent = (who === "me") ? "flex-end" : "flex-start";
const b = document.createElement('div');
b.style.maxWidth = "88%";
b.style.whiteSpace = "pre-wrap";
b.style.padding = "10px 12px";
b.style.borderRadius = "12px";
b.style.border = "1px solid #e5e5e5";
b.style.background = (who === "me") ? "#111" : "#fff";
b.style.color = (who === "me") ? "#fff" : "#111";
b.style.boxShadow = "0 1px 0 rgba(0,0,0,.04)";
b.textContent = text;
row.appendChild(b);
log.appendChild(row);
log.scrollTop = log.scrollHeight;
return b; // return bubble element for later update
}
function looksEnglish(text){
if (!text) return false;
// simple heuristic
if (/[ěščřžýáíéúůďťň]/i.test(text)) return false;
return /\b(what|who|why|how|when|where|does|do|is|are|can|jesus|god|bible)\b/i.test(text);
}
async function fetchHello(langHint=""){
const url = ENDPOINT_HELLO + (langHint ? ("?lang=" + encodeURIComponent(langHint)) : "");
const res = await fetch(url, { method: "GET" });
const data = await res.json();
if (!data || !data.ok) return null;
return data;
}
async function ensureHello(langHint=""){
if (helloShown) return;
try{
const data = await fetchHello(langHint);
if (data && data.message){
currentLang = data.lang || currentLang;
if (mottoEl && data.motto) mottoEl.textContent = data.motto;
addBubble(data.message, "bot");
helloShown = true;
// update input placeholder based on language
input.placeholder = (currentLang === "en") ? "Type your question…" : "Napiš otázku…";
}
} catch(e){
// fallback local (still ok)
const cs = "📜 Oficiální úvodní prohlášení\n\n" +
"Tento chatbot odpovídá výhradně podle Písma svatého z překladu Bible21.\n" +
"Nepoužívá žádné tradice, teologické systémy ani lidské výklady.\n" +
"Drží se zásady formulované Martinem Lutherem:\n" +
""Bible se vykládá pouze Biblí."";
addBubble(cs, "bot");
helloShown = true;
}
}
async function ask(){
const q = (input.value || "").trim();
if(!q) return;
input.value = "";
// If user starts English, switch hello/motto to EN (once)
const en = looksEnglish(q);
if (!helloShown) await ensureHello(en ? "en" : "cs");
if (en && currentLang !== "en"){
try{
const data = await fetchHello("en");
if (data && data.ok){
currentLang = "en";
if (mottoEl && data.motto) mottoEl.textContent = data.motto;
input.placeholder = "Type your question…";
}
} catch(e) {}
}
addBubble(q, "me");
const waitingBubble = addBubble("…", "bot"); // placeholder bubble
try{
const res = await fetch(ENDPOINT_ASK, {
method:"POST",
headers: { "Content-Type":"application/json" },
body: JSON.stringify({ q: q, lang: currentLang })
});
const data = await res.json();
if (!data || data.ok !== true){
waitingBubble.textContent = (data && data.error) ? data.error : ((currentLang === "en") ? "Error." : "Chyba.");
return;
}
// show answer
waitingBubble.textContent = data.answer || "";
// optionally append citations list returned by backend
if (data.citations && data.citations.length){
const citeText = (currentLang === "en" ? "\n\nCitations:\n- " : "\n\nCitace:\n- ") + data.citations.join("\n- ");
addBubble(citeText, "bot");
}
} catch(e){
waitingBubble.textContent = (currentLang === "en")
? "Connection error. Please try again."
: "Chyba připojení k serveru. Zkus to prosím znovu.";
}
}
openBtn.addEventListener('click', async ()=>{
panel.style.display = "block";
openBtn.style.display = "none";
log.scrollTop = log.scrollHeight;
// Always show first message from backend (locked)
if (!helloShown) {
await ensureHello("cs");
}
input.focus();
});
closeBtn.addEventListener('click', ()=>{
panel.style.display = "none";
openBtn.style.display = "inline-block";
});
send.addEventListener('click', ask);
input.addEventListener('keydown', (e)=>{ if(e.key === "Enter") ask(); });
})();
</script>
How Our AI Chatbot Works
Natural Language Understanding (NLU)
Our chatbot uses advanced natural language understanding to interpret what visitors mean, not just what they type. It analyzes intent, key entities (such as product names, order numbers, or dates), and context from previous messages to keep conversations coherent. The system can handle spelling mistakes, synonyms, and varied sentence structures, so users can write in their own words. Over time, the model can be refined with your real conversation data, improving recognition of your specific terminology, product lines, and support scenarios.
Multiple intents can be detected in a single message, allowing the bot to answer several questions at once or ask clarifying questions when something is ambiguous. You can define custom intents and training phrases through a simple interface, without needing to write code or understand machine learning.
Knowledge Base & FAQ Integration
The chatbot connects directly to your existing knowledge base or FAQ content. Articles, help-center entries, and common questions are indexed so the bot can search, rank, and present the most relevant answer in real time. When a user asks a question, the system matches it against your content, extracts the key information, and responds in a concise, user-friendly format, often with a link to the full article for more detail.
You can organize content by categories, tags, or products, and control which sources the bot is allowed to use. Updates to your FAQ or documentation are reflected automatically, so you maintain a single source of truth. Analytics show which questions are not yet covered, helping you continuously improve your knowledge base.
Smart Handover to Human Support
When the chatbot reaches the limits of automation, it seamlessly hands the conversation over to a human agent. Handover can be triggered automatically (for example, when user sentiment is negative, the question is too complex, or the bot is not confident in its answer) or manually when the user requests a person. The full conversation history, including detected intents and relevant knowledge base articles, is passed to the agent so they have immediate context.
The bot can integrate with your existing helpdesk or live chat tools, routing conversations to the right team based on topic, language, or priority. While the user waits, the chatbot can provide status updates, estimated response times, and collect any additional details that will help the agent resolve the issue faster.
Ease of Setup & Customization
Setup is designed to be straightforward, even for non-technical teams. You can connect your FAQ or help center, define a few core intents, and publish the chatbot in a matter of hours. A visual configuration panel lets you adjust greeting messages, conversation flows, and fallback behavior without writing code. Prebuilt templates for common use cases (support, sales, onboarding, booking, and more) help you get started quickly.
Customization options include branding (colors, logo, avatar, and widget position), tone of voice, and language settings. You can define custom conversation paths, add buttons and quick replies, and configure business rules such as office hours or escalation criteria. Role-based access control allows different team members to manage content, review conversations, or adjust settings safely.
Data Security & Privacy
Data security is built into every layer of the chatbot platform. All communication between users, the chatbot, and your backend systems is encrypted in transit using industry-standard protocols. Data at rest is stored securely with strict access controls, audit logs, and regular backups. You can configure data retention policies to automatically anonymize or delete conversation histories after a defined period, helping you comply with internal policies and regulatory requirements.
The platform supports separation of environments (such as testing and production), IP and domain restrictions, and role-based permissions to ensure only authorized staff can access sensitive information. Personal data can be masked in logs, and you can define which fields are never stored. Compliance with major privacy regulations (such as GDPR-style principles) is supported through consent options, data export tools, and clear user-facing privacy notices. This combination of technical and organizational measures ensures your chatbot remains secure, trustworthy, and aligned with your governance standards.